La personalizzazione principale fornita da BrowserAdvisor nel browser di esempio è l'indicazione del contenuto della barra di azione per la finestra del workbench:
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); }
Di seguito viene riportata la modalità con cui queste azioni sono definite nel BrowserActionBuilder. In particolare, vengono considerate le azioni gestite dalla vista del browser.
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); ... }
Le azioni sono definite come azioni reindirizzabili, in modo che le singole viste possano implementare le azioni del gestore. BrowserView associa le azioni del gestore alle azioni reindirizzabili della finestra, quando crea i controlli per la vista:
private Browser createBrowser(Composite parent, final IActionBars actionBars) { ... actionBars.setGlobalActionHandler("back", backAction); actionBars.setGlobalActionHandler("forward", forwardAction); actionBars.setGlobalActionHandler("stop", stopAction); actionBars.setGlobalActionHandler("refresh", refreshAction); ... }
Queste azioni vengono create quando si crea la vista per la prima volta.
private Action backAction = new Action("Back") { public void run() { browser.back(); } };
Per un'analisi completa delle azioni reindirizzabili e per la modalità con cui queste azioni sono definite e implementate, fare riferimento alla sezioneAzioni reindirizzabili.