A munkaterület osztályok és felületek átfogó halmazát biztosítja összetett felhasználói felületek összeépítéséhez. Szerencsére valami egyszerű létrehozásához nem kell az összeset megismerni. Először a munkaterület felhasználói felületen kitett alapelveket és ezek megfelelő struktúráit tekintjük meg a felszín alatt.
A munkaterület kifejezést "arra az ablakra használtuk, amely a platform indításakor megjelenik." Ássunk egy kicsi mélyebbre, és tekintsük meg a munkaterület néhány vizuális összetevőjét.
A leírás további részében a munkaterület kifejezéssel a munkaterület-ablakra (IWorkbenchWindow) hivatkozunk. A munkaterület-ablak a munkaterület legfelső szintű ablaka. Ez az a keret, amely a menüsort, eszköztárat, állapotsort, billentyűparancs-sort és oldalakat tartalmazza. Általában nem kell programozni a munkaterület-ablakot. Csak tudni kell, hogy ott van.
Megjegyzés: Több munkaterület-ablak nyitható meg; minden munkaterület-ablak önmagában zárt, szerkesztőket és nézeteket tartalmazó elem, így csak egyetlen munkaterület-ablakra koncentrálunk.
A felhasználó nézőpontjából a munkaterület nézeteket és szerkesztőket tartalmaz. Néhány másik osztály valósítja meg a munkaterület-ablakot.
A munkaterület-ablakban található egy oldal (IWorkbenchPage) amely részeket tartalmaz. Az oldal a részek csoportosításának megvalósítási mechanizmusa. Nem kell programozni az oldalt, de megjelenik a programozás és hibakeresés kontextusában.
A perspektívák egy további szervezési réteget biztosítanak a munkaterület-oldalon belül. A perspektíva a nézetek, elrendezéseik és egy adott feladatra alkalmazható tevékenységek megfelelő gyűjteményét adja meg. A felhasználók a feladatok közötti mozgás során kapcsolhatnak a perspektívák között. A megvalósítás szempontjából a felhasználó aktív perspektívája szabályozza, hogy mely nézetek jelennek meg a munkaterület-oldalon, valamint ezek pozícióját és méretüket. A szerkesztőkre nincsenek hatással a perspektíva módosításai.
A nézeteken és szerződéseken a megvalósítási részleteken túl megmutatunk néhány általános bedolgozó-programozási példát. Vizuális összetevő munkaterülethez adásakor el kell dönteni, hogy nézetet vagy szerkesztőt kíván megvalósítani. Ez hogyan dönthető el?
Mindkét esetében a nézet vagy szerkesztő összeépítése egy általános életciklusnak megfelelően történik.
Az életciklus során az események a tartalmazó munkaterület-oldalról kerülnek aktiválásra, és értesítik az érintett részeket a nézetek és szerkesztők megnyitásáról, aktiválásáról, letiltásáról és bezárásáról.
Egyszerűnek tűnik? Az lehet.Ez a munkaterület-nézetek és- szerkesztők szépsége.Ezek csak felületi elemtárolók, és az igénynek megfelelően bonyolultak vagy egyszerűek lehetnek.A legegyszerűbb nézeteket láthattuk korábban, a hello world nézet megvalósításakor. Most, hogy egy kicsit jobban áttekintettük a dolgokat, nézzük meg újra a kódot.
package org.eclipse.examples.helloworld; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.SWT; import org.eclipse.ui.part.ViewPart; public class HelloWorldView extends ViewPart { Label label; public HelloWorldView() { } public void createPartControl(Composite parent) { label = new Label(parent, SWT.WRAP); label.setText("Hello World"); } public void setFocus() { // fókusz beállítása a saját vezérlőelemhez. Egy címke esetén ennek // nincs sok értelme, de az összetettebb vezérlőelemek esetén // el kell döntenie, hogy melyik kapja a fókuszt. } }
A dispose() metódust nem kell megvalósítani, mivel nem tettünk semmit, de létrehoztunk egy címkét a createPartControl(parent) metódusban. Ha foglaltunk le UI erőforrásokat - mint például a képek vagy betűkészletek - akkor itt el kell távolítanánk őket. Mivel a ViewPart osztályt kiterjesztettük, öröklődik a a dispose() metódus "semmit sem tesz" megvalósítása.