Ha a bedolgozó az egyik menü kiterjesztési pont segítségével ad egy tevékenységet közre a munkaterület UI számára, akkor megadhatja, hogy a menüpont milyen helyzetekben legyen látható és/vagy engedélyezett a menün. Egyszerű engedélyezési feltételek - mint például a kiválasztásszámlálók és kiválasztási osztályok - biztosítása mellett a bedolgozók a logikai kifejezések segítségével nagyobb rugalmasságot érhetnek el annak eldöntésében, hogy egy műveletnek mikor kell láthatónak vagy engedélyezettnek lennie.
A logikai kifejezések logikai operátorokat (NOT, AND, OR) és előre meghatározott szintaxist tartalmazhatnak az adott feltételek kiértékeléséhez. Ezen feltételek közül sok egy adott objektumot tesztel. A "fókuszban lévő objektum" (a tesztelni kívánt objektum) azonossága az enablement kifejezés bizonyos kontextusától függ:
Amikor egy értéket ad meg ezen kifejezések általi vizsgálat céljából, akkor karaktersorozatos értékeket várnak a kifejezések, kivéve az alábbi átalakítások sikeressége esetén:
A felkészítés XML szintaxisának teljes definíciója bármely olyan kiterjesztés dokumentációjában megtalálható, amely egy enablement elemet határoz meg, mint például az org.eclipse.ui.popupMenus.
A 3.0 kiadást megelőzően ezen általánosított logikai kifejezések nem voltak elérhetők. Az alábbi előre meghatározott kifejezések kerültek felhasználásra az adott feltételek kiértékeléséhez általános kifejezés összeépítése nélkül. Ne feledje, hogy ezen kifejezések bármelyike kifejezhető az általánosított szintaxissal. Az előre meghatározott kifejezések továbbra is használhatók az alábbiak szerint:
objectClass - igaz, ha az összes objektum benne van a kiválasztási osztályokban, vagy megvalósítja az osztályt.
objectState - igaz, ha a megnevezett attribútum a megadott értékkel egyenlő. IActionFilter közreműködik a kifejezés kiértékelésében. A tevékenységszűrő a célbeállítás és a megnevezett attribútumok értéke alapján dinamikusan feldolgozza a tevékenység engedélyezési feltételeit.
systemProperty - igaz, ha a megnevezett rendszertulajdonság a megadott értékkel egyenlő.
pluginState - megadja, hogy a megadott bedolgozónak (azonosító szerint) telepítettnek vagy aktiváltnak kell-e lennie
Az alábbi részletek például engedélyezési kifejezéseket ábrázolnak, amelyek egy tevékenységhalmaz elképzelt tevékenységén használhatók:
<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>
Ezen kifejezések kidolgozottabb példáit és az XML teljes leírását az alábbi kiterjesztési pontok referenciadokumentációja tartalmazza.
Az alábbi táblázat megjeleníti a kiterjesztési pontokat, amelyek tevékenységeket adnak közre és összegzik, hogy az XML következő attribútumok és logikai kifejezések hogyan befolyásolhatják az engedélyezést.
Kiterjesztési pont neve |
Az engedélyezést befolyásoló attribútumok |
Logikai kifejezések |
---|---|---|
enablesFor - megadja a kiválasztási számot, amelynek az engedélyezendő tevékenységnek meg kell felelnie kijelölés osztály - az osztály, amelyhez a kijelölt objektumnak alosztályt kell létrehoznia, vagy meg kell valósítania a tevékenység engedélyezése érdekében kijelölés név - egy helyettesítőkarakter-szűrő, amely a kijelölés objektumaira alkalmazható. |
láthatóság - egy logikai kifejezés. Szabályozza, hogy a menüpont látható-e a menün. engedélyezés - egy logikai kifejezés. Vezérli, hogy a menüpont engedélyezve van-e a menün. Az engedélyezési kifejezés alkalmazása előtt az enablesFor attribútumot, a kijelölés osztályt és nevet ki kell elégíteni. |
|
(Csak objektumkiegészítésekhez.) objectClass - megadja az osztályt, amelyhez a kijelölésben lévő objektumoknak alosztályokat kell létrehoznia vagy meg kell valósítania (Objektum- és megjelenítőközreadásokhoz egyaránt) enablesFor - megadja a kiválasztási számot, amelynek az engedélyezendő tevékenységnek meg kell felelnie kijelölés osztály - az osztály, amelyhez a kiválasztott objektumoknak alosztályokat kell létrehozniuk, vagy meg kell valósítaniuk a tevékenység engedélyezése érdekében kijelölés név - egy helyettesítőkarakter-szűrő, amely a kijelölés objektumaira alkalmazható.
|
(Objektum- és megjelenítőközreadásokhoz egyaránt) láthatóság - egy logikai kifejezés. Szabályozza, hogy a menüpont látható-e a menün. engedélyezés - egy logikai kifejezés. Vezérli, hogy a menüpont engedélyezve van-e a menün. Az engedélyezési kifejezés alkalmazása előtt az enablesFor attribútumot, a kijelölés osztályt és nevet ki kell elégíteni. |
Láthatósági feltételek megadása érdekében a tartalomtípusok (lásd: Tartalomtípusok) megadásának képessége egyesíthető egy logikai kifejezéssel speciális engedélyezési vagy az erőforrás tartalomtípusa alapján. Az alábbi részlet például láthatóvá tesz egy előugró menüpontot, ha a kiválasztott fájl tartalma megfelel a bedolgozó speciális tartalomtípusának.
<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" ...A contentTypeId attribútum az objectState kifejezésben a kiválasztott xml fájl tartalontípusának ellenőrzéséhez használható. Ennek segítségével a bedolgozó nagyon speciális tartalomellenőrzést alkalmazhat az adott típusokhoz vagy fájlokhoz kapcsolódó menütevékenységek megjelenítése vagy engedélyezése előtt. A tartalomtípus-kiterjesztéssel kapcsolatos további információkat a Tartalomtípusok rész tartalmaz.