Általános megjelenítő beállítása

org.eclipse.ui.navigator.viewer

3.2

A megjelenítő elem meghatározza egy általános megjelenítő beállítását. A kiterjesztés biztosíthat egy egyéni előugró menü azonosítót, újradefiniálhatja, hogy a megjelenítő biztosít-e szerkesztőtámogatással rendelkező hivatkozást, egy szűrő-párbeszédablakot és/vagy egy "Elérhető személyre szabások" párbeszédablakot biztosít. Ezen kívül a beágyazott konfigurációs elemek teljes irányítást biztosítanak az előugró menü szerkezete és viselkedése felett.

A viewerContentBinding a meghatározott tartalomkiterjesztéseket ( a navigatorContent kiterjesztési ponton keresztül) megjelenítőhöz köti (amelyek az org.eclipse.ui.views kiterjesztési ponton keresztül vannak meghatározva). A megjelenítőhöz kötött tartalomkiterjesztések láthatóként vannak leírva. Egy tartalomszolgáltatás (org.eclipse.ui.navigator.INavigatorContentService) nem ad vissza a megjelenítőazonosítója számára nem látható kiterjesztéseket.

<!ELEMENT extension (viewer* , viewerContentBinding* , viewerActionBinding* , dragAssistant)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT viewer (popupMenu? , options?)>

<!ATTLIST viewer

viewerId    CDATA #REQUIRED

popupMenuId CDATA #IMPLIED>

Alapvető beállításokat biztosít egy megjelenítő jellemzőinek létrehozásához. Az ügyfeleknek meg kell határozniuk egy org.eclipse.ui.views kiterjesztést a nézet rész meghatározásához.



<!ELEMENT viewerContentBinding (includes? , excludes?)>

<!ATTLIST viewerContentBinding

viewerId CDATA #REQUIRED>

Az ügyfeleknek legalább egy viwerContentBinding elemet meg kell határozniuk a megjelenítő számára látható tartalomkiterjesztéseket és általános szűrőket. Egy tartalomkiterjesztés vagy általános szűrő látható, ha a tartalomkiterjesztés vagy általános szűrő azonosítója megfelel egy tartalmazási utasításnak egy viewerContentBinding alatt és nincs kihagyva egy kizárási utasítás által. Ha egy tartalomkiterjesztés vagy általános szűrő nem látható egy megjelenítő számára, akkor a kiterjesztéstől a megjelenítő tartalomszolgáltatása soha nem fog tartalmat kérni és nem fog megjelenni a felhasználó számára az elérhető szűrők párbeszédablakban.

Az ügyfelek meghatározhatnak egy felvétel elemet a megjelenítő számára látható kiterjesztések kiválasztásához és hasonlóképpen egy kizárás elemet a megjelenítő számára nem látható kiterjesztések számára. Az ügyfelek tovább finomíthatják a gyökérelemek számára (a ITreeContentProvider.getElements() metóduson keresztül) az "isRoot" attribútum által kifejezetten lekérdezendő kiterjesztéseket. Ha legalább egy contentExtension elem "isRoot" attribútumának értéke igaz a felvétel utasításban, akkor csak ezek a kiterjesztések kerülnek lekérdezésre a gyökérelemek számára. Az "isRoot" attribútumnak nincs hatása a kizárásokra.

Egy megjelenítő rendelkezhet több meghatározott viewerContentBinding elemmel és ezek felvétel/kizárás utasításai összesítésre kerülnek a végső viselkedés előállítása érdekében.



<!ELEMENT viewerActionBinding (includes? , excludes?)>

<!ATTLIST viewerActionBinding

viewerId CDATA #REQUIRED>

Az ügyfeleknek meg kell határozniuk a megjelenítőjük számára látható tevékenységszolgáltatókat. Az ügyfelek meghatározhatnak egy felvétel elemet a megjelenítő számára látható kiterjesztések kiválasztásához és hasonlóképpen egy kizárás elemet a megjelenítő számára nem látható kiterjesztések számára.

Egy megjelenítő rendelkezhet több meghatározott viewerContentBinding elemmel és ezek felvétel/kizárás utasításai összesítésre kerülnek a végső viselkedés előállítása érdekében.

Nem a navigatorContent alá beágyazott actionProvider meghatározásokhoz az ügyfelek megadhatnak egy egyéni azonosítót. Ha az ügyfelek nem adnak meg azonosítót, akkor annak alapértelmezett értéke: "org.eclipse.ui.navigator.actionProvider.X". Azon ügyfelek számára, amelyek actionProvider elemeket adott azonosítók nélkül kívánnak kiválasztani, az ügyfeleknek meg kell határozniuk egy viewerActionBinding elemet az alapértelmezett azonosítóhoz. Ennek megvalósítási módjáért tekintse meg a példák részt.



