Het "ingangspunt" voor het leveren van een aangepast workbenchgedrag is het aanwijzen van een WorkbenchAdvisor voor het configureren van de workbench. Uw Rich Client-plugin breidt deze abstracte klasse uit om de toepassingsspecifieke configuratie voor de workbench te leveren. Dit wordt uitgevoerd door het browservoorbeeld met behulp van de BrowserAdvisor-klasse.
... int code = PlatformUI.createAndRunWorkbench(display, new BrowserAdvisor()); ...
Een workbenchadvisor is verantwoordelijk voor het negeren van methoden, zodat de workbench wordt geconfigureerd met de gewenste indeling en features, bijvoorbeeld de items op de actiebalk of de Intropagina.
De levenscyclusmethoden die worden geleverd door de workbenchadvisor maken het mogelijk voor uw toepassing op elk moment in te haken op het maken van de workbench en het gedrag te beïnvloeden. De volgende lijst met levenscyclusmethoden van de Advisor die kunnen worden genegeerd, is afkomstig van de javadoc voor WorkbenchAdvisor.
initialize
- als eerste aangeroepen; vóór de vensters; gebruiken voor registratie preStartup
- als tweede aangeroepen; na het initialiseren, maar voordat het eerste venster wordt geopend; gebruiken voor het tijdelijk uitschakelen wanneer opnieuw wordt opgestart of een herstelbewerking wordt uitgevoerd postStartup
- als derde aangeroepen; nadat het eerste venster is geopend; gebruiken om datgene weer in te schakelen dat tijdelijk werd uitgeschakeld in de vorige stap postRestore
- wordt aangeroepen nadat de workbench en de vensters opnieuw zijn gemaakt op basis van een eerder opgeslagen status; gebruiken om de herstelde workbench aan te passen preWindowOpen
- wordt aangeroepen wanneer ieder venster wordt geopend;
gebruiken om de andere aspecten van het venster dan de actiebalken te configureren fillActionBars
- wordt na preWindowOpen
aangeroepen om de actiebalken van het venster te configureren postWindowRestore
- wordt aangeroepen nadat een venster opnieuw is gemaakt op basis van een eerder opgeslagen status; gebruiken om het herstelde venster aan te passen postWindowCreate
- wordt aangeroepen nadat een venster is gemaakt op basis van de oorspronkelijke status of op basis van de herstelde status; wordt gebruikt om het venster aan te passen openIntro
- wordt meteen voordat een venster wordt geopend, aangeroepen om de inleidingscomponent te maken als dit van toepassing is postWindowOpen
- wordt aangeroepen nadat een venster is geopend; gebruiken om vensterlisteners en dergelijke aan te haken preWindowShellClose
- wordt aangeroepen als een venstershell wordt gesloten door de gebruiker; gebruiken om vensterafsluitingen vooraf te controleren eventLoopException
- wordt aangeroepen om het crashen van een eventlus af te handelen; gebruiken om de gebruiker te laten weten dat iets is mislukt eventLoopIdle
- wordt aangeroepen als er op dit moment geen events meer zijn voor verwerking; gebruiken om ander werk uit te voeren of te stoppen totdat nieuwe events in de wachtrij worden gezet preShutdown
- wordt na het beëindigen van de eventlus aangeroepen maar vóór het sluiten van de vensters; met deze methode kan de toepassing een afsluiting tegenhouden postShutdown
- wordt als laatste aangeroepen; nadat de eventlus is beëindigd en alle vensters gesloten zijn; gebruiken om datgene dat geregistreerd is tijdens de initialisatie uit het register te verwijderen Zoals u ziet, heeft een Rich Client-toepassing veel controle over hoe de workbench wordt geconfigureerd en geïmplementeerd. In het browservoorbeeld is de primaire functie van de BrowserAdvisor het configureren van de actiebalken met menuopties die van toepassing zijn op een browser. Dit wordt in de methode fillActionBars uitgevoerd:
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); }
In deze methode wordt de workbench geconfigureerd met een gespecialiseerde actiebuilder. Deze actiebuilder wordt gebruikt voor het opvullen van de actiebalken van de workbench. In De acties definiëren worden de details over het opgeven van de acties besproken. Hier wordt ingegaan op het configureren van de workbench.
Let op het gebruik van de bovenstaande methode getWorkbenchConfigurer(). De IWorkbenchConfigurer en IWorkbenchWindowConfigurer worden samen met de WorkbenchAdvisor gebruikt voor het aanpassen van het venster. Met deze klassen kunt u vele aspecten van het maken van workbenches negeren op verschillende niveaus. De IWorkbenchWindowConfigurer definieert bijvoorbeeld een protocol waarbij een bepaalde configuratie van besturingsfuncties in het workbenchvenster wordt verondersteld, bijvoorbeeld een actiebalk, statusregel, perspectiefbalk en coolbar. Met dit protocol kunt u deze items aanpassen en invullen. De IWorkbenchConfigurer werkt op een hoger niveau, zodat u toepassingsspecifieke gegevens kunt opslaan met de workbench. De WorkbenchAdvisor levert toegang tot deze Configurers in de levenscylusmethoden hierboven. De methoden op een lager niveau binnen de WorkbenchAdvisor kunnen volledig worden genegeerd zodat het standaardgedrag volledig wordt vervangen. De Workbench Advisor kan bijvoorbeeld de methode overschrijven die de SWT-besturingsfuncties in het venster maakt, zodat een totaal andere implementatie voor het hoofdvenster wordt geleverd.
Er zijn dus verschillende manieren voor het wijzigen van de workbench en verschillende niveaus waarop deze technieken kunnen worden gebruikt. Javadoc voor WorkbenchAdvisor, IWorkbenchConfigurer en IWorkbenchWindowConfigurer bevat een volledige beschrijving van het beschikbare protocol. Raadpleeg de volledige implementatie van BrowserAdvisor voor informatie over andere implementaties.