Kun lisäosa lisää toiminnon työympäristön käyttöliittymään jollakin valikon laajennuspisteistä, se voi määrittää ehdot, joiden mukaan valikon kohde on näkyvä tai käytössä valikossa. Yksinkertaisten käyttöönottoehtojen, kuten valintalaskinten ja valintaluokkien, lisäksi lisäosat voivat käyttää loogisia lausekkeita, jotka lisäävät joustavuutta toiminnon näkyvyyden tai käytettävissä olon määrittämiseen.
Loogiset lausekkeet voivat sisältää Boolen operaattoreita (NOT, AND, OR) yhdistettyinä ennalta määritettyyn rakenteeseen tiettyjen ehtojen laskentaa varten. Monet näistä ehdoista tarkastavat tietyn objektin. "Tarkennetun objektin" (testattavan objektin) identiteetti vaihtelee käyttöönottolausekkeen nimenomaisen yhteyden mukaan:
Kun määritetään arvo, jota käytetään näiden lausekkeiden testauksessa, arvon oletetaan olevan merkkijono, ellei jokin seuraavista muunnoista onnistu:
Käyttöönoton XML-syntaksin kattava määritelmä on kaikkien enablement-elementin määrittävien laajennuspisteiden dokumentaatiossa, esimerkiksi org.eclipse.ui.popupMenus.
Nämä yleiset loogiset lausekkeet eivät olleet käytettävissä ennen versiota 3.0. Seuraavia ennalta määritettyjä lausekkeita käytettiin tiettyjen ehtojen laskemiseen luomatta yleislauseketta. Huomaa, että nämä lausekkeet voi nykyään ilmaista yleisemmällä syntaksilla. Ennalta määritettyjä lausekkeita voi edelleen käyttää seuraavasti:
objectClass - true, jos jokainen valinnan objekti on luokan aliobjekti tai toteuttaa luokan.
objectState - true, jos nimetty määrite vastaa määritettyä arvoa. IActionFilter auttaa lausekkeen laskennassa. Toimintosuodatin laskee dynaamisesti toiminnon käyttöönottoehdot kohdevalinnan ja nimettyjen määritteiden arvon mukaan.
systemProperty - true, jos nimetty järjestelmän ominaisuus vastaa määritettyä arvoa.
pluginState - määrittää, asennetaanko tai aktivoidaanko määritetty lisäosa ( tunnisteen mukaan)
Esimerkiksi seuraavat katkelmat kuvaavat käyttöönottolausekkeita, joita voisi käyttää kuvitellun toiminnon suhteen toimintojoukossa:
<action id="org.eclipse.examples.actionEnablement.class" label="Red Element" menubarPath="additions" class="org.eclipse.examples.actionEnablement.ObjectTestAction"> <enablement> <and> <objectClass name="org.eclipse.examples.actionEnablement.TestElement"/> <objectState name="name" value="red"/> </and> </enablement> </action>
<action id="org.eclipse.examples.actionEnablement.property" label="Property" menubarPath="additions" class="org.eclipse.examples.actionEnablement.PropertyTestAction"> <enablement> <systemProperty name="MyTestProperty" value="puppy"/> </enablement> </action>
<action id="org.eclipse.examples.actionEnablement.pluginState" label="Installed" menubarPath="additions" class="org.eclipse.examples.actionEnablement.PluginTestAction"> <enablement> <pluginState id="x.y.z.anotherPlugin" value="installed"/> </enablement> </action>
Laajennuspisteiden ohjeissa on näiden lausekkeiden tarkempia esimerkkejä ja XML:n kattava kuvaus.
Seuraava taulukko sisältää toimintoja lisäävät laajennuspisteet ja esittää, miten XML-merkintämääritteitä ja loogisia lausekkeita voi käyttää niin, että ne vaikuttavat käyttöönottoon.
Laajennuspisteen nimi |
Käyttöönottoon vaikuttavat määritteet |
Loogiset lausekkeet |
---|---|---|
enablesFor - määrittää valintamäärän, jonka tulee täyttyä, että toiminto otetaan käyttöön selection class - luokka, jonka aliluokkia valittujen objektien tulee olla tai joka niiden tulee toteuttaa, että toiminto otetaan käyttöön selection name - yleismerkkisuodatin, jota voidaan käyttää valinnan objekteihin. |
visibility - looginen lauseke. Määrittää, näkyykö valikon vaihtoehto valikossa. enablement - looginen lauseke. Määrittää, onko valikon vaihtoehto käytettävissä valikossa. enablesFor-määrite ja selection class ja name, ja ne on täytettävä ennen käyttöönottolausekkeen toteutusta. |
|
(Vain objektien lisäyksiin.) objectClass - määrittää luokan, jonka aliluokkia valinnan objektien on oltava tai joka niiden tulee toteuttaa (Sekä objektien että katseluohjelmien lisäyksiin) enablesFor - määrittää valintamäärän, jonka tulee täyttyä, että toiminto otetaan käyttöön selection class - luokka, jonka aliluokkia valittujen objektien tulee olla tai joka niiden tulee toteuttaa, että toiminto otetaan käyttöön selection name - yleismerkkisuodatin, jota voidaan käyttää valinnan objekteihin.
|
(Sekä objektien että katseluohjelmien lisäyksiin) visibility - looginen lauseke. Määrittää, näkyykö valikon vaihtoehto valikossa. enablement - looginen lauseke. Määrittää, onko valikon vaihtoehto käytettävissä valikossa. enablesFor-määrite ja selection class ja name, ja ne on täytettävä ennen käyttöönottolausekkeen toteutusta. |
Mahdollisuuden määrittää sisältölajeja (katso Sisältölajit) voi yhdistää loogisiin lausekkeisiin, jolloin tuloksena on erittäin tarkkoja käyttöönotto- tai näkyvyysehtoja, jotka perustuvat resurssin sisältölajille. Esimerkiksi seuraava katkelma tekee ponnahdusvalikon näkyväksi vain, jos valitun tiedoston sisältö vastaa lisäosan eriteltyjä sisältölajeja.
<extension point="org.eclipse.ui.popupMenus"> <objectContribution id="com.example.objectContributions" objectClass="org.eclipse.core.resources.IFile" nameFilter="*.xml"> <visibility> <or> <objectState name="contentTypeId" value="com.example.employeeRecordContentType"/> <objectState name="contentTypeId" value="com.example.customerRecordContentType"/> </or> </visibility> <action id="com.example.action1" ...contentTypeId-määritettä voi käyttää objectState-lausekkeessa tarkistamaan valitun xml-tiedoston sisällön lajin. Tämän avulla lisäosa voi käyttää erittäin tarkkaa sisällöntarkistusta ennen tiettyihin tiedostolajeihin liittyvien valikkotoimintojen ottamista käyttöön tai poistamista käytöstä. Lisätietoja sisältölajin tunnisteesta on ohjeaiheessa Sisältölajit.