"Vstupním bodem" pro získání vlastního chování pracovní plochy je určení třídy WorkbenchAdvisor pro konfiguraci plochy. Váš modul plug-in klienta rich by měl rozšiřovat tuto abstraktní třídu, aby zajistil konfiguraci pracovní plochy pro příslušnou aplikaci. V příkladu s prohlížečem toho dosáhneme pomocí třídy BrowserAdvisor.
... int code = PlatformUI.createAndRunWorkbench(display, new BrowserAdvisor()); ...
Poradce pracovní plochy je odpovědný za to, že metody potlačení konfigurují pracovní plochu na požadované uspořádání a funkce, např. položky řádku s akcemi nebo úvodní stránku.
Metody životního cyklu zajišťované poradcem pracovní plochy umožňují vaší aplikaci zapojit se ve kterémkoli okamžiku do tvorby pracovní plochy a ovlivnit její chování. Následující seznam metod životního cyklu poradce, které lze potlačit, pochází z dokumentace Javadoc pro WorkbenchAdvisor.
initialize
- volaná jako první; před všemi okny; použít k registraci věcípreStartup
- volaná jako druhá; po inicializaci, ale před otevřením prvního okna; použít k dočasnému znepřístupnění věcí během spouštění nebo obnovypostStartup
- volaná jako třetí; po otevření prvního okna; použít k opětovnému zpřístupnění věcí dočasně znepřístupněných v předchozím krokupostRestore
- volaná poté, co byly pracovní plocha a její okna obnoveny na základě dříve uloženého stavu; použít k úpravě obnovené pracovní plochypreWindowOpen
- volaná při otevírání jednotlivých oken; použít ke konfiguraci aspektů okna kromě řádků s akcemi fillActionBars
- volaná po preWindowOpen
pro konfiguraci řádků s akcemi oknapostWindowRestore
- volaná poté, co bylo okno obnoveno na základě dříve uloženého stavu; použít k úpravě obnoveného oknapostWindowCreate
- volaná poté, co bylo okno vytvořeno, buď z počátečního stavu, nebo z obnoveného stavu; používaná k úpravě oknaopenIntro
- volaná těsně před otevřením okna pro vytvoření případné úvodní komponenty
postWindowOpen
- volaná po otevření okna; použít k zapojení listenerů okna, apod.preWindowShellClose
- volaná, když uživatel zavře nadstavbu okna; použít k předběžnému zavírání okeneventLoopException
- volaná pro ošetření případu, kdy se zhroutí smyčka událostí; použít k informování uživatele, že něco není v pořádkueventLoopIdle
- volaná, když už nejsou další události ke zpracování; použít k provedení jiné práce nebo k postoupení priority, dokud do fronty nedojdou nové událostipreShutdown
- volaná ihned poté, co je ukončena smyčka událostí, ale dřív, než je uzavřeno jakékoli okno; umožňuje aplikaci vetovat ukončení práce systémupostShutdown
- volaná jako poslední; po ukončení smyčky událostí a uzavření všech oken; použít ke zrušení registrace věcí registrovaných během inicializaceJak vidíte, má aplikace klienta rich značnou kontrolu nad tím, jak je konfigurována a implementována pracovní plocha. V příkladu s prohlížečem je primárním účelem třídy BrowserAdvisor konfigurovat řádky s akcemi pomocí položek nabídky odpovídajících prohlížeči. To se dělá v metodě fillActionBars:
public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) { ... BrowserActionBuilder builder = new BrowserActionBuilder(window); getWorkbenchConfigurer().getWindowConfigurer(window).setData(BUILDER_KEY, builder); builder.fillActionBars(configurer, flags); }
V této metodě je pracovní plocha konfigurována pomocí specializovaného tvůrce akcí. Tento tvůrce akcí se používá k vyplnění řádků s akcemi pracovní plochy. Podrobně se na specifikování akcí podíváme v tématu Definování akcí. Nyní se soustředíme na to, jak konfigurovat pracovní plochu.
Všimněte si použití metody getWorkbenchConfigurer() výše. K přizpůsobení okna se používají IWorkbenchConfigurer a IWorkbenchWindowConfigurer, spolu s třídou WorkbenchAdvisor. Tyto třídy vám umožní potlačit mnoho aspektů tvorby pracovní plochy na mnoha úrovních. Například třída IWorkbenchWindowConfigurer definuje protokol, který přebírá určitou konfiguraci obslužných prvků v okně pracovní plochy, např. řádek s akcemi, stavový řádek, pruh perspektivy, pruh cool apod. Její protokol umožňuje přizpůsobit a zaplnit tyto položky. IWorkbenchConfigurer pracuje na vyšší úrovni a umožňuje uložit v pracovní ploše data pro konkrétní aplikaci. WorkbenchAdvisor zajišťuje přístup k těmto konfigurátorům v metodách životního cyklu uvedených výše. Metody nižší úrovně uvnitř třídy WorkbenchAdvisor je možné potlačit, a tak zcela nahradit výchozí chování. Například váš poradce pracovní plochy by mohl potlačit metodu, která v okně vytváří obslužné prvky SWT, aby nabídl zcela jinou implementaci pro hlavní okno.
Jinými slovy, existuje mnoho způsobů, jak přizpůsobit pracovní plochu, a několik různých úrovní, na nichž lze tyto techniky použít. Dokumentace Javadoc pro WorkbenchAdvisor, IWorkbenchConfigurer a IWorkbenchWindowConfigurer obsahuje úplný popis dostupného protokolu. Poznámky k alternativním implementacím naleznete také v kompletní implementaci třídy BrowserAdvisor.