Perspektívák

Láthattunk már néhány módszert, ahogy a munkaterület segítségével a felhasználó vezérelheti a bedolgozó funkcióinak megjelenését. A nézetek az Ablak >Megjelenítés nézet menü segítségével elrejthetők vagy megjeleníthetők. A tevékenységkészletek az Ablak >Perspektíva személyre szabása... menü segítségével elrejthetők vagy megjeleníthetők. Ezek a szolgáltatások segítenek a felhasználónak a munkaterület rendszerezésében.

A perspektívák egy további szervezési réteget biztosítanak a munkaterület-ablakon belül. A felhasználók a feladatok közötti áthelyezés során válthatnak a perspektívák között. A perspektíva megadja a nézetek gyűjteményét, egy elrendezést a nézetekhez és a látható tevékenységkészleteket, amelyeket akkor kell használni, amikor a felhasználó először megnyitja a perspektívát.

A perspektívák az   IPerspectiveFactory segítségével kerülnek megvalósításra.  Az IPerspectiveFactory megvalósítóinak be kell állítaniuk egy IPageLayout elemet a perspektívát valamint a perspektíva-oldalelrendezéseit leíró információkkal.

Munkaterület rész elrendezés

Az IPageLayout fő feladatainak egyike a szerkesztő valamint a nézetek elhelyezésének leírása a munkaterület-ablakban. Figyelje meg, hogy ezek az elrendezések különböznek a Layout osztálytól az SWT-ben. Annak ellenére, hogy az IPageLayout és Layout hasonló problémát old meg (felületi elemek méretezése és pozícionálása egy nagyobb területen), nem kell megértenie az SWT elrendezéseket a perspektíva oldalelrendezés biztosítása érdekében.

A perspektíva oldalelrendezés a szerkesztő megjelenítéséhez egy területtel kerül inicializálásra. A perspektívagyár felelős további nézetek hozzáadásáért a szerkesztőhöz viszonyítva. A nézetek hozzáadásra kerülnek az elrendezéshez egy másik részéhez viszonyítva (felső, alsó, bal, jobb). Helykitöltők (szóköz) is adhatók a kezdetben nem megjelenő elemekhez.

A kapcsolódó nézetek rendszerezéséhez és a zűrzavar csökkentése érdekében az IFolderLayout segítségével a nézeteket címkés mappákba csoportosíthatja. Az Erőforrás perspektíva például az erőforrás-navigátort a munkaterület bal felső sarkában lévő mappába helyezi. A helykitöltőket általánosan használják a mappaelrendezésekkel. Az Erőforrás perspektíva a könyvjelzők nézethez megad egy helykitöltőt ugyanabban a mappában, mint amelyben az erőforrás-navigátor van.Ha a felhasználó megjeleníti a könyvjelzők nézetet, akkor ugyanabban a mappában jelenik meg a navigátorral, és egy lappal minden nézethez.

IPageLayout segítségével tevékenységek és billentyűparancsok adhatók meg a perspektívában.  

Nézetek és szerkesztők csatolása "megjelenítés másként" művelet segítségével

A perspektívák és az IPageLayout által biztosított másik hasznos szolgáltatás a navigáció szerkesztő és kapcsolódó nézetek közötti elősegítéséhez. A nézeteket jellemzően úgy képzeljük el, hogy segítenek a felhasználónak az objektumok megkeresésében, amelyeket a szerkesztőkben használnak. A fordított működés is hasznos:  előfordulhat, hogy az objektumokat egy szerkesztőben használó felhasználónak navigálni kell az objektumokat a nézeten belül. Ez a munkaterület Navigálás > Megjelenítés másként menüje segítségével hajtható végre. Ez a parancs lehetővé teszi, hogy a felhasználó az aktuálisan szerkesztett (vagy kijelölt) objektum kontextusában a kapcsolódó nézetek egyikére ugorjon.  A fájlt szerkesztő felhasználó például erre a fájlra ugorhat az erőforrás-navigátorban.

A munkaterület bedolgozóarchitektúrája segítségével a fejlesztők nézeteket és szerkesztőket biztosíthatnak a különböző bedolgozókban, amelyek nem tudnak egymásról.  A "megjelenítés másként" támogatás megvalósításával a nézet vagy szerkesztő támogathat egy megfelelő navigációt a más bedolgozók által közreadott nézetekhez és szerkesztőkhöz. 

Ezen navigáció segítségével a felhasználók gyorsan mozoghatnak a nézetek között és egyszerűen megnyithatnak egy nézetet, amely általában nem jelenik meg egy adott perspektívában. A Java perspektívában dolgozó felhasználó például a Navigáció > Megjelenítés másként segítségével a Navigátor nézetben megjelenítheti az aktuálisan szerkesztett Java fájlt.

Megjelenítés másként forrás

Ha engedélyezni kívánja, hogy a felhasználók használhassák a Navigálás > Megjelenítés másként lehetőséget a szerkesztőből vagy nézetből egy másik nézetre ugráshoz, akkor meg kell valósítania az IShowInSource elemet.  A rész az IShowInSource elemet biztosíthatja közvetlenül egy protokoll segítségével (getShowInSource()), vagy illesztőként.  IShowInSource lehetővé teszi, hogy a rész egy kontextust biztosítson (ShowInContext), amelyet a cél használ a forrás megjelenítésének meghatározásához. A szerkesztő megjelenítés másként kontextusa jellemzően bemeneti elem.  Nézet esetén a kontextus jellemzően a kiválasztás. A ShowInContext biztosítja a kijelölést és a bementi elemet is annak érdekében, hogy rugalmasan lehessen meghatározni a forrás megjelenítésének módját. 

A szerkesztők alapértelmezett kontextusa meg van adva, így a szerkesztő speciális kódolás nélkül résztvehet a "megjelenítés másként" műveletben. Szerkesztők esetén a bemeneti elem és a kijelölés létrehoz egy megfelelő kontextust. 

Nézetek esetén a Navigálás > Megjelenítés másként funkció biztosítása érdekében a nézetnek meg kell valósítani az IShowInSource elemet.

Megjelenítés másként cél

Meg kell valósítani az IShowInTarget elemet, ha azt kívánja, hogy a nézet érvényes cél legyen a "megjelenítés másként" művelethez. A cél felelős egy adott kontextus megfelelő megjelenítéséért. A Navigátor nézet például kiterjeszti a fát a kontextusban megadott erőforrás kiválasztásáért és megjelenítéséért.  

A célnak először ellenőriznie kell a ShowInContext kijelölését annak eldöntéséhez, hogy mit kell megjeleníteni, mivel ez speciális információ. Csak akkor kell megjeleníteni a bemeneti elemet, ha nincs jelezve kijelölés.

Megfelelő célok megjelenítése

A rendelkezésre álló célok listája hogyan kerül meghatározásra? A perspektívához rendelkezésre álló célok az IPageLayout elemben adhatók meg.  Ne feledje el, hogy a "megjelenítés másként" navigáció megnyithat egy olyan nézetet, amely még nincs jelen a perspektívában.  Az IPageLayout.addShowInPart, segítségével azonosító alapján megadható egy érvényes "megjelenítés másként" cél. Ily módon az érvényes célok szükségtelen nézetek létrehozása nélkül megadhatók.