<!ELEMENT includes ((contentExtension+) | (actionExtension+))>

Határozza meg minták halmazát a "viewerId" attribútumnak megfelelő megjelenítő számára a tartalomkiterjesztések keresésébe fel kell venni. Ha a tartalmazás és kizárás utasítások keresztezik egymást, akkor a tartalmazás utasításnak van elsőbbsége.



<!ELEMENT excludes ((contentExtension+) | (actionExtension+))>

Határozzon meg egy mintahalmazt, amelyet a "viewerId" attribútumnak megfelelő megjelenítő tartalomkiterjesztésének kereséséből ki kell zárni. Ha a tartalmazás és kizárás utasítások keresztezik egymást, akkor a tartalmazás utasításnak van elsőbbsége.



<!ELEMENT contentExtension EMPTY>

<!ATTLIST contentExtension

pattern CDATA #REQUIRED

isRoot  (true | false) >

Jelzi a tartalomkiterjesztés azonosítóját (vagy megfelelő mintát), amelyet a megjelenítő gyökeréhez vagy egy általános szűrőhöz - amelynek elérhetővé kell válnia a felhasználó számára az "elérhető szűrők" párbeszédablakban - az ITreeContentProvider.getElements() vagy az ITreeContentProvider.getChildren() segítségével le kell kérdezni.

Az ügyfelek megadhatják az "isRoot" attribútumot adott jellemzőkiterjesztések kiválasztásához azon kiterjesztések újradefiniálásához, amelyek ellenkező esetben engedélyezettek lennének a megjelenítő bemeneti eleméhez (megjelenítő bemeneti elemének megfelelő triggerPoints kifejezés alapján).

További információkért tekintse meg a viewerContentBinding dokumentációját.



<!ELEMENT actionExtension EMPTY>

<!ATTLIST actionExtension

pattern CDATA #REQUIRED>

Jelzi, hogy a tevékenységkiterjesztésnek alkalmat ki kell tudnia egészíteni az előugró menüt és a műveletsorokat.

További információkért tekintse meg a viewerContentBinding dokumentációját.



<!ELEMENT popupMenu (insertionPoint*)>

<!ATTLIST popupMenu

id                          CDATA #IMPLIED

allowsPlatformContributions (true | false) >

Egy popupMenu elem csak akkor határozható meg, ha a megjelenítő elem "popupMenuId" attribútuma nincs megadva.

A popupMenu elem lehetővé teszi a megjelenítőhöz társított előugró menü további személyre szabását. A beállítások helyes alkalmazása érdekében a megjelenítő egy példányának meg kell hatalmaznia egy org.eclipse.ui.navigator.NavigatorActionService elemet, amely úgy viselkedik, mint egy normális org.eclipse.ui.ActionGroup elem. Ezen funkció kihasználásával kapcsolatos további információkért tekintse meg az adott API osztály dokumentációját. Az org.eclipse.ui.navigator.CommonNavigator példányát használó ügyfelek esetén nincs külön teendő.

Egy popupMenu néhány insertionPoint elemet határoz meg, amelyeket a közreadók kiegészítéseik értelmes, felhasználóbarát konzisztens listává szervezéséhez használhatnak.
Ha az ügyfelek csak a megjelenítő elem "popupMenuId" attribútumát adják meg, akkor az insertionPoint elemek előugró menü által használt halmaza alapértelmezésben az alábbi listát fogják használni az adott sorrendben:

"group.new"             separator="true"
"group.goto"            
"group.open"            separator="true"
"group.openWith"
"group.show"            separator="true"
"group.edit"            separator="true"
"group.reorganize"
"group.port"
"group.generate"        separator="true"
"group.search"          separator="true"
"group.build"           separator="true"
"additions"             separator="true" 
"group.properties"      separator="true"


Azon ügyfelek, amelyek ezekre az értékekre kívánnak hivatkozni, használhatják az org.eclipse.ui.navigator.ICommonMenuConstants megfelelő konstansait.

A menüiket személyre szabni kívánó ügyfeleknek érdemes kezdetben ezt a listát használniuk, majd szükség szerint beszúrási pontokat vehetnek vagy távolíthatnak el. Az ügyfelek számára javasolt a csoportok nevét a "group" előtaggal kezdő minta követése.

