Definování akcí

Primární přizpůsobení, které nabízí BrowserAdvisor v příkladu s prohlížečem, je určení obsahu řádku s akcemi pro okno pracovní plochy:

	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);
	}

Podívejme se blíže na to, jak jsou tyto akce v BrowserActionBuilder definovány. Zejména se podívejme na akce ošetřované pohledem prohlížeče.

private void makeActions() {
		...				
		backAction = new RetargetAction("zpět", "&Zpět");
		backAction.setToolTipText("Zpět");
		backAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_BACK));
		window.getPartService().addPartListener(backAction);
		
		forwardAction = new RetargetAction("vpřed", "&Vpřed");
		forwardAction.setToolTipText("Vpřed");
		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("obnovit", "&Obnovit");
		refreshAction.setToolTipText("Obnovit");
		window.getPartService().addPartListener(refreshAction);
		...
	}

Tyto akce jsou definované jako přecílitelné akce, takže jednotlivé pohledy mohou implementovat akce obslužného programu. BrowserView přiřazuje své akce obslužného programu k přecílitelným akcím okna, když vytváří obslužné prvky pohledu:

	private Browser createBrowser(Composite parent, final IActionBars actionBars) {
		
		...
		actionBars.setGlobalActionHandler("zpět", backAction);
		actionBars.setGlobalActionHandler("vpřed", forwardAction);
		actionBars.setGlobalActionHandler("stop", stopAction); 
		actionBars.setGlobalActionHandler("obnovit", refreshAction);
		...
	}

Tyto akce jsou vytvořeny, když je poprvé vytvořen daný pohled.

	private Action backAction = new Action("Zpět") {
		public void run() {
			browser.back();
		}
	};

Úplné pojednání o přecílitelných akcích a o tom, jak je definovat a implementovat, naleznete v tématu Přecílitelné akce.