Når du skal oppgi arbeidsbenkfunksjonalitet, begynner du med å angi en WorkbenchAdvisor for konfigurasjon av arbeidsbenken. Plugin-modulen for Rich Client utvider denne abstrakte klassen til å oppgi den applikasjonsspesifikke konfigurasjonen for arbeidsbenken. Nettlesereksempelet gjør dette ved hjelp av BrowserAdvisor-klassen.
... int code = PlatformUI.createAndRunWorkbench(display, new BrowserAdvisor()); ...
En arbeidsbenkrådgiver overstyrer metoder for å konfigurere arbeidsbenken med ønsket layout og funksjoner, for eksempel elementene på handlingslinjen eller introduksjonssiden.
Levetidsmetodene fra arbeidsbenkrådgiveren gjør det mulig for applikasjonen å når som helst binde seg til opprettelsen av arbeidsbenken og påvirke funksjonaliteten. Følgende liste over levetidsmetoder for rådgiveren kan overstyres og kommer fra Javadoc for WorkbenchAdvisor.
initialize
- kalles først, før vinduene. Brukes til å registrere
tingpreStartup
- kalles som andre metode, etter "initialize", men før det
første vinduet åpnes. Brukes til å midlertidig deaktivere ting under oppstart eller
gjenopprettingpostStartup
- kalles som tredje metode, etter at det første vinduet er åpnet.
Brukes til å aktivere ting som ble midlertidig deaktivert i tidligere trinnpostRestore
- kalles etter at arbeidsbenken og vinduene
er opprettet på nytt fra en tidligere lagret tilstand. Brukes til å justere den gjenopprettede
arbeidsbenkenpreWindowOpen
- kalles når de ulike vinduene åpnes. Brukes til å
konfigurere andre deler av vinduet enn handlingslinjene fillActionBars
- kalles etter preWindowOpen
for å
konfigurere handlingslinjene i et vindupostWindowRestore
- kalles etter at et vindu er gjenopprettet
fra en tidligere lagret tilstand. Brukes til å justere det gjenopprettede vinduetpostWindowCreate
- kalles etter at et vindu er opprettet,
enten fra en opprinnelig tilstand eller fra en gjenopprettet tilstand. Brukes til å justere
vinduetopenIntro
- kalles umiddelbart før et vindu åpnes for å opprette en eventuell
introduksjonskomponent.postWindowOpen
- kalles etter at et vindu er åpnet.
Brukes til å binde vinduslyttere, osv.preWindowShellClose
- kalles når et vindu skal lukkes
av brukeren. Brukes til å forhåndsevaluere lukking av vinduereventLoopException
- kalles for å håndtere tilfeller der
hendelsessløyfen har krasjet. Brukes til å informere brukeren om problemereventLoopIdle
- kalles når det for øyeblikket ikke er flere
hendelser som skal håndteres. Brukes til å utføre annet arbeid eller til å
vente til nye hendelser legges i køenpreShutdown
- kalles like etter at hendelsessløyfen er avsluttet,
men før noen av vinduene er lukket. Gjør det mulig for applikasjonen å avslå
avslutningenpostShutdown
- kalles til sist, etter at hendelsessløyfen er avsluttet
og alle vinduene er lukket. Brukes til å avregistrere ting som ble installert i
initialiseringenSom du ser har en Rich Client-applikasjon en hel del kontroll over hvordan arbeidsbenken konfigureres og implementeres. I eksempelet med nettleseren har BrowserAdvisor som primær funksjon å konfigurere handlingslinjene med menypunktene som er egnet for en nettleser. Dette gjøres 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 denne metoden er arbeidsbenken konfigurert med en spesialhandlingsbygger. Denne handlingsbyggeren brukes til å fylle ut handlingslinjene i arbeidsbenken. Vi skal se nærmere på hvordan handlingene angis i Definere handlingene. Foreløpig konsentrerer vi oss om hvordan vi konfigurerer arbeidsbenken.
Merk deg bruken av metoden getWorkbenchConfigurer() ovenfor. IWorkbenchConfigurer og IWorkbenchWindowConfigurer brukes i forbindelse med WorkbenchAdvisor for å tilpasse vinduet. Med disse klassene kan du overstyre mange deler av arbeidsbenkopprettelsen på ulike nivåer. For eksempel definerer IWorkbenchWindowConfigurer en protokoll som forutsetter en bestemt konfigurasjon av kontroller i arbeidsbenkvinduet, for eksempel en handlingslinje, statuslinje, perspektivlinje, verktøylinje, osv. Protokollen gjør det mulig å tilpasse og fylle ut disse elementene. IWorkbenchConfigurer opererer på et høyere nivå og lar deg lagre applikasjonsspesifikke data med arbeidsbenken. WorkbenchAdvisor gir tilgang til disse konfigurererne gjennom levetidsmetodene som er angitt ovenfor. Metoder på lavere nivåer i WorkbenchAdvisor kan overstyres slik at standardfunksjonaliteten blir fullstendig erstattet. For eksempel kan arbeidsbenkrådgiveren overstyre metoden som oppretter SWT-kontrollene i vinduet, for å oppgi en helt annen implementering for hovedvinduet.
Det er med andre ord mange måter å tilpasse arbeidsbenken på og flere ulike nivåer som disse teknikkene kan brukes på. Javadoc for WorkbenchAdvisor, IWorkbenchConfigurer og IWorkbenchWindowConfigurer inneholder en komplett beskrivelse av den tilgjengelige protokollen. Du finner mer informasjon om alternative implementeringer i den komplette implementeringen av BrowserAdvisor.