Prvek prohlížeč definuje konfiguraci pro společný prohlížeč. Rozšíření může poskytnout id přizpůsobené místní nabídky, potlačit to, zda prohlížeč poskytuje odkaz s podporou editoru, poskytuje dialogové okno filtru anebo poskytuje dialogové okno "Dostupné vlastní nastavení". Kromě toho vnořené konfigurační prvky poskytují úplnou kontrolu nad strukturou a chováním rozevírací kontextové nabídky.
viewerContentBinding vytváří vazbu definovaných kontextových rozšíření (pomocí bodu rozšíření navigatorContent) s prohlížeči (definovanými pomocí bodu rozšíření org.eclipse.ui.views). Každé rozšíření obsahu vázané k prohlížeči je popsáno jako viditelné. Služba obsahu (org.eclipse.ui.navigator.INavigatorContentService
) nevrátí žádné rozšíření, které není viditelné pro jeho id prohlížeče.
<!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>
Poskytuje základní konfiguraci pro stanovení charakteristik prohlížeče. Klienti také musejí definovat rozšíření org.eclipse.ui.views, aby vytvořili část pohledu.
<!ELEMENT viewerContentBinding (includes? , excludes?)>
<!ATTLIST viewerContentBinding
viewerId CDATA #REQUIRED>
Klienti musejí definovat jeden nebo více prvků viwerContentBinding, aby popsali, jaká rozšíření obsahu a běžné filtry jsou pro prohlížeč viditelné. Rozšíření obsahu nebo běžný filtr je viditelný, pokud ID rozšíření obsahu nebo běžného filtru odpovídá příkazu includes pod viewerContentBinding a není vyloučeno příkazem excludes. Pokud rozšíření obsahu nebo běžný filtr nejsou viditelné pro prohlížeč, potom nebude rozšíření nikdy požádáno o obsah službou obsahu pro tento prohlížeč, nebo prezentováno uživateli v dialogovém okně dostupných filtrů.
Klienti mohou definovat prvek includes, aby vybrali, která rozšíření jsou pro prohlížeč viditelná, a podobně prvek excludes pro rozšíření, která by neměla být pro prohlížeč viditelná. Klienti mohou dále definovat rozšíření, která by měla být explicitně dotazována na kořenové prvky (prostřednictvím ITreeContentProvider.getElements()), atributem "isRoot". Pokud má jeden či více prvků contentExtension nastaveno "isRoot" na hodnotu true v rámci příkazu includes, pouze tato rozšíření budou dotazována na kořenové prvky. Atribut "isRoot" nemá žádný vliv na vylučování.
Prohlížeč může mít definováno více viewerContentBindings a jejich příkazy includes/excludes budou agregovány, aby vytvořily konečné chování.
org.eclipse.ui.navigator.CommonNavigator
.<!ELEMENT viewerActionBinding (includes? , excludes?)>
<!ATTLIST viewerActionBinding
viewerId CDATA #REQUIRED>
Klienti musejí definovat, kteří poskytovatelé akcí jsou viditelní pro jejich prohlížeče. Klienti mohou definovat prvek includes, aby vybrali, která rozšíření jsou pro prohlížeč viditelná, a podobně prvek excludes pro rozšíření, která by neměla být pro prohlížeč viditelná.
Prohlížeč může mít definováno více viewerActionBinding a jejich příkazy includes/excludes budou agregovány, aby poskytly konečné chování.
Pro definice actionProvider, které nejsou vnořeny po definicí navigatorContent, mohou klienti specifikovat vlastní ID. Pokud klient nespecifikuje ID, výchozím ID bude "org.eclipse.ui.navigator.actionProvider.X". Pro klienty, kteří chtějí vybrat actionProvider bez specifického ID, musejí klienti definovat viewerActionBinding pro výchozí ID. Jak se to dělá, viz část s příklady.
org.eclipse.ui.navigator.CommonNavigator
.<!ELEMENT includes ((contentExtension+) | (actionExtension+))>
Definujte sadu vzorů, které by měly být zahrnuty při hledání rozšíření obsahu pro prohlížeč, který odpovídá atributu "viewerId". Když se příkazy includes a excludes kříží, příkaz includes bude mít přednost.
<!ELEMENT excludes ((contentExtension+) | (actionExtension+))>
Definujte sadu vzorů, které by měly být vyloučeny při hledání rozšíření obsahu pro prohlížeč, který odpovídá atributu "viewerId". Když se příkazy includes a excludes kříží, příkaz includes bude mít přednost.
<!ELEMENT contentExtension EMPTY>
<!ATTLIST contentExtension
pattern CDATA #REQUIRED
isRoot (true | false) >
Indikuje ID (nebo odpovídající vzor) rozšíření obsahu, které by mělo být dotazováno ITreeContentProvider.getElements()
nebo ITreeContentProvider.getChildren()
na kořen prohlížeče nebo běžný filtr, které by měly být uživateli dostupné v dialogovém okně "Dostupné filtry".
Klienti mohou specifikovat "isRoot", aby vybrali specifická kořenová rozšíření pro přepsání rozšíření, která by jinak byla zpřístupněna vstupnímu prvku prohlížeče (na základě odpovídajícího výrazu triggerPoints pro vstupní prvek prohlížeče).
Další informace viz dokumentace pro viewerContentBinding.
Vzory jsou normální výrazy, které odpovídají jedinečným identifikátorům. Další podrobnosti najdete v dokumentaci Java(tm) Platform pro java.util.regex.Pattern
.
<!ELEMENT actionExtension EMPTY>
<!ATTLIST actionExtension
pattern CDATA #REQUIRED>
Indikuje, že rozšíření akce by měla být poskytnuta příležitost přispět ke kontextové nabídce a řádkům s akcemi.
Další informace viz dokumentace pro viewerActionBinding.
Vzory jsou normální výrazy, které odpovídají jedinečným identifikátorům. Další podrobnosti najdete v dokumentaci Java(tm) Platform pro java.util.regex.Pattern
.
<!ELEMENT popupMenu (insertionPoint*)>
<!ATTLIST popupMenu
id CDATA #IMPLIED
allowsPlatformContributions (true | false) >
Prvek popupMenu může být definován pouze tehdy, pokud není specifikován atribut "popupMenuId" prvku viewer.
Prvek popupMenu umožňuje další přizpůsobení kontextové nabídky přiřazené prohlížeči. Aby byly volby použity správně, instance prohlížeče musí delegovat na org.eclipse.ui.navigator.NavigatorActionService
, který se chová jako normální org.eclipse.ui.ActionGroup
. Pro další informace o využití těchto funkcí viz dokumentace pro tuto třídu API. Pro klienty, kteří používají instanci org.eclipse.ui.navigator.CommonNavigator
, není potřeba žádná práce navíc.
popupMenu deklaruje jeden nebo více insertionPoints, které budou použity přispěvateli k uspořádání jejich příspěvků do smysluplného, uživatelsky příjemnějšího, konzistentního seznamu.
Pokud klienti pouze specifikují atribut "popupMenuId" prvku viewer, potom bude sada insertionPoints použitých kontextovou nabídkou standardně používat následující seznam v uvedeném pořadí:
"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
.
org.eclipse.ui.navigator.CommonActionProviders
(viz org.eclipse.ui.navigator.navigatorContent/actionProvider a org.eclipse.ui.navigator.navigatorContent/navigatorContent/actionProvider).<!ELEMENT insertionPoint EMPTY>
<!ATTLIST insertionPoint
name CDATA #REQUIRED
separator (true | false) >
Definuje bod vložení pro kontextovou nabídku. Obsahuje název bodu, na nějž se klienti mohou odkazovat, a to, zda by měl být bod vložení znázorněn jako oddělovač nebo značkovač skupiny.
org.eclipse.ui.navigator.CommonActionProvider
, nebo deklarativní příspěvky pomocí bodu rozšíření org.eclipse.ui.popupMenus.<!ELEMENT options (property+)>
Poskytuje možnosti přizpůsobit prohlížeč tak, jak je prezentován uživateli. Dostupné vlastnosti viz org.eclipse.ui.navigator.INavigatorViewerDescriptor
.
<!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #REQUIRED
value CDATA #REQUIRED>
Poskytuje dvojici název=hodnota. Hodnota bude prohlížeči poskytnuta tak-jak-je (takže prázdné řetězce budou propagovány jako prázdné řetězce). Dostupné vlastnosti a jejich popisy viz org.eclipse.ui.navigator.INavigatorViewerDescriptor
.
<!ELEMENT dragAssistant EMPTY>
<!ATTLIST dragAssistant
class CDATA #REQUIRED
viewerId CDATA #REQUIRED>
Asistent přetažení Drag and Drop poskytuje lehké zapojení pro dodání dalších typů přenosů a logiky pro nastavení dat pro přetažení. Tento prvek není požadován, protože základní org.eclipse.ui.navigator.CommonViewer poskytuje typ org.eclipse.jface.util.LocalSelectionTransfer.
Klienti by měli toto rozšíření definovat pouze v lehkých modulech plug-in s mělkými stromy závislosti. Asistent přetažení musí být načten předem, když se prohlížeč vytváří, což si vynutí načtení ovlivněných modulů plug-in.
org.eclipse.ui.navigator.CommonDragAdapterAssistant
.Následující příklad konfiguruje ID místní nabídky pro prohlížeč.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewer id=
"org.eclipse.testViewer"
popupMenuId=
"org.eclipse.testViewer#PopupMenu"
/>
</extension>
Protože se ve výše uvedeném příkladu podřízený prvek popupMenu prohlížeče nepoužívá, použije se výchozí sada insertionPoints. Tato sada je definována následujícím způsobem. Další informace viz dokumentace pro prvek popupMenu.
"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"
Následující příklad demonstruje konfiguraci prohlížeče, která deklaruje přizpůsobené popupMenu/insertionPoints, ale omezuje objekt a příspěvky prohlížeče pomocí atributu "allowsPlatformContributions". Klienti mohou přispívat do definované nabídky pouze prostřednictvím org.eclipse.ui.navigator.CommonActionProvider
deklarovaných pro prohlížeč (buďto nejvyšší úrovně, nebo asociovaný s rozšířeními obsahu).
Vezměte na vědomí, že atribut "popupMenuId" není momentálně specifikován prvkem popupMenu. Platnou konfigurací je pouze jeden nebo druhý, ale nikoli oba.
<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>
Následující příkaz deklaruje, že jedno rozšíření obsahu (ID: "org.eclipse.ui.navigator.resourceContent") je navázáno k prohlížeči odpovídajícímu ID "org.eclipse.ui.navigator.resourceContent". (V tomto příkladu se ID rozšíření obsahu a prohlížeče shodují, ale to není zapotřebí.) Dále, každé rozšíření obsahu s ID, které začíná na "org.eclipse.ui.navigator.tests.", bude ignorováno.
<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>
Následující příklad deklaruje viewerActionBinding pro všechny actionProvider (nejsou vnořené pod rozšířením navigatorContent), které se shoduje s regulérním výrazem "org.acme.actions.*", ale nikoli "org.acme.actions.tests.*". Tento výraz poskytne libovolný actionProvider, jehož ID začíná na "org.acme.actions.", ale nikoli "org.acme.actions.tests." viditelné pro prohlížeč s ID "org.acme.viewer". Samozřejmě se viewerActionBindings aplikují pouze na prvky actionProvider, které nejsou vnořeny pod prvek navigatorContent. Viditelnost vnořených prvků actionProvider je kontrolována pomocí viewerContentBindings pro zapouzdřující prvek navigatorContent.
<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>
Následující příkaz provádí libovolný actionProvider bez atributu "id" viditelný pro prohlížeč "org.acme.viewer". actionProvider bez atributu "id" mají výchozí ID "org.eclipse.ui.navigator.actionProvider.X". Samozřejmě se viewerActionBindings aplikují pouze na prvky actionProvider, které nejsou vnořeny pod prvek navigatorContent. Viditelnost vnořených prvků actionProvider je kontrolována pomocí viewerContentBinding pro zapouzdřující prvek navigatorContent.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewerActionBinding viewerId=
"org.acme.viewer"
>
<includes>
<actionExtension pattern=
"org.eclipse.ui.navigator.actionProvider.*"
/>
</includes>
</viewerActionBinding>
</extension>
Následující příklad demonstruje standardní vlastnosti dostupné prohlížeči.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewer popupMenuId=
"org.eclipse.ui.tests.navigator.TestView#PopupMenu"
viewerId=
"org.eclipse.ui.tests.navigator.TestView"
>
<options>
<!-- Skryjte kartu
"Dostupná rozšíření"
v dialogovém okně
"Dostupná vlastní nastavení"
(dostupné z akce
"Filtry"
-->
<property name=
"org.eclipse.ui.navigator.hideAvailableExtensionsTab"
value=
"true"
/>
<!-- Skryjte úplně dialogové okno
"Dostupná vlastní nastavení"
. To zahrnuje skrytí filtrů a dostupných rozšíření obsahu. -->
<property name=
"org.eclipse.ui.navigator.hideAvailableCustomizationsDialog"
value=
"true"
/>
<!-- Skryjte akci
"Propojit s editorem"
z panelu nástrojů prohlížeče -->
<property name=
"org.eclipse.ui.navigator.hideLinkWithEditorAction"
value=
"true"
/>
<!-- Skryjte akci
"Sbalit vše"
z panelu nástrojů prohlížeče -->
<property name=
"org.eclipse.ui.navigator.hideCollapseAllAction"
value=
"true"
/>
</options>
</viewer>
</extension>
Copyright (c) 2002, 2005 IBM Corporation a další.
Všechna práva vyhrazena.
Tento program a doprovodné materiály jsou zpřístupněny za podmínek licence Eclipse Public License
v1.0, která je součástí této distribuce a je k dispozici na adrese
http://www.eclipse.org/legal/epl-v10.html