triggerPoints-uttrykket beskriver elementene som forårsaker at denne utvidelsen blir startet for underordnede elementer eller for etiketter. Uttrykket possibleChildren beskriver elementene som det kan være mulig for utvidelsen å skaffe et overordnet element for. Klienter skal beskrive alle elementer som kan velges, for å sikre at linken med redigeringsstøtte kan utvides til den riktige noden.
<!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 Navigator-innholdsutvidelse definerer en innholdsleverandør og etikettleverandør som
kan brukes til å besørge underordnede elementer når et element samsvarer med
triggerPoints-uttrykket, og til å besørge et overordnet element når et element
samsvarer med possibleChildren-uttrykket.
Eventuelt kan klienter også besørge en handlingsleverandør som kan gi menybidrag og
handlingslinjebidrag når det blir valgt et element som utvidelsen bidro med, eller som
samsvarer med triggerPoints-uttrykket. Klienter kan også velge å bidra med en
sorterer for å sortere elementer som er oppgitt av utvidelsen.
org.eclipse.ui.navigator.CommonActionProvider
)org.eclipse.jface.viewers.ITreeContentProvider
eller org.eclipse.ui.navigator.ICommonContentProvider
.
org.eclipse.jface.viewers.ILabelProvider
eller, for mer avansert
funksjonalitet, org.eclipse.ui.navigator.ICommonLabelProvider
.
org.eclipse.ui.navigator.IDescriptionProvider
for å legge til tekst i statuslinjen nederst i Eclipse-arbeidsbenken, basert på hva
som er valgt i visningsprogrammet.<!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Aktiveringsuttrykket lar klienter angi det samme uttrykket for både triggerPoints
og possibleChildren.
For actionProvider må klienter definere et uttrykk som angir til rammeverket når
deres org.eclipse.ui.navigator.CommonActionProvider
skal startes. På grunn
av bidrag til IActionBars, må klienter startes når et objekt de er interessert i,
blir valgt. Derfor bør klienter utvise diskresjon ved valg av når utvidelsen
skal aktiveres.
<!ELEMENT triggerPoints (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Uttrykket triggerPoints definerer nodene i et tre som skal medføre at denne utvidelsen startes for underordnede objekter.
<!ELEMENT possibleChildren (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Uttrykket possibleChildren definerer nodene i et tre som kan bidras av denne utvidelsen. Klienter bør beskrive når denne innholdsutvidelsen kan utgjøre et overordnet element for elementer som samsvarer med uttrykket.
<!ELEMENT actionProvider (enablement?)>
<!ATTLIST actionProvider
class CDATA #REQUIRED
id CDATA #IMPLIED
dependsOn CDATA #IMPLIED
overrides CDATA #IMPLIED>
Angir navnet på en klasse som implementerer org.eclipse.ui.navigator.CommonActionProvider
. Handlingsleverandøren
har mulighet til å bidra til hurtigmenyen og de målskiftende handlingene som er
definert i IActionBars for visningen som inneholder navigatoren. Klienter kan også
bidra direkte til visningsmenyen via IActionBars-visningsmenyen.
En actionProvider på øverste nivå er synlig for et abstrakt
visningsprogram hvis det finnes en viewerActionBinding for gjeldende actionProvider. For
handlingsleverandører som er nestet under et navigatorContent-element, blir
synligheten kontrollert av navigatorContent-utvidelses-IDen. Underordnede
handlingsleverandører blir hentet automatisk av samsvarende viewerContentBinding. Du
finner mer informasjon om synlighetsbindinger i org.eclipse.ui.navigator.viewer.
Klienter kan oppgi actionProvider under rotutvidelseselementet
(likeverdig med annet navigatorContent) for å få bedre kontroll over aktivering
og visningsprogrambinding (se veiwerActionBinding).
For roten actionProviders uten noen ID, blir IDen
"org.eclipse.ui.navigator.actionProvider.X" som standard. For at slike
actionProviders skal gis mulighet til å bidra med menyene eller handlingslinjene i
et visningsprogram, må det defineres en viewerActionBinding (som del av
utvidelsespunktet org.eclipse.ui.navigator.viewer) som deklarer en binding mellom
det spesifikke visningsprogrammet og standard-IDen ("org.eclipse.ui.navigator.actionProvider.*"). Du
finner flere opplysninger i dokumentasjonen for viewerActionBinding under
skjemadokumentasjonen til org.eclipse.ui.navigator.viewer.
<!ELEMENT commonWizard (enablement)>
<!ATTLIST commonWizard
type (import|export|new)
wizardId CDATA #REQUIRED
menuGroupId CDATA #IMPLIED
associatedExtensionId CDATA #IMPLIED>
Utvidelsespunktet gir mulighet til å bidra til menyen, definert etter type.
<!ELEMENT commonFilter (filterExpression?)>
<!ATTLIST commonFilter
id CDATA #REQUIRED
name CDATA #REQUIRED
description CDATA #IMPLIED
class CDATA #IMPLIED
activeByDefault (true | false) >
Definerer et filter som kan tilknyttes et bestemt felles visningsprogram. Fellesfiltre bindes til et visningsprogram som innholdsutvidelser ved å bruke org.eclipse.ui.navigator.viewer/viewerContentBinding.
<!ELEMENT filterExpression (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Et valgfritt Eclipse-kjerneuttrykk som definerer hva filteret skal skjule fra en bestemt
visning.
Klienter kan for eksempel velge å skjule alle ressurser som har et bestemt
navnemønster (for eksempel "*.acme"). Når filteret er aktivt (slått på som standard
eller av brukeren), blir alle ressurser som slutter på "acme", skjult fra brukeren
visning.
Klienter kan bruke enten filterExpression eller attributtet "class", men ikke
begge deler.
<!ELEMENT commonSorter (parentExpression)>
<!ATTLIST commonSorter
id CDATA #REQUIRED
class CDATA #REQUIRED>
En commonSorter deklarerer en subklasse av
org.eclipse.jface.viewers.ViewerSorter
, som brukes til å sortere
underordnede enheter i treet. Den nestede parentExpression beskriver når
commonSorter skal brukes. Hvis et element samsvarer med parentExpression,
blir dets underordnede elementer sortert etter denne commonSorter.
org.eclipse.jface.viewers.ViewerSorter
.<!ELEMENT parentExpression (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
En parentExpression brukes av commonSorter for å identifisere når den kan brukes. Hvis parentExpression for en commonSorter samsvarer med et gitt element, brukes den aktuelle commonSorter til å sortere de underordnede enhetene til dette elementet (som returnert av innholdstjenestens innholdsleverandør).
<!ELEMENT override EMPTY>
<!ATTLIST override
suppressedExtensionId CDATA #REQUIRED
policy (InvokeOnlyIfSuppressedExtAlsoVisibleAndActive|InvokeAlwaysRegardlessOfSuppressedExt) "InvokeAlwaysRegardlessOfSuppressedExt">
Når triggerPoints-uttrykket til den utelatte utvidelsen og den deklarerte
utvidelsen begge er aktivert på et gitt element, blir utvidelsen aktivert, men
den utelatte utvidelsen blir ikke aktivert. Klienter som spesifiserer et
override-element må også skaffe til veie en innholdsleverandør som implementerer
org.eclipse.ui.navigator.IPipelinedTreeContentProvider
, som gir metoder
for å avskjære forespørsler for underordnede elementer, overordnede elementer samt
direkte oppdateringer til visningsprogrammet.
<!ELEMENT dropAssistant (possibleDropTargets)>
<!ATTLIST dropAssistant
id CDATA #REQUIRED
class CDATA #REQUIRED>
Gir en subklasse av org.eclipse.ui.navigator.CommonDropAdapterAssistant
som kan besørge programmatisk validering foren slipp-operasjon, be om ytterligere
overføringstyper, og håndtere slipp-operasjonen.
En dropAssistant blir aktivert når elementer som dras, samsvarer med
possibleChildren-uttrykket til den innkapslende navigatorContent-utvidelsen,
og slipp-målet til operasjonen er beskrevet av
possibleDropTargets-uttrykket til dropAssistant-elementet.
En utvidelse kan ha flere slipp-adaptere med gjensidig utelukkende
possibleDropTargets-uttrykk. Den første slipp-adapteren som blir funnet, som
samsvarer med det gitte slippmålet og returnerer OK-status for
CommonDropAdapterAssistant.validateDrop(...)
, gis mulighet til å håndtere
slippet.
org.eclipse.ui.navigator.CommonDropAdapterAssistant
<!ELEMENT possibleDropTargets (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Beskriv mulig mål for slipp som en bestemt dropAssistant kan håndtere.
<!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Et generisk rotelement. Elementet kan brukes i et utvidelsespunkt for å definere det tilhørende aktiveringsuttrykket. Underordnede til et aktiveringsuttrykk kombineres med operatoren AND.
<!ELEMENT not (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>
Dette elementet representerer en NOT-operasjon for resultatet av evalueringen av underelementuttrykket.
<!ELEMENT and (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Dette elementet representerer en AND-operasjon på resultatet av evalueringen av alle dets underelementuttrykk.
<!ELEMENT or (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Dette elementet representerer en OR-operasjon på resultatet av evalueringen av alle tilhørende underelementuttrykk.
<!ELEMENT instanceof EMPTY>
<!ATTLIST instanceof
value CDATA #REQUIRED>
Dette elementet brukes til å utføre en instanceof-kontroll av objektet i fokus. Uttrykket returnerer EvaluationResult.TRUE hvis objektets type er en subtype for typen som er oppgitt med value-attributtet. Ellers returneres EvaluationResult.FALSE.
<!ELEMENT test EMPTY>
<!ATTLIST test
property CDATA #REQUIRED
args CDATA #IMPLIED
value CDATA #IMPLIED>
Dette elementet brukes til å evaluere egenskapstilstanden til objektet i fokus. Settet med testbare egenskaper kan utvides ved hjelp av utvidelsespunktet for egenskapstesting. Testuttrykket returnerer EvaluationResult.NOT_LOADED hvis egenskapstesteren som utfører den faktiske testingen, ikke er lastet inn ennå.
<!ELEMENT systemTest EMPTY>
<!ATTLIST systemTest
property CDATA #REQUIRED
value CDATA #REQUIRED>
Tester en systemegenskap ved å sende kall til metoden System.getProperty, og sammenlikner resultatet med verdien som er oppgitt ved hjelp av value-attributtet.
<!ELEMENT equals EMPTY>
<!ATTLIST equals
value CDATA #REQUIRED>
Dette elementet brukes til å utføre en equals-kontroll av objektet i fokus. Uttrykket returnerer EvaluationResult.TRUE hvis objektet er lik verdien som er oppgitt av value-attributtet. Ellers returneres EvaluationResult.FALSE.
<!ELEMENT count EMPTY>
<!ATTLIST count
value CDATA #REQUIRED>
Dette elementet brukes til å teste antall elementer i en samling.
<!ELEMENT with (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST with
variable CDATA #REQUIRED>
Dette elementet endrer objektet som skal inspiseres, for alle underordnede elementer til objektet det refereres til med den oppgitte variabelen. Hvis variabelen ikke kan behandles, vil uttrykket kaste et ExpressionException ved evaluering. Underordnede under et with-uttrykk kombineres ved hjelp av operatoren AND.
<!ELEMENT resolve (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST resolve
variable CDATA #REQUIRED
args CDATA #IMPLIED>
Dette elementet endrer objektet som skal inspiseres, for alle underordnede elementer til objektet det refereres til med den oppgitte variabelen. Hvis variabelen ikke kan behandles, vil uttrykket kaste et ExpressionException ved evaluering. Underordnede under et with-uttrykk kombineres ved hjelp av operatoren AND.
<!ELEMENT adapt (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST adapt
type CDATA #REQUIRED>
Dette elementet brukes til å tilpasse objektet i fokus til typen som er oppgitt av attributtet type. Uttrykket returnerer ikke innlastet hvis adapteren eller typen det refereres til, ennå ikke er lastet inn. Det kaster et ExpressionException under evaluering hvis typenavnet ikke finnes i det hele tatt. Underordnede til et adapt-uttrykk kombineres ved hjelp av operatoren AND.
<!ELEMENT iterate (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST iterate
operator (or|and) >
Dette elementet brukes til å gjenta en variabel som er av typen java.util.Collection. Hvis objektet i fokus ikke er av typen java.util.Collection, kastes et ExpressionException ved evaluering av uttrykket.
Det følgende eksempelet beskriver en innholdsutvidelse som besørger ressursinnhold. triggerPoints-uttrykket bestemmer når denne utvidelsen aktiveres for første gang. Hvis en viewerContentBinding samsvarer denne utvidelsen med "isRoot"-attributtet satt til true, brukes utvidelsen uansett om rotelementet samsvarer med triggerPoints-uttrykket eller ikke.
<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 bruke objekt- eller visningsbidrag (se org.eclipse.ui.popupMenus)
for å besørge handlinger for deres utsnitt. Noen ganger krever klienter en større
grad av fleksibilitet enn noen av disse tilnærmingsmåtene tillater, og derfor
støtter Felles navigator-rammeverket tillegg av handlingsleverandører. "Handlingsleverandører"
har subklassen org.eclipse.ui.actions.ActionGroup
og har muligheter til å fylle handlingslinjene og menyene basert på ulike hendelser
(henholdsvis merking og høyreklikking).
Klienter kan enten knytte en eller flere handlingsleverandører til en bestemt innholdsutvidelse, eller deklarere handlingsleverandørene som bidrag på øverste nivå, ikke tilknyttet noen bestemt innholdsutvidelse. Handlingsleverandører på øverste nivå må være tilknyttet en bestemt forekomst av visningsprogram som bruker utvidelsespunktet org.eclipse.ui.navigator.viewer/viewerActionBinding. Nestede handlingsleverandører blir automatisk bundet til et visningsprogram, basert på om deres inneholdende innholdsutvidelse også er bundet til visningsprogrammet (se org.eclipse.ui.navigator/viewerContentBinding).
Det følgende eksempelet demonstrerer begge fremgangsmåtene. "TestNestedActionProvider"
vil bli gitt en mulighet til å bidra til menyen og
org.eclipse.ui.IActionBars
bare når
utvidelsen "org.eclipse.ui.tests.navigator.testContent"
er synlig og aktiv.
Hvis brukeren deaktiverer testutvidelsen fra dialogboksen "Tilgjengelige
tilpasninger", har ikke den nestede handlingsleverandøren lenger mulighet til å
bidra.
<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 definere filtre med subklasser av org.eclipse.jface.viewers.ViewerFilter
eller via Eclipse-kjerneuttrykk. Det følgende eksempelet demonstrerer begge disse
teknikkene. Klienter kan bare bruke ett av de to alternativene. Hvis utvidelser
ved en feil angir begge, blir det bare tatt hensyn til kjerneuttrykksfilteret. Navne- og
beskrivelsesfeltene kan oversettes, og skal være eksternaliserte strenger i virkelige
miljøer.
<extension point=
"org.eclipse.ui.navigator.navigatorContent"
>
<commonFilter class=
"org.eclipse.ui.tests.navigator.extension.TestItemsThatEndIn3"
description=
"Skjul TestItem-objekter som slutter på tallet "3""
id=
"org.eclipse.ui.tests.navigator.filters.TestItemsThatEndWith3"
name=
"TestItems som slutter på "3""
activeByDefault=
"true"
/>
<commonFilter description=
"Skjuler alle forekomster av testelement"
id=
"org.eclipse.ui.tests.navigator.filters.AllTestItems"
name=
"Et TestItem Exp-filter (bør sorteres alfab..)"
>
<filterExpression>
<instanceof value=
"org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData"
/>
</filterExpression>
</commonFilter>
En felles sorterer velges for et sett underordnede elementer, basert på deres overordnede
element. Sortererklassen må opprette subklasse med
org.eclipse.jface.viewers.ViewerSorter
.
<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>
Det følgende eksempelet viser hvordan du tilføyer veivisersnarveier for "Ny mappe" og "Ny fil", som aktiveres på de spesifikke subklassene til org.eclipse.core.resources.IResource. Klienter kan bruke de delene av org.eclipse.core.expressions som er nødvendige for å beskrive når menyalternativene skal være tilgjengelige. wizardId som er spesifisert under, må tilsvare et av org.eclipse.ui.xxxWizards-utvidelsespunktene.
Klienter som bygger sine egne visningsprogrammer eller visningsdeler, må bruke
org.eclipse.ui.navigator.WizardActionGroup
for å fylle menyene på riktig
måte. Se denne klassen for å få mer dokumentasjon om bruken av denne funksjonen.
<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. This program and the accompanying materials are made
available under the terms of the Eclipse Public License v1.0 which accompanies
this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html