Ha a popupMenu elem meg van adva és NEM tartalmaz insertionPoint előugró menüelemeket, akkor az előugró menü nem fog közzétett beszúrási pontokkal rendelkezni. Természetesen a programozható ügyfelek számára nincs megtiltva szükség esetén saját beszúrási pontok hozzáadása. A megjelenítőket meghatározó ügyfelek számára javasolt beszúrási pontok közzététele dokumentációs céllal és az egyértelműség érdekében az alsóbb szintű kiterjesztések megjelenítői/navigátorai felé, vagy az API-ként és belsőként kezelt beszúrási pontok kifejezett dokumentálása érdekében.



<!ELEMENT insertionPoint EMPTY>

<!ATTLIST insertionPoint

name      CDATA #REQUIRED

separator (true | false) >

Egy beillesztési pontot határoz meg az előugró menühöz. Tartalmazza az ügyfelek által a pontra hivatkozáshoz használandó nevet és meghatározza, hogy hogy a beillesztési pont elválasztóként vagy csoportjelzőként jelenítendő-e meg.



<!ELEMENT options (property+)>

Beállításokat biztosít a megjelenítő megjelenésének személyre szabásához a felhasználó számára. Az elérhető tulajdonságokért tekintse meg az org.eclipse.ui.navigator.INavigatorViewerDescriptor osztályt.



<!ELEMENT property EMPTY>

<!ATTLIST property

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Adjon meg egy név=érték párt. Az érték változatlan formában kerül átadásra a megjelenítőnek (így az üres karaktersorozatok üres karaktersorozatként kerülnek továbbításra). Az elérhető tulajdonságokért és azok leírásaiért tekintse meg az org.eclipse.ui.navigator.INavigatorViewerDescriptor osztályt.



<!ELEMENT dragAssistant EMPTY>

<!ATTLIST dragAssistant

class    CDATA #REQUIRED

viewerId CDATA #REQUIRED>

Egy fogd-és-vidd kisegítő könnyűsúlyú csatlakozópontot biztosít extra átviteli típusok megadására a húzásadatok beállításához. Ez az elem nem kötelező, mivel az alapvető org.eclipse.ui.navigator.CommonViewer egy org.eclipse.ui.util.LocalSelectionTransfer típust biztosít.

Az ügyfelek ezt a kiterjesztést csak alacsony függőségi fával rendelkező könnyűsúlyú bedolgozókban határozhatják meg. A húzássegédek a megjelenítő létrehozásakor elsőként töltendők be, ez kikényszeríti az érintett bedolgozók betöltését.



Az alábbi példa beállítja egy megjelenítő előugró menü azonosítóját.


   

<extension point=

"org.eclipse.ui.navigator.viewer"

>

<viewer id=

"org.eclipse.testViewer"

popupMenuId=

"org.eclipse.testViewer#PopupMenu"

/>

</extension>

Mivel a megjelenítő popupMenu leszármazott eleme nincs felhasználva a fenti példában, az insertionPoint elemek alapértelmezett halmaza kerül felhasználásra. Ez a halmaz az alábbiak szerint szerint van meghatározva. További információkért tekintse meg a popupMenu dokumentációját.

"group.new"             separator="true"
"group.goto"            
"group.open"            separator="true"
"group.openWith"
"group.show"            separator="true"
"group.edit"            separator="true"
"group.reorganize"
"group.port"
"group.generate"        separator="true"
"group.search"          separator="true"
"group.build"           separator="true"
"additions"             separator="true" 
"group.properties"      separator="true"

Az példa egy megjelenítőkonfigurációt mutat be, amely egyéni popupMenu/insertionPoint elemeket határoz meg, de korlátozza az objektum- és megjelenítőkiegészítéseket az "allowsPlatformContributions" attribútummal. Az ügyfelek a meghatározott menüt csak a (felső szintű vagy a tartalomkiterjesztésekhez társított) megjelenítőhöz meghatározott org.eclipse.ui.navigator.CommonActionProvider elemeken keresztül egészíthetik ki.

Ne feledje el, hogy a "popupMenuId" attribútum a popupMenu elemmel nem párhuzamosan van megadva. Csak az egyik vagy másik (de nem mindkettő) megadása számít érvényes konfigurációnak.

   

<extension point=

"org.eclipse.ui.navigator.viewer"

>

<viewer viewerId=

"org.eclipse.ui.navigator.resourceContent"

>

<popupMenu allowsPlatformContributions=

"false"

id=

"org.eclipse.ui.navigator.resourceContent#PopupMenu"

>

<insertionPoint name=

"group.new"

/>

<insertionPoint name=

"group.open"

separator=

"true"

/>

<insertionPoint name=

"group.openWith"

/>

<insertionPoint name=

"group.port"

separator=

"true"

/>

<insertionPoint name=

"additions"

separator=

"true"

/>

<insertionPoint name=

"group.properties"

separator=

"true"

/>

</popupMenu>

