När du ska tillhandahålla anpassat arbetsmiljöbeteende börjar du med att ange en WorkbenchAdvisor för konfiguration av arbetsmiljön. Ditt Rich Client-insticksprogram ska utöka denna abstrakta klass till att tillhandahålla den tillämpningsspecifika konfigurationen för arbetsmiljön. I exemplet med webbläsaren görs detta med klassen BrowserAdvisor.
... int code = PlatformUI.createAndRunWorkbench(display, new BrowserAdvisor()); ...
En arbetsmiljörådgivare ansvarar för att åsidosätta metoder för konfiguration av arbetsmiljön med dess önskade layout och funktioner, t.ex. åtgärdsfältets objekt eller en introduktionssida.
De livscykelmetoder som tillhandahålls av arbetsmiljörådgivaren gör det möjligt för tillämpningen att när som helst ansluta till arbetsmiljöns skapande och påverka beteendet. Följande lista med livscykelmetoder för rådgivare kan åsidosättas och kommer från Javadoc förWorkbenchAdvisor.
initialize
- anropas först, före fönstren. Används till att registrera saker.preStartup
- anropas därefter, efter initiering men innan det första fönstret öppnas. Används till att tillfälligt avaktivera saker under uppstart eller återställning.postStartup
- Anropas som tredje metod, efter att det första fönstret har öppnat. Används till att återaktivera saker som tillfälligt avaktiverats i föregående steg.postRestore
- anropas efter att arbetsmiljön och dess fönster har återskapats från ett tidigare sparat läge. Används till att justera den återställda arbetsmiljön.preWindowOpen
- anropas när de olika fönstret öppnas. Används till att konfigureras andra aspekter av fönstret än åtgärdsfälten. fillActionBars
- anropas efter preWindowOpen
och konfigurerar ett fönsters åtgärdsfält.postWindowRestore
- anropas när ett fönstret har återskapats från ett tidigare sparat läge. Används till att justera det återskapade fönstret.postWindowCreate
- anropas när ett fönstret har skapats, antingen från en initialt läge eller från ett återställt läge. Används till att justera fönstret.openIntro
- anropas omedelbart innan ett fönster öppnas för att skapa introduktionskomponenten, om det finns någon.postWindowOpen
- anropas när ett fönster har öppnats. Används till att ansluta fönsterlyssnare, etc.preWindowShellClose
- anropas när ett fönsters skal stängs av användare. Används till att förgranska fönsterstängningar.eventLoopException
- anropas för att hantera det fall där händelseslingan har kraschat. Används till att informera användaren om att saker inte står rätt till.eventLoopIdle
- anropas när det inte finns några fler händelser att bearbeta. Används till att utföra annat arbeta till att vänta tills nya händelser placeras i kön.preShutdown
- anropas precis efter att händelseslingan har avbrutits, men innan några fönster stängts och gör det möjligt för tillämpningen att lägga in ett veto mot avstängningen.postShutdown
- anropas sist, efter att händelseslingan har avbrutits och alla fönster har stängts. Används till att registrera om saker som registrerats under initieringen.Som du kan se har en Rich Client-tillämpningen en hel del kontroll över hur arbetsmiljön konfigureras och implementeras. I exemplet med webbläsaren är den primära funktionen för BrowserAdvisor att konfigurera åtgärdsfälten med menyalternativ som är lämpliga för en webbläsare. Detta görs i metoden 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); }
I den här metoden konfigureras arbetsmiljön med en specialiserad åtgärdsbyggfunktion. Denna åtgärdsbyggfunktion används till att fylla arbetsmiljöns åtgärdsfält. Vi tar en titt på detaljerna för hur åtgärderna anges i Definiera åtgärderna. För tillfället fokuserar vi på hur vi konfigurerar arbetsmiljön.
Lägg märke till användningen av metoden getWorkbenchConfigurer(). IWorkbenchConfigurer och IWorkbenchWindowConfigurer används i samband med WorkbenchAdvisor till att anpassa fönstret. .Dessa klasser gör det möjligt för dig att åsidosätta många aspekter av arbetsmiljöns skapande på olika nivåer. Ett exempel:the IWorkbenchWindowConfigurer definierar protokoll som antar en viss konfiguration av kontroller i arbetsmiljöfönstret, t.ex. ett åtgärdsfält, en statusrad, ett perspektivfält, ett verktygsfält. Protokollet gör det möjligt för dig att anpassa och befolka dessa objekt. IWorkbenchConfigurer fungerar på en högre nivå, vilket gör det möjligt för dig att lagra tillämpningsspecifika data med arbetsmiljön. WorkbenchAdvisor tillhandahåller åtkomst till dessa konfigurera i de livscykelmetoder som anges ovan. Metoder på lägre nivå inuti WorkbenchAdvisor kan åsidosättas till att helt ersätta standardbeteende. Ett exempel: arbetsmiljörådgivaren kan åsidosätta den metod som skapar SWT-kontrollerna i fönstret i syfte att tillhandahålla en fullständig implementation för huvudfönstret.
Med andra ord finns det många sätt att anpassa arbetsmiljön och flera olika nivåer som dessa tekniker kan användas på. Javadoc för WorkbenchAdvisor, IWorkbenchConfigurer och IWorkbenchWindowConfigurer innehåller en fullständig beskrivning av de tillgängliga protokollen. Se även den fullständiga implementationen av BrowserAdvisor för kommentarer av alternativa implementationer.