Den primære tilpasning, der stilles til rådighed af BrowserAdvisor i browsereksemplet, er udvælgelsen af funktionslinjeindholdet for arbejdsbænkvinduet:
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); }
Lad os se nærmere på, hvordan disse funktioner defineres i BrowserActionBuilder. Lad os i særdeleshed se nærmere på de funktioner, der håndteres af browseroversigten.
private void makeActions() { ... backAction = new RetargetAction("back", "&Back"); backAction.setToolTipText("Back"); backAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_BACK)); window.getPartService().addPartListener(backAction); forwardAction = new RetargetAction("forward", "&Forward"); forwardAction.setToolTipText("Forward"); forwardAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD)); window.getPartService().addPartListener(forwardAction); stopAction = new RetargetAction("stop", "Sto&p"); stopAction.setToolTipText("Stop"); window.getPartService().addPartListener(stopAction); refreshAction = new RetargetAction("refresh", "&Refresh"); refreshAction.setToolTipText("Refresh"); window.getPartService().addPartListener(refreshAction); ... }
Funktionerne er defineret som handlinger, hvis mål kan ændres, så de individuelle oversigter kan implementere behandlerfunktionerne. BrowserView knytter sine behandlerfunktioner til de af vinduets funktioner, hvis mål kan ændres, når den opretter kontrollerne for oversigten:
private Browser createBrowser(Composite parent, final IActionBars actionBars) { ... actionBars.setGlobalActionHandler("back", backAction); actionBars.setGlobalActionHandler("forward", forwardAction); actionBars.setGlobalActionHandler("stop", stopAction); actionBars.setGlobalActionHandler("refresh", refreshAction); ... }
Disse funktioner oprettes, når oversigten oprettes.
private Action backAction = new Action("Back") { public void run() { browser.back(); } };
I Funktioner, hvis mål kan ændres uddybes de funktioner, hvis mål kan ændres, og hvordan de defineres og implementeres.