</viewer>

<viewerContentBinding viewerId=

"org.eclipse.ui.navigator.resourceContent"

>

<includes>

<contentExtension pattern=

"org.eclipse.ui.navigator.resourceContent"

/>

</includes>

</viewerContentBinding>

</extension>

Az alábbi példa meghatározza, hogy az egyik tartalomkiterjesztés (azonosító: "org.eclipse.ui.navigator.resourceContent") a következőnek megfelelő megjelenítőhöz van kötve: "org.eclipse.ui.navigator.resourceContent". (Ebben a példában a tartalomkiterjesztés- és megjelenítőazonosítók megegyeznek, de ez nem szükségszerű.) Ezen kívül minden "org.eclipse.ui.navigator.tests." kezdetű azonosítóval rendelkező tartalomkiterjesztés figyelmen kívül marad.

   

<extension point=

"org.eclipse.ui.navigator.viewer"

>

<viewerContentBinding viewerId=

"org.eclipse.ui.navigator.resourceContent"

>

<includes>

<contentExtension pattern=

"org.eclipse.ui.navigator.resourceContent"

/>

</includes>

<excludes>

<contentExtension pattern=

"org.eclipse.ui.navigator.tests.*"

/>

</excludes>

</viewerContentBinding>

</extension>

Az alábbi példa egy viewerActionBinding elemet határoz meg az összes (a navigatorContent kiterjesztés alá be nem ágyazott) actionProvider számára, amelyek megfelelnek az "org.acme.actions.*" reguláris kifejezésnek, de az "org.acme.actions.tests.*" kifejezésnek nem. Ez a kifejezés minden "org.acme.actions." de nem "org.acme.actions.tests." kezdetű azonosítóval rendelkező actionProvider elemet láthatóvá tesz az "org.acme.viewer" azonosítójú megjelenítő számára. Természetesen a viewerActionBinding elemek csak azon actionProvider elemekre érvényesek, amelyek nincsenek egy navigatorContent elem alá beágyazva. A beágyazott actionProvider elemek láthatóságát a csatoló navigatorContent elem viewerContentBinding elemei felügyelik.

   

<extension point=

"org.eclipse.ui.navigator.viewer"

>

<viewerActionBinding viewerId=

"org.acme.viewer"

>

<includes>

<actionExtension pattern=

"org.acme.actions.*"

/>

</includes>

<excludes>

<actionExtension pattern=

"org.acme.actions.tests.*"

/>

</excludes>

</viewerActionBinding>

</extension>

Az alábbi példa az összes, "id" attribútummal nem rendelkező actionProvider elemet láthatóvá teszi az "org.acme.viewer" megjelenítő számára. Az "id" attribútummal nem rendelkező actionProvider elemek alapértelmezett azonosítója: "org.eclipse.ui.navigator.actionProvider.X". Természetesen a viewerActionBinding elemek csak azon actionProvider elemekre érvényesek, amelyek nincsenek egy navigatorContent elem alá beágyazva. A beágyazott actionProvider elemek láthatóságát a csatoló navigatorContent elem viewerContentBinding elemei felügyelik.

   

<extension point=

"org.eclipse.ui.navigator.viewer"

>

<viewerActionBinding viewerId=

"org.acme.viewer"

>

<includes>

<actionExtension pattern=

"org.eclipse.ui.navigator.actionProvider.*"

/>

</includes>

</viewerActionBinding>

</extension>

Az alábbi példa bemutatja a megjelenítő számára elérhető szabványos tulajdonságokat.

   

<extension point=

"org.eclipse.ui.navigator.viewer"

>

<viewer popupMenuId=

"org.eclipse.ui.tests.navigator.TestView#PopupMenu"

viewerId=

"org.eclipse.ui.tests.navigator.TestView"

>

<options>

<!-- Hide the

"Available Extensions"

tab in the

"Available Customizations"

dialog (available from the

"Filters"

action -->

<property name=

"org.eclipse.ui.navigator.hideAvailableExtensionsTab"

value=

"true"

/>

<!-- Hide the

"Available Customizations"

dialog completely. This includes hiding the filters and the available content extensions. -->

<property name=

"org.eclipse.ui.navigator.hideAvailableCustomizationsDialog"

value=

"true"

/>

<!-- Hide the

"Link with Editor"

action from the toolbar of the viewer -->

<property name=

"org.eclipse.ui.navigator.hideLinkWithEditorAction"

value=

"true"

/>

<!-- Hide the

"Collapse All"

action from the toolbar of the viewer -->

<property name=

"org.eclipse.ui.navigator.hideCollapseAllAction"

value=

"true"

/>

</options>

</viewer>

</extension>