Uttrycket triggerPoints beskriver de element som gör att den här utökningen anropas antingen för underordnade objekt eller för etiketter. Uttrycket possibleChildren beskriver de element som det är möjligt att uttrycket kan tillhandahålla ett överordnat objekt till. Klienter bör beskriva alla element som kan anges för att säkerställa att länken till redigerarfunktionerna kan utökas till rätt nod.
<!ELEMENT extension ((navigatorContent? | actionProvider? | commonWizard? | commonFilter?))>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT navigatorContent ((enablement | (triggerPoints , possibleChildren)) , actionProvider* , commonSorter* , override? , dropAssistant* , commonWizard*)>
<!ATTLIST navigatorContent
id CDATA #REQUIRED
name CDATA #REQUIRED
priority (lowest|lower|low|normal|high|higher|highest)
contentProvider CDATA #REQUIRED
icon CDATA #IMPLIED
activeByDefault (true | false)
providesSaveables (true | false)
labelProvider CDATA #REQUIRED>
En innehållsnavigeringsutökning definierar en innehållsleverantör och en etikettleverantör som kan användas till att tillhandahålla underordnade objekt när ett element överensstämmer med uttrycket triggerPoints och även till att tillhandahålla ett överordnat objekt när ett element överensstämmer med uttrycket possibleChildren.
Alternativt kan klienter även tillhandahålla en åtgärdsleverantör som kan tillhandahålla menytillägg och åtgärdsfältstillägg när ett element som utökningen bidrog med eller som överensstämmer med uttrycket triggerPoints väljs. Klienter kan även välja att lägga till en sorteringsfunktion för sortering av element som läggs till av utökningen.
org.eclipse.ui.navigator.CommonActionProvider
)org.eclipse.jface.viewers.ITreeContentProvider
eller org.eclipse.ui.navigator.ICommonContentProvider
visas.
org.eclipse.jface.viewers.ILabelProvider
eller, för mer avancerade funktioner, org.eclipse.ui.navigator.ICommonLabelProvider
visas.
org.eclipse.ui.navigator.IDescriptionProvider
för att lägga till text i statusfältet längst ned i Eclipse-arbetsmiljön, baserat på inställningarna i visningsprogrammet. <!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Uttrycket enablement gör det möjligt för klienter att ange samma uttryck för både triggerPoints och possibleChildren.
Vad gäller actionProvider måste klienter definiera ett uttryck som anger för ramverket när deras org.eclipse.ui.navigator.CommonActionProvider
ska anropas. På grund av tillägg i IActionBars måste klienter anropas när ett objekt de är intresserade av väljs. Därför bör klienter aktivera utökningar med urskiljning.
<!ELEMENT triggerPoints (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Uttrycket triggerPoints definierar noderna i ett träd som bör orsaka att den här utökningen anropas för underordnade objekt.
<!ELEMENT possibleChildren (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Uttrycket possibleChildren definierar noderna i ett träd som kan läggas till av den här utökningen. Klienter bör beskriva när den här innehållsutökningen kan tillhandahålla ett överordnat objekt som överensstämmer med uttrycket.
<!ELEMENT actionProvider (enablement?)>
<!ATTLIST actionProvider
class CDATA #REQUIRED
id CDATA #IMPLIED
dependsOn CDATA #IMPLIED
overrides CDATA #IMPLIED>
Namnet på en klass som implementerar org.eclipse.ui.navigator.CommonActionProvider
visas. Åtgärdsleverantören har möjlighet att lägga till på kontextmenyn och till de åtgärder som kan få nya mål och har definierats i IActionBars för den vy där navigeringsvyn visas. Klienter kan också lägga till objekt direkt i vymenyn via vymenyn för IActionBars.
En actionProvider på högsta nivån är synlig för ett abstrakt visningsprogram om det finns en viewerActionBinding för den actionProvider-förekomsten. För actionProvider-förekomster som är kapslade under ett navigatorContent-element kontrolleras synligheten av ID:t för utöknings-ID:t för navigatorContent-elementet. Åtgärdsleverantörer för underordnade objekt plockas upp automatiskt av överensstämmande viewerContentBinding-förekomster. Mer information om synlighetsbindningar finns i avsnittet om org.eclipse.ui.navigator.viewer.
Klienter kan tillhandahålla actionProvider-förekomster under extention-elementet på rotnivå (till en annan navigatorContent på samma nivå) för att bättre kontrollera aktiverings- och visningsprogramsbindningen (mer information finns i veiwerActionBinding).
actionProviders-förekomster på rotnivå utan ID får standard-ID:t "org.eclipse.ui.navigator.actionProvider.X". För att de här actionProvider-förekomsterna ska ha möjlighet att lägga till menyer eller åtgärdsfält i ett visningsprogram måste en viewerActionBinding definieras (som en del av utökningspunkten org.eclipse.ui.navigator.viewer). Den deklarerar en bindning mellan ett visst visningsprogram och standard-ID:t ("org.eclipse.ui.navigator.actionProvider.*"). Mer information finns i dokumentationen för viewerActionBinding under schemadokumentationen för org.eclipse.ui.navigator.viewer.
<!ELEMENT commonWizard (enablement)>
<!ATTLIST commonWizard
type (import|export|new)
wizardId CDATA #REQUIRED
menuGroupId CDATA #IMPLIED
associatedExtensionId CDATA #IMPLIED>
Utökninspunkten ger möjlighet att lägga till på menyn som definieras av typ.
<!ELEMENT commonFilter (filterExpression?)>
<!ATTLIST commonFilter
id CDATA #REQUIRED
name CDATA #REQUIRED
description CDATA #IMPLIED
class CDATA #IMPLIED
activeByDefault (true | false) >
Definierar ett filter som kan associeras med ett visst gemensamt visningsprogram. Gemensamma filter binds till ett visningsprogram som innehållsutökningar med hjälp av org.eclipse.ui.navigator.viewer/viewerContentBinding.
<!ELEMENT filterExpression (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Ett valfritt Eclipse Core-uttryck som definierar vad filtret ska dölja från en viss vy.
Klienter kan till exempel välja att dölja alla resurser med ett visst mönster i sina namn (till exempel "*.acme"). När filtret är aktivt(aktiverat som standard av användaren) döljs alla resurser med namn som slutar med "acme" i användarvyn.
Klienter kan använda antingen filterExpression eller attributet "class" men inte båda.
<!ELEMENT commonSorter (parentExpression)>
<!ATTLIST commonSorter
id CDATA #REQUIRED
class CDATA #REQUIRED>
En commonSorter deklarerar en underklass till org.eclipse.jface.viewers.ViewerSorter
som används till att sortera underordnade objekt i trädet. Det kapslade parentExpression beskriver när commonSorter ska användas. Om ett element överensstämmer med parentExpression sorteras de underordnade objekten av den här commonSorter.
org.eclipse.jface.viewers.ViewerSorter
.<!ELEMENT parentExpression (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Ett parentExpression används av commonSorter till att identifiera när det ska användas. Om parentExpression för en commonSorter överensstämmer med ett visst element används den commonSorter till att sortera underordnade objekt till det elementet (som de returneras av innehållsleverantören till innehållstjänsten).
<!ELEMENT override EMPTY>
<!ATTLIST override
suppressedExtensionId CDATA #REQUIRED
policy (InvokeOnlyIfSuppressedExtAlsoVisibleAndActive|InvokeAlwaysRegardlessOfSuppressedExt) "InvokeAlwaysRegardlessOfSuppressedExt">
När uttrycket triggerPoints för både den undertryckta utökningen och den deklarerade utökningen är aktiverade för ett visst element anropas utökningen men den undertryckta utökningen anropas inte. Klienter som anger ett override-element måste även tillhandahålla en innehållsleverantör som implementerar org.eclipse.ui.navigator.IPipelinedTreeContentProvider
som i sin tur innehåller metoder för att fånga upp begäran för underordnade och överordnade objekt och direkta uppdateringar till visningsprogrammet.
<!ELEMENT dropAssistant (possibleDropTargets)>
<!ATTLIST dropAssistant
id CDATA #REQUIRED
class CDATA #REQUIRED>
Tillhandahåller en underklass till org.eclipse.ui.navigator.CommonDropAdapterAssistant
som kan tillhandahålla programmeringsbaserad validering för en släppåtgärd, begära fler överföringstyper och hantera släppåtgärden.
En dropAssistant anropas när element som dras överensstämmer med uttrycket possibleChildren för den utökning navigatorContent där de ingår och släppmålet för åtgärden beskrivs av uttrycket possibleDropTargets för elementet dropAssistant.
En utökning kan ha flera släppadaptrar med possibleDropTargets-uttryck som utesluter varandra. Den första släppadaptern som hittas och överensstämmer med det aktuella släppmålet och returnerar statusen OK för CommonDropAdapterAssistant.validateDrop(...)
får möjlighet att hantera släppåtgärden.
org.eclipse.ui.navigator.CommonDropAdapterAssistant
<!ELEMENT possibleDropTargets (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Beskriv de möjliga släppmål som en viss dropAssistant kan hantera.
<!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Ett allmänt rotelement. Elementet kan användas i en utökningspunkt till att definiera enablement-uttrycket för den. De underordnade objekten till ett enablement-uttryck kombineras med hjälp av operatorn and.
<!ELEMENT not (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>
Elementet representerar ett NOT-uttryck för resultatet från utvärderingen av underelementsuttrycken.
<!ELEMENT and (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Det här elementet representerar en AND-åtgärd för resultatet från utvärderingen av underelementuttrycken.
<!ELEMENT or (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Det här elementet representerar en OR-åtgärd för resultatet från utvärderingen av underelementuttrycken.
<!ELEMENT instanceof EMPTY>
<!ATTLIST instanceof
value CDATA #REQUIRED>
Elementet används till att göra en instanceof-kontroll av det aktuella objektet. Uttrycket returnerar EvaluationResult.TRUE om objektstypen är en undertyp till den typ som angavs av attributvärdet. I annat fall returneras EvaluationResult.FALSE.
<!ELEMENT test EMPTY>
<!ATTLIST test
property CDATA #REQUIRED
args CDATA #IMPLIED
value CDATA #IMPLIED>
Elementet används till att utvärdera egenskapsläget för det aktuella objektet. Uppsättningen egenskaper som kan testas kan utökas med hjälp av utökningspunkten för egenskapstestfunktionen. Testuttrycket returnerar EvaluationResult.NOT_LOADED om den aktuella egenskapstestfunktionen inte har lästs in ännu.
<!ELEMENT systemTest EMPTY>
<!ATTLIST systemTest
property CDATA #REQUIRED
value CDATA #REQUIRED>
Testar en systemegenskap genom att anropa metoden System.getProperty method och jämför resultatet med det värde som angetts via värdeattributet.
<!ELEMENT equals EMPTY>
<!ATTLIST equals
value CDATA #REQUIRED>
Elementet används till att göra en equals-kontroll av det aktuella objektet. Uttrycket returnerar EvaluationResult.TRUE om objektet är detsamma som det värde som tillhandahålls av attributvärdet. I annat fall returneras EvaluationResult.FALSE.
<!ELEMENT count EMPTY>
<!ATTLIST count
value CDATA #REQUIRED>
Elementet används till att testa antalet element i samlingen.
<!ELEMENT with (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST with
variable CDATA #REQUIRED>
Det här elementet ändrar det objekt som ska kontrolleras för alla underordnade element till det objekt som refereras till av den angivna variabeln. Om variabeln inte kan lösas returnerar uttrycket ExpressionException när det utvärderas. De underordnade objekten till ett with-uttryck kombineras med hjälp av operatorn and.
<!ELEMENT resolve (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST resolve
variable CDATA #REQUIRED
args CDATA #IMPLIED>
Det här elementet ändrar det objekt som ska kontrolleras för alla underordnade element till det objekt som refereras till av den angivna variabeln. Om variabeln inte kan lösas returnerar uttrycket ExpressionException när det utvärderas. De underordnade objekten till ett with-uttryck kombineras med hjälp av operatorn and.
<!ELEMENT adapt (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST adapt
type CDATA #REQUIRED>
Det här elementet används till anpassa det aktuella objektet till den typ som angavs av attributtypen. Uttrycket returneras som inte inläst om adaptern eller den refererade typen inte har lästs in än. Det returnerar ett ExpressionException under utvärdering om samma typnamn inte finns alls. De underordnade objekten till ett adapt-uttryck kombineras med hjälp av operatorn and.
<!ELEMENT iterate (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST iterate
operator (or|and) >
Det här elementet används till att räkna stegvis över en variabel som är av typen java.util.Collection. Om det aktuella objektet inte är av typen java.util.Collection returneras ExpressionException när uttrycket utvärderas.
I följande exempel beskrivs en innehållsutökning som tillhandahåller resursinnehåll. Uttrycket triggerPoints bestämmer när utökningen anropas första gången. Om en viewerContentBinding överensstämmer med utökningen när "isRoot"-attributet har värdet true används utökningen oavsett om rotelementet överensstämmer med uttrycket triggerPoints.
<extension point=
"org.eclipse.ui.navigator.navigatorContent"
>
<navigatorContent name=
"%resource.extension.name"
priority=
"low"
icon=
"icons/full/eview16/resource_persp.gif"
activeByDefault=
"true"
contentProvider=
"org.eclipse.ui.navigator.resources.internal.workbench.ResourceExtensionContentProvider"
labelProvider=
"org.eclipse.ui.navigator.resources.internal.workbench.ResourceExtensionLabelProvider"
sorter=
"org.eclipse.ui.navigator.resources.internal.workbench.ResourceSorter"
id=
"org.eclipse.ui.navigator.resourceContent"
>
<triggerPoints>
<or>
<instanceof value=
"org.eclipse.core.resources.IWorkspaceRoot"
/>
<instanceof value=
"org.eclipse.core.resources.IProject"
/>
<instanceof value=
"org.eclipse.core.resources.IFolder"
/>
</or>
</triggerPoints>
<possibleChildren>
<or>
<instanceof value=
"org.eclipse.core.resources.IWorkspaceRoot"
/>
<instanceof value=
"org.eclipse.core.resources.IProject"
/>
<instanceof value=
"org.eclipse.core.resources.IResource"
/>
<instanceof value=
"org.eclipse.core.resources.IFolder"
/>
<instanceof value=
"org.eclipse.core.resources.IFile"
/>
</or>
</possibleChildren>
</navigatorContent>
</extension>
Klienter kan använda objekt- eller visningsprogramstillägg (se org.eclipse.ui.popupMenus) till att tillhandahålla åtgärder för sin vy. Ibland kräver klienter en större grad av flexibilitet än vad de kan få med någon av ovanstående metoder och därför har ramverket för den gemensamma navigeringsvyn funktioner för att lägga till åtgärdsleverantörer. Underklassen org.eclipse.ui.actions.ActionGroup
för åtgärdsleverantörer har möjlighet att fylla i åtgärdsfält och menyer baserat på olika händelser (urval respektive högerklick).
Klienter kan antingen associera en eller flera åtgärdsleverantörer med en viss innehållsutökning eller deklarera åtgärdsleverantörerna som tillägg på högsta nivån där de inte är associerade med någon särskild innehållsutökning. Åtgärdsleverantörer på översta nivån måste associeras med en viss förekomst av visningsprogrammet med hjälp av utökningspunkten org.eclipse.ui.navigator.viewer/viewerActionBinding. Kapslade åtgärdsleverantörer binds automatiskt till ett visningsprogram baserat på om den innehållsutökning där de ingår också är bunden till visningsprogrammet (se org.eclipse.ui.navigator/viewerContentBinding).
I följande exempel visas båda metoderna. "TestNestedActionProvider" får möjlighet att lägga till på menyn och
org.eclipse.ui.IActionBars
endast när
utökningen "org.eclipse.ui.tests.navigator.testContent" är synlig och aktiv.
Om användaren avaktiverar testutökningen från dialogrutan "Tillgängliga anpassningar" har den kapslade åtgärdslevernatören inte längre möjlighet att lägga till.
<extension point=
"org.eclipse.ui.navigator.navigatorContent"
>
<navigatorContent id=
"org.eclipse.ui.tests.navigator.testContent"
name=
"%test.navigator.extension"
contentProvider=
"org.eclipse.ui.tests.navigator.extension.TestContentProvider"
labelProvider=
"org.eclipse.ui.tests.navigator.extension.TestLabelProvider"
activeByDefault=
"true"
priority=
"normal"
>
<triggerPoints>
<instanceof value=
"org.eclipse.core.resources.IProject"
/>
</triggerPoints>
<actionProvider class=
"org.eclipse.ui.tests.navigator.extension.TestNestedActionProvider"
id=
"org.eclipse.ui.tests.navigator.extension.TestNestedActionProvider"
>
<enablement>
<instanceof value=
"org.eclipse.core.resources.IResource"
/>
</enablement>
</actionProvider>
</navigatorContent>
<actionProvider class=
"org.eclipse.ui.navigator.resources.internal.actions.NewActionProvider"
id=
"org.eclipse.ui.navigator.resources.NewActions"
>
<enablement>
<or>
<adapt type=
"org.eclipse.core.resources.IFile"
/>
<adapt type=
"org.eclipse.core.resources.IFolder"
/>
<adapt type=
"org.eclipse.core.resources.IProject"
/>
<adapt type=
"org.eclipse.core.resources.IWorkspaceRoot"
/>
</or>
</enablement>
</actionProvider>
</extension>
Klienter kan definiera filter antingen med hjälp av underklasser till org.eclipse.jface.viewers.ViewerFilter
eller via Eclipse Core-uttryck. I följande exempel visas båda teknikerna. Klienter kan endast använda ett av alterantiven. När båda anges i en utökning respekteras endast Core-uttrycksfiltret. Namn- och beskrivningsfälten är översättningsbara och bör externalisera strängar i realmiljöer.
<extension point=
"org.eclipse.ui.navigator.navigatorContent"
>
<commonFilter class=
"org.eclipse.ui.tests.navigator.extension.TestItemsThatEndIn3"
description=
"Dölj TestItem-objekt som slutar med siffran "3""
id=
"org.eclipse.ui.tests.navigator.filters.TestItemsThatEndWith3"
name=
"TestItems som slutar med "3""
activeByDefault=
"true"
/>
<commonFilter description=
"Dölj alla förekomster av TestItem"
id=
"org.eclipse.ui.tests.navigator.filters.AllTestItems"
name=
"Ett filter för TestItem-uttryck (bör sorteras i alfabetisk ordning)"
>
<filterExpression>
<instanceof value=
"org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData"
/>
</filterExpression>
</commonFilter>
En gemensam sorteringsfunktion anges för en uppsättning underordnade element baserat på de överordnade elementen. org.eclipse.jface.viewers.ViewerSorter
måste vara underklass till sorteringsklassen.
<extension point=
"org.eclipse.ui.navigator.navigatorContent"
>
<commonSorter class=
"org.eclipse.ui.navigator.resources.internal.workbench.ResourceExtensionSorter"
id=
"org.eclipse.ui.navigator.resources.sorters.defaultSorter"
>
<parentExpression>
<or>
<instanceof value=
"org.eclipse.core.resources.IWorkspaceRoot"
/>
<instanceof value=
"org.eclipse.core.resources.IProject"
/>
<instanceof value=
"org.eclipse.core.resources.IResource"
/>
<instanceof value=
"org.eclipse.core.resources.IFolder"
/>
<instanceof value=
"org.eclipse.core.resources.IFile"
/>
</or>
</parentExpression>
</commonSorter>
</extension>
I följande exempel visas hur du lägger till åtgärder för guidegenvägar för "Ny mapp" och "Ny fil" som aktiveras för de specifika underklasserna till org.eclipse.core.resources.IResource. Klienter kan använda valfria delar av org.eclipse.core.expressions som krävs för att beskriva när menyalternativen ska vara tillgängliga. wizardId som anges nedan måste överensstämma med en av org.eclipse.ui.xxxWizards-utökningspunkterna.
För klienter som skapar sina egna visningsprogram eller vydelar ser du till att org.eclipse.ui.navigator.WizardActionGroup
används så att menyalternativen läggs till på rätt sätt. Mer dokumentation om hur du använder den här funktionen finns i den klassen.
<extension point=
"org.eclipse.ui.navigator.navigatorContent"
>
<commonWizard type=
"new"
wizardId=
"org.eclipse.ui.wizards.new.folder"
>
<enablement>
<or>
<adapt type=
"org.eclipse.core.resources.IFile"
/>
<adapt type=
"org.eclipse.core.resources.IFolder"
/>
<adapt type=
"org.eclipse.core.resources.IProject"
/>
<adapt type=
"org.eclipse.core.resources.IWorkspaceRoot"
/>
</or>
</enablement>
</commonWizard>
<commonWizard type=
"new"
wizardId=
"org.eclipse.ui.wizards.new.file"
>
<enablement>
<or>
<adapt type=
"org.eclipse.core.resources.IFile"
/>
<adapt type=
"org.eclipse.core.resources.IFolder"
/>
<adapt type=
"org.eclipse.core.resources.IProject"
/>
<adapt type=
"org.eclipse.core.resources.IWorkspaceRoot"
/>
</or>
</enablement>
</commonWizard>
</extension>
Copyright (c) 2002, 2005 IBM Corporation and others.
All rights reserved. Detta program och medföljande material tillhandahålls under villkoren för Eclipse Public License v1.0 som medföljer denna distribution och finns tillgänglig på http://www.eclipse.org/legal/epl-v10.html