org.eclipse.ui.menus

Jogkizárási nyilatkozat: Az org.eclipse.ui.menus kiterjesztési pontot az Eclipse 3.2 csak részben valósítja meg. Jelenleg a kiterjesztési pont nem támogatja a menü- és eszköztár-meghatározásokat és -kiterjesztéseket (erre a meglévő közreadási kiterjesztéseket kell használni). Azonban ez az egyetlen olyan mechanizmus, amelyen keresztül a 'szegély' felületelemek a munkaterülethez adhatók. Ez a szakasz azt mutatja be, hogy a mechanizmus erre a célra hogyan használható.

A 'szegély' felületelemek olyan vezérlők, amelyek egy adott helyre kerülnek telepítésre (az ún. 'szegélyterületre') a Munkaterület ablak külső határán. A legáltalánosabb példa az általános 'állapotsor', amelyet a legtöbb grafikus felület az ablak aljánál helyez el. Az org.eclipse.ui.menus kiterjesztési pont segítségével a bedolgozók nézeteket adhatnak a munkaterülethez. A szegélyt közreadó bedolgozóknak be kell jegyezniük a szegélyt a plugin.xml fájlban és   a szegéllyel kapcsolatos konfigurációs információkat kell megadniuk, mint például a megvalósító osztályt, a szegélyt tartalmazó szegélycsoportot (szegélysort), illetve az elrendezési információkat (pl. hogy a szegély kívánja-e a rendelkezésre álló szabad területet használni a szegélyterületen történő elrendezése során).

A közreadott szegély felülete az IWorkbenchWidget elemen belül kerül meghatározásra, de a bedolgozóknak (célszerűbb) az AbstractWorkbenchTrimWidget osztályt kiterjeszteni ahelyett, hogy a felületet nulláról valósítanák meg.

A readmetool példa esetében egy aránylag egyszerű szegély felületi elemet adtunk közre, amely egyszerűen egy karaktersorozatot jelenít meg annak jelzésére, hogy a szegély pillanatnyilag melyik oldalon van rögzítve.

Vessünk egy pillantást ennek a szegélynek a közreadása során használt kiterjesztési pont meghatározására:

A kiterjesztés első szakasza (a 'csoport' meghatározás) egyszerűen a csoport azonosítóját határozza meg, illetve 'helyként' az 'állapot' csoport elejét határozza meg (vagyis az alsó szegélyterület kezdetét). A második szakasz (a 'felületi elem' meghatározás) határozza meg a felületi elem 'osztályának' megvalósítását, illetve a felületi elem 'helyeként' az előzőekben meghatározott csoportot jelöli meg.

Fontos megjegyezni, hogy mindkét esetben a sor trim (szegély) 'típusúként' kerül meghatározásra (amely jelenleg az egyetlen támogatott típus).

Magának a readmetool példának a telepítése után nézze meg a ReadmeTrimWidget kitöltése metódus megvalósítását. Ez annyiban különbözik az egyéb, a felületi elemek eszköztárakhoz és menükhöz hozzáadásakor használt fill metódusoktól, hogy a megszokottakon kívül azt az 'oldalt' is átadja, ahova a szegély kerül, hiszen a szegély két terület között tetszőlegesen mozgatható. Ezáltal a megvalósító a felületi elem megjelenését annak helye alapján módosíthatja, például a tájolás megváltoztatásával. A jelenlegi megvalósítás egyszerűen a megjelenített szöveget módosítja úgy, hogy az a pillanatnyi helyzetet tükrözze. Ezen kívül érdemes megfigyelni a 'dispose'/'fill' életciklus kezelését: a munkaterület változásainak következtében (vagyis a perspektíva változásakor vagy a szegély másik oldalra húzásakor) a dispose és fill ismételten meghívásra kerülnek.

Az egyik dolog, ami nem jelenik meg a példa kódban, hogy a szegélyelrendezés-kezelő függ a felületi elem-kezelő computeSize metódusának megfelelő megvalósításától a szegélyen. A felületi elem képes kell, hogy legyen 'preferált' méretének kiszámítására és visszaadására, hiszen az elrendezés-kezelés teljes megvalósításában ennek segítségével kerül megállapításra például az, hogy mennyi helyre van szükség egy adott szegélyterületen. A 'computeSize megfelelő megvalósításával kapcsolatosan megjegyzéseket az SWT dokumentáció tartalmaz.