Met het element viewer kunt u de configuratie van een gemeenschappelijke viewer definiëren. De extensie kan het ID van een aangepast voorgrondmenu bevatten, ondersteuning voor 'Koppelen aan editor' bieden, een filterdialoogvenster beschikbaar stellen en/of het dialoogvenster 'Beschikbare aanpassingen' verstrekken. Bovendien kunt u met geneste configuratie-elementen de structuur en het gedrag van het voorgrondmenu volledig naar uw hand zetten.
viewerContentBinding bindt gedefinieerde contentextensies (via het extensiepunt navigatorContent) aan viewers (gedefinieerd via het extensiepunt org.eclipse.ui.views). Elke contentextensie die aan een viewer is gebonden, is op visible ingesteld. Een contentservice (org.eclipse.ui.navigator.INavigatorContentService
) retourneert geen extensies die niet zichtbaar zijn voor het ID van de viewer.
<!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>
Hiermee kunt u de eigenschappen van een gewone viewer configureren. In clients moet het viewonderdeel verder worden gemaakt met de extensie org.eclipse.ui.views.
<!ELEMENT viewerContentBinding (includes? , excludes?)>
<!ATTLIST viewerContentBinding
viewerId CDATA #REQUIRED>
In een client moet minstens één viwerContentBinding-element worden gedefinieerd om aan te geven welke contentextensies en gemeenschappelijke filters zichtbaar moeten zijn voor de viewer. Als het ID van een contentextensie of gemeenschappelijke filter overeenkomt met de instructie includes van viewerContentBinding en niet wordt uitgesloten met de instructie excludes, is de extensie of de filter zichtbaar (visible). Als een extensie of filter niet zichtbaar is, wordt de extensie niet gebruikt voor het ophalen van content en wordt de extensie niet afgebeeld in het dialoogvenster met beschikbare filters.
In een client kan met het element includes worden aangegeven welke extensies zichtbaar zijn voor de viewer. Met het element excludes kunt u daarentegen juist extensies verbergen die u niet zichtbaar wilt maken. Verder kunt u met het kenmerk "isRoot" aangeven of er expliciet query's op de extensie kunnen worden uitgevoerd voor hoofdelementen (via ITreeContentProvider.getElements()). Als "isRoot" voor een of meer contentExtension-elementen op true is ingesteld in de instructie includes, worden query's voor hoofdelementen alleen op deze elementen uitgevoerd. Het kenmerk "isRoot" geldt niet voor uitsluitingen.
Voor een viewer kunnen meerdere exemplaren van viewerContentBindings zijn gedefinieerd. De includes- en excludes-instructies worden dan samengevoegd.
org.eclipse.ui.navigator.CommonNavigator
verstrekken. <!ELEMENT viewerActionBinding (includes? , excludes?)>
<!ATTLIST viewerActionBinding
viewerId CDATA #REQUIRED>
Voor een client moeten de actieproviders worden gedefinieerd die voor de viewer beschikbaar zijn. In een client kan met het element includes worden aangegeven welke extensies zichtbaar zijn voor de viewer. Met het element excludes kunt u daarentegen juist extensies verbergen die u niet zichtbaar wilt maken.
Voor een viewer kunnen meerdere exemplaren van viewerActionBinding zijn gedefinieerd. De includes- en excludes-instructies worden dan samengevoegd.
Als de definitie van actionProvider niet in de definitie van navigatorContent is genest, kan in een client een aangepast ID worden opgegeven. Als er geen ID wordt opgegeven, wordt "org.eclipse.ui.navigator.actionProvider.X" als standaardwaarde gehanteerd. Als de actieprovider geen specifiek ID heeft, kan deze door een client worden opgehaald als viewerActionBinding voor het standaard-ID wordt opgegeven. In de sectie met voorbeelden ziet u een demonstratie.
org.eclipse.ui.navigator.CommonNavigator
verstrekken. <!ELEMENT includes ((contentExtension+) | (actionExtension+))>
Hiermee kunt u een reeks patronen definiëren die moeten worden opgenomen bij het zoeken naar contentextensies voor de viewer die met het kenmerk "viewerId" overeenkomt. Als een item zowel in de instructies includes als de instructie excludes voorkomt, wordt de instructie includes gebruikt.
<!ELEMENT excludes ((contentExtension+) | (actionExtension+))>
Hiermee kunt u een reeks patronen definiëren die moeten worden uitgesloten bij het zoeken naar contentextensies voor de viewer die met het kenmerk "viewerId" overeenkomt. Als een item zowel in de instructies includes als de instructie excludes voorkomt, wordt de instructie includes gebruikt.
<!ELEMENT contentExtension EMPTY>
<!ATTLIST contentExtension
pattern CDATA #REQUIRED
isRoot (true | false) >
Dit is het ID (of bijbehorende patroon) van een contentextensie waarop query's moeten worden uitgevoerd door ITreeContentProvider.getElements()
of ITreeContentProvider.getChildren()
voor het hoofdelement van de viewer of gemeenschappelijke filter die in het dialoogvenster "Beschikbare filters" moet worden afgebeeld.
Met "isRoot" kunnen specifieke hoofdextensies worden geselecteerd ter vervanging van de extensies die anders voor het invoerelement van de viewer zouden zijn ingeschakeld (gebaseerd op de bijbehorende expressie triggerPoints van het viewerinvoerelement).
Raadpleeg de documentatie van viewerContentBinding voor meer informatie.
De modellen zijn expressies die overeenkomen met unieke ID's. Voor meer informatie kunt u de documentatie van java.util.regex.Pattern
van het Java(tm)-platform bekijken.
<!ELEMENT actionExtension EMPTY>
<!ATTLIST actionExtension
pattern CDATA #REQUIRED>
Hiermee kan de actie-extensie aanleveringen voor het voorgrondmenu en de werkbalken verstrekken.
Raadpleeg de documentatie van viewerActionBinding voor meer informatie.
De modellen zijn expressies die overeenkomen met unieke ID's. Voor meer informatie kunt u de documentatie van java.util.regex.Pattern
van het Java(tm)-platform bekijken.
<!ELEMENT popupMenu (insertionPoint*)>
<!ATTLIST popupMenu
id CDATA #IMPLIED
allowsPlatformContributions (true | false) >
Het element popupMenu kan alleen worden gedefinieerd als het kenmerk "popupMenuId" van het element viewer niet is opgegeven.
Het element popupMenu biedt mogelijkheden voor verdere aanpassing van het voorgrondmenu dat aan de viewer is gekoppeld. Om ervoor te zorgen dat de opties juist worden toegepast, moet een instance van de viewer een navigatoractieservice (org.eclipse.ui.navigator.NavigatorActionService
) machtigen, die zich op dezelfde manier als een actiegroep (org.eclipse.ui.ActionGroup
) gedraagt. Zie de documentatie van deze API-klasse voor meer informatie over het benutten van deze functionaliteit. Voor een client die aan een instance van org.eclipse.ui.navigator.CommonNavigator
is gekoppeld, hoeft geen verdere actie te worden ondernomen.
Het element popupMenu declareert een of meer invoegposities (insertionPoints), die door contribuanten worden gebruikt voor het organiseren van aanleveringen in een logische geordende en consistente lijst.
Als voor een client alleen het kenmerk "popupMenuId" van het element viewer is opgegeven, wordt voor de reeks insertionPoints-elementen van het voorgrondmenu de volgende lijst als standaard gehanteerd in de gegeven volgorde:
"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"
org.eclipse.ui.navigator.ICommonMenuConstants
worden gebruikt.
org.eclipse.ui.navigator.CommonActionProviders
(zie org.eclipse.ui.navigator.navigatorContent/actionProvider en org.eclipse.ui.navigator.navigatorContent/navigatorContent/actionProvider). <!ELEMENT insertionPoint EMPTY>
<!ATTLIST insertionPoint
name CDATA #REQUIRED
separator (true | false) >
Hiermee kunt u een invoegpositie voor het voorgrondmenu definiëren. U geeft de naam op van het punt waarnaar clients moeten verwijzen en u geeft aan of de invoegpositie als scheiding of als groepsmarkering moet worden weergegeven.
org.eclipse.ui.navigator.CommonActionProvider
of declaratieve aanleveringen via het extensiepunt org.eclipse.ui.popupMenus. <!ELEMENT options (property+)>
Hiermee kunt u opties voor de viewer opgeven en de presentatie ervan aanpassen. Zie org.eclipse.ui.navigator.INavigatorViewerDescriptor
voor de lijst van beschikbare eigenschappen.
<!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #REQUIRED
value CDATA #REQUIRED>
Geef een paar als naam=waarde op. De waarde wordt onbewerkt aan de viewer doorgegeven. (Een lege tekenreeks wordt dus als zodanig gedistribueerd.) Zie org.eclipse.ui.navigator.INavigatorViewerDescriptor
voor de lijst van beschikbare eigenschappen en de bijbehorende beschrijvingen.
<!ELEMENT dragAssistant EMPTY>
<!ATTLIST dragAssistant
class CDATA #REQUIRED
viewerId CDATA #REQUIRED>
Er is een assistent voor slepen en neerzetten beschikbaar die eenvoudige mogelijkheden voor het leveren van extra overdrachtstypen en logica voor het instellen van de verslepingsgegevens biedt. Dit element is niet vereist, omdat org.eclipse.ui.navigator.CommonViewer al het type org.eclipse.jface.util.LocalSelectionTransfer verstrekt.
Definieer deze extensie alleen op clients voor plugins met een kleine dependency-structuur. De assistenten moeten vóór het maken van de viewer worden geladen, waardoor ook gekoppelde plugins worden geladen.
org.eclipse.ui.navigator.CommonDragAdapterAssistant
. In het volgende voorbeeld wordt het voorgrondmenu-ID voor een viewer geconfigureerd.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewer id=
"org.eclipse.testViewer"
popupMenuId=
"org.eclipse.testViewer#PopupMenu"
/>
</extension>
Aangezien het onderliggende viewerelement popupMenu niet in het bovenstaande voorbeeld wordt gebruikt, wordt de standaardreeks insertionPoints gehanteerd. De definitie van deze reeks is als volgt. Zie de documentatie van het element popupMenu voor meer informatie.
"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"
In het volgende voorbeeld ziet u een demonstratie van een viewerconfiguratie waarin aangepaste exemplaren van popupMenu/insertionPoints worden gedeclareerd, maar waarbij object- en vieweraanleveringen met het kenmerk "allowsPlatformContributions" worden beperkt. Clients kunnen alleen bijdragen leveren aan het gedefinieerde menu via actieproviders (org.eclipse.ui.navigator.CommonActionProvider
) die voor de viewer (hoogste niveau of aan contentextensies) is gekoppeld.
Het kenmerk "popupMenuId" wordt niet tegelijkertijd met het element popupMenu opgegeven. U mag slechts één van de twee opgeven.
<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>
In het volgende voorbeeld wordt één contentextensie (met ID "org.eclipse.ui.navigator.resourceContent") gebonden aan een viewer waarvan het ID overeenkomt met "org.eclipse.ui.navigator.resourceContent". (In dit voorbeeld komen de ID's van de contentextensie en de viewer met elkaar overeen, maar dit is niet verplicht.) Daarnaast wordt elke contentextensie genegeerd waarvan het ID met "org.eclipse.ui.navigator.tests." begint.
<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>
In het volgende voorbeeld wordt viewerActionBinding gedeclareerd voor alle actieproviders (niet genest in de extensie navigatorContent) die overeenkomen met de expressie "org.acme.actions.*" maar niet met "org.acme.actions.tests.*". Deze expressie maakt alle actionProvider-elementen waarvan het ID met "org.acme.actions." (maar niet met "org.acme.actions.tests.") begint, zichtbaar (visible) voor de viewer met ID "org.acme.viewer". Uiteraard zijn de exemplaren van viewerActionBindings alleen van toepassing op actionProvider-elementen die niet in het element navigatorContent zijn genest. De zichtbaarheid van geneste actionProvider-elementen wordt bestuurd door viewerContentBindings voor het insluitende navigatorContent-element.
<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>
In het volgende voorbeeld wordt elke actieprovider zonder ID op visible voor de viewer "org.acme.viewer" ingesteld. Voor de actionProvider-elementen zonder kenmerk "id" wordt het standaard-ID "org.eclipse.ui.navigator.actionProvider.X" gehanteerd. Uiteraard zijn de exemplaren van viewerActionBindings alleen van toepassing op actionProvider-elementen die niet in het element navigatorContent zijn genest. De zichtbaarheid van geneste actionProvider-elementen wordt bestuurd door viewerContentBindings voor het insluitende navigatorContent-element.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewerActionBinding viewerId=
"org.acme.viewer"
>
<includes>
<actionExtension pattern=
"org.eclipse.ui.navigator.actionProvider.*"
/>
</includes>
</viewerActionBinding>
</extension>
In het volgende voorbeeld ziet u de standaardeigenschappen die voor de viewer beschikbaar zijn.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewer popupMenuId=
"org.eclipse.ui.tests.navigator.TestView#PopupMenu"
viewerId=
"org.eclipse.ui.tests.navigator.TestView"
>
<options>
<!-- Tabblad
"Beschikbare extensies"
verbergen in dialoogvenster
"Beschikbare aanpassingen"
(via de actie
"Filters"
) -->
<property name=
"org.eclipse.ui.navigator.hideAvailableExtensionsTab"
value=
"true"
/>
<!-- Tabblad
"Beschikbare aanpassingen"
volledig verbergen. Hiermee worden ook de filters en beschikbare contentextensies verborgen. -->
<property name=
"org.eclipse.ui.navigator.hideAvailableCustomizationsDialog"
value=
"true"
/>
<!-- Tabblad
"Koppelen aan editor"
verbergen in werkbalk van viewer -->
<property name=
"org.eclipse.ui.navigator.hideLinkWithEditorAction"
value=
"true"
/>
<!-- Tabblad
"Alles samenvouwen"
verbergen in werkbalk van viewer -->
<property name=
"org.eclipse.ui.navigator.hideCollapseAllAction"
value=
"true"
/>
</options>
</viewer>
</extension>
Copyright (c) 2002, 2005 IBM Corporation en anderen.
Alle rechten voorbehouden. Dit programma en het begeleidende materiaal zijn beschikbaar gesteld onder de voorwaarden van de Eclipse Public License v1.0 die bij deze distributie is geleverd en beschikbaar is op http://www.eclipse.org/legal/epl-v10.html.