Konfiguration av gemensam visning

org.eclipse.ui.navigator.viewer

3.2

Elementet viewer definierar konfigurationen för ett gemensamt visningsprogram. Utökningen kan tillhandahålla ett ID för en anpassad listruta och åsidosätta om visningsprogrammet ska tillhandahålla en länk för redigerarfunktioner, en filterdialogruta och/eller dialogrutan Tillgängliga anpassningar. Dessutom ger kapslade konfigurationselement full kontroll över kontextlistrutans struktur och hur den fungerar.

viewerContentBinding binder definierade innehållsutökningar (via utökningspunkten navigatorContent) till visningsprogram (som definierats via utökningspunkten org.eclipse.ui.views). Innehållsutökningar som är bundna till visningsprogram beskrivs som synliga. En innehållstjänst (org.eclipse.ui.navigator.INavigatorContentService) returnerar inte utökningar som inte är synliga för visningsprograms-ID:t.

<!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>

Tillhandahåller grundläggande konfiguration för visningsprogrammets egenskaper. Klienter måste även definiera utökningen org.eclipse.ui.views för att skapa visningsdelen.



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

<!ATTLIST viewerContentBinding

viewerId CDATA #REQUIRED>

Klienter måste definiera ett eller flera viwerContentBinding-element för att beskriva vilka innehållsutökningar och gemensamma filter som är synliga för visningsprogrammet. En innehållsutökning eller ett gemensamt filter är synligt om ID:t för innehållsutökningen eller det gemensamma filtret överensstämmer med en includes-sats under en viewerContentBinding och inte exkluderas av en excludes-sats. Om en innehållsutökning eller ett gemensamt filter inte är synligt för ett visningsprogram får utökningspunkten aldrig en fråga om innehåll från en innehållstjänst för visningsprogrammet och inte heller visas den för användaren i den tillgängliga filterdialogrutan.

Klienter kan definiera ett includes-element för att välja vilka utökningar som ska vara synliga för visningsprogrammet och, på motsvarande sätt, ett excludes-element för utökningar som inte ska vara synliga för visningsprogrammet. Klienter kan göra ytterligare definitioner av de utökningar ska tillfrågas explicit om rotelement (via ITreeContentProvider.getElements()) av attributet isRoot. Om värdet true har angetts för isRoot för ett eller flera contentExtension-element i includes-satsen tillfrågas endast de utökningarna om rotelement. Attributet isRoot påverkar inte exkluderingar.

Ett visningsprogram kan ha flera förekomster av definierade viewerContentBinding och deras includes-/excludes-satser aggregeras så att de slutliga funktionerna skapas.



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

<!ATTLIST viewerActionBinding

viewerId CDATA #REQUIRED>

Klienter måste definiera vilka åtgärdsleverantörer som är synliga för visningsprogrammet. Klienter kan definiera ett includes-element för att välja vilka utökningar som ska vara synliga för visningsprogrammet och, på motsvarande sätt, ett excludes-element för utökningar som inte ska vara synliga för visningsprogrammet.

Ett visningsprogram kan ha flera förekomster av definierade viewerActionBinding och deras includes-/excludes-satser aggregeras så att de slutliga funktionerna skapas.

För actionProvider-definitioner som inte är kapslade under en navigatorContent-definition kan klienter ange ett anpassat ID. Om klienter inte anger ett ID används "org.eclipse.ui.navigator.actionProvider.X" som standard. För klienter där actionProvider-förekomster utan specifikt ID ska användas måste en viewerActionBinding för standard_ID:t definieras. Mer information finns i exempeavsnittet:



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

Definiera en uppsättning mönster som ska ingå vid sökning efter innehållsutökningar för det visningsprogram som överensstämmer med attributet viewerId. När includes- och excludes-satserna korsar varandra har includes-satsen prioritet.



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

Definiera en uppsättning mönster som ska utelämnas vid sökning efter innehållsutökningar för det visningsprogram som överensstämmer med attributet viewerId. När includes- och excludes-satserna korsar varandra har includes-satsen prioritet.



<!ELEMENT contentExtension EMPTY>

<!ATTLIST contentExtension

pattern CDATA #REQUIRED

isRoot  (true | false) >

Anger ID:t (eller det överensstämmande mönstret) för en innehållsutökning som ska tillfrågas av ITreeContentProvider.getElements() eller ITreeContentProvider.getChildren() om roten av visningsprogrammet eller ett gemensamt filter som ska vara tillgängligt för användaren i dialogrutan Tillgängliga filter.

Klienter kan ange isRoot och välja specifika rotutökningar för att åsidosätta de utökningar som i annat fall skulle aktiveras för indataelementet för visningsprogrammet (baserat på det överensstämmande triggerPoints-uttrycket för indataelementet för visningsprogrammet).

Mer information finns i dokumentationen till viewerContentBinding.



<!ELEMENT actionExtension EMPTY>

<!ATTLIST actionExtension

pattern CDATA #REQUIRED>

Anger att åtgärdsutökningen ska kunna lägga till objekt på kontextmenyn och i åtgärdsfälten.

Mer information finns i dokumentationen till viewerActionBinding.



<!ELEMENT popupMenu (insertionPoint*)>

<!ATTLIST popupMenu

id                          CDATA #IMPLIED

allowsPlatformContributions (true | false) >

Ett popupMenu-element kan definieras endast om attributet popupMenuId för viewer-elementet inte har angetts.

Med popupMenu-elementet kan ytterligare anpassning av den kontextmeny som är associerad med visningsprogrammet göras. För att alternativen ska användas på rätt sätt måste en förekomst av visningsprogrammet delegera till en org.eclipse.ui.navigator.NavigatorActionService som fungerar som en vanlig org.eclipse.ui.ActionGroup. Mer information om hur du använder de här funktionerna finns i dokumentationen till den här API-klassen. För klienter som använder en förekomst av org.eclipse.ui.navigator.CommonNavigator behöver inget extra arbete utföras.

En popupMenu deklarerar en eller flera insertionPoints som kommer att användas av bidragare för sortering av tillägg i en självförklarande, mer användarvänlig och konsekvent lista.
Om klienter endast anger attributet popupMenuId för viewer-elementet används som standard följande lista i angiven ordningsföljd för den uppsättning insertionPoints som används av kontextmenyn:

"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"


Klienter som vill referera till de här värdena programmässigt kan använda motsvarande konstanter i org.eclipse.ui.navigator.ICommonMenuConstants.

Klienter som vill anpassa sina menyer bör börja med den här listan och lägga till eller ta bort infogningspunkter efter behov. Klienter bör även följa konventionen att börja varje gruppnamn med "group.".

Om popupMenu-elementet anges och INTE innehåller några underordnade insertionPoint-element kommer kontextmenyn inte att ha några publicerade infogningspunkter. Programklienter kan förstås lägga till sina egna infogningspunkter efter behov. Klienter som definierar visningsprogram bör publicera infogningspunkterna i dokumenteringssyfte och för att skapa tydlighet för underordnade utökningar i visningsprogram/navigeringsvyer eller för att explicit dokumentera vilka infogningspunkter som räknas som API och vilka som räknas som interna.



<!ELEMENT insertionPoint EMPTY>

<!ATTLIST insertionPoint

name      CDATA #REQUIRED

separator (true | false) >

Definierar en infogningspunkt för kontextmenyn. Inbegriper namnet på den punkt som klienter refererar till och anger om infogningspunkten ska återges som en avgränsare eller en gruppmarkör.



<!ELEMENT options (property+)>

Ange alternativ i visningsprogrammet och anpassa hur det visas för användaren. Information om tillgängliga egenskaper finns i avsnittet om org.eclipse.ui.navigator.INavigatorViewerDescriptor.



<!ELEMENT property EMPTY>

<!ATTLIST property

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Ange ett namnvärdepar. Värdet visas i befintligt skick i visningsprogrammet (så tomma strängar propageras som tomma strängar). Information om tillgängliga egenskaper och beskrivningar av dem finns i avsnittet om org.eclipse.ui.navigator.INavigatorViewerDescriptor.



<!ELEMENT dragAssistant EMPTY>

<!ATTLIST dragAssistant

class    CDATA #REQUIRED

viewerId CDATA #REQUIRED>

I hjälpen för dra och släpp finns en Lightweight-hook-funktion så att extra överföringstyper och -logik kan anges för inställning av data för dra-åtgärder. Det här elementet är inte obligatoriskt eftersom det vanliga org.eclipse.ui.navigator.CommonViewer tillhandahåller en org.eclipse.jface.util.LocalSelectionTransfer-typ.

Klienter bör endast definiera den här utökningen i Lightweight-insticksprogram med beroendeträd med få nivåer. Hjälp för dra-åtgärder måste läsas in när visningsprogrammet skapas, vilket tvingar inläsning av berörda insticksprogram.



I följande exempel konfigureras listrute-ID:t för ett visningsprogram.


   

<extension point=

"org.eclipse.ui.navigator.viewer"

>

<viewer id=

"org.eclipse.testViewer"

popupMenuId=

"org.eclipse.testViewer#PopupMenu"

/>

</extension>

Eftersom det underordnade elementet popupMenu för visningsprogrammet inte används i det ovanstående exemplet används standarduppsättningen insertionPoints. Uppsättningen definieras på följande sätt. Mer information om finns i dokumentationen för popupMenu-elementet.

"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"

I följande exempel visas en konfiguration för ett visningsprogram där anpassade popupMenu/insertionPoints deklareras men objekts- och visningsprogramstillägg med attributet "allowsPlatformContributions" begränsas. Klienter kan endast lägga till i den definierade menyn via org.eclipse.ui.navigator.CommonActionProvider-förekomster som deklarerats för visningsprogrammet (antingen på den översta nivån eller associerat med innehållsutökningar).

Lägg märke till att attributet "popupMenuId" inte kan anges samtidigt som elementet popupMenu. Ett av dem, men inte båda, är en giltig konfiguration.

   

<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>

I följande exempel deklareras att en innehållsutökning (ID: "org.eclipse.ui.navigator.resourceContent") är bunden till ett visningsprogram som överensstämmer med ID:t "org.eclipse.ui.navigator.resourceContent". (I det här exemplet överensstämmer innehållsutöknings-ID:t och visningsprograms-ID:t men det är inte ett krav.) Dessutom ignoreras innehållsutökningar med ID:n som börjar med "org.eclipse.ui.navigator.tests."

   

<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>

I följande exempel deklareras en viewerActionBinding för alla actionProvider-förekomster (som inte är kapslade under en navigatorContent-utökning) som överensstämmer med det reguljära uttrycket "org.acme.actions.*" men inte med "org.acme.actions.tests.*". Det här uttrycket göra alla actionProvider-förekomster vars ID börjar med "org.acme.actions." men inte "org.acme.actions.tests." synliga i visningsprogrammet med ID:t "org.acme.viewer". viewerActionBindings används förstås endast för actionProvider-element som inte kapslats under ett navigatorContent-element. Synligheten för kapslade actionProvider-element styrs av viewerContentBindings för det omslutande navigatorContent-elementet.

   

<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>

I följande exempel blir alla actionProvider utan "id"-attribut synliga i visningsprogrammet "org.acme.viewer". actionProvider-förekomster utan "id"-attribut har standard-ID:t "org.eclipse.ui.navigator.actionProvider.X". viewerActionBindings används förstås endast för actionProvider-element som inte kapslats under ett navigatorContent-element. Synligheten för kapslade actionProvider-element styrs av viewerContentBinding-förekomster för det omslutande navigatorContent-elementet.

   

<extension point=

"org.eclipse.ui.navigator.viewer"

>

<viewerActionBinding viewerId=

"org.acme.viewer"

>

<includes>

<actionExtension pattern=

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

/>

</includes>

</viewerActionBinding>

</extension>

I följande exempel visas de standardegenskaper som är tillgängliga för visningsprogrammet.

   

<extension point=

"org.eclipse.ui.navigator.viewer"

>

<viewer popupMenuId=

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

viewerId=

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

>

<options>

<!-- Dölj fliken

"Tillgängliga utökningar"

i dialogrutan

"Tillgängliga anpassningar"

(tillgänglig från

åtgärden "Filter"

-->

<property name=

"org.eclipse.ui.navigator.hideAvailableExtensionsTab"

value=

"true"

/>

<!-- Dölj dialogrutan

"Tillgängliga anpassningar"

helt. Det innebära att även filter och tillgängliga innehållsutökningar döljs. -->

<property name=

"org.eclipse.ui.navigator.hideAvailableCustomizationsDialog"

value=

"true"

/>

<!-- Dölj åtgärden

"Länka med redigerare"

från verktygsfältet i visningsprogrammet -->

<property name=

"org.eclipse.ui.navigator.hideLinkWithEditorAction"

value=

"true"

/>

<!-- Dölj åtgärden

"Komprimera alla"

från verktygsfältet i visningsprogrammet -->

<property name=

"org.eclipse.ui.navigator.hideCollapseAllAction"

value=

"true"

/>

</options>

</viewer>

</extension>