브라우저 예제에서 BrowserAdvisor가 제공하는 기본 사용자 정의는 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); }
이러한 조치를 BrowserActionBuilder에 정의하는 방법을 더욱 자세히 살펴보기로 합니다. 특히 브라우저 보기에서 처리하는 조치를 살펴 봅니다.
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); ... }
조치는 개별 보기가 핸들러 조치를 구현할 수 있도록 새로 대상 지정 가능한 조치로 정의됩니다. BrowserView는 보기에 대한 제어를 작성할 때 핸들러 조치를 창의 새로 대상 지정 가능한 조치와 연관시킵니다.
private Browser createBrowser(Composite parent, final IActionBars actionBars) { ... actionBars.setGlobalActionHandler("back", backAction); actionBars.setGlobalActionHandler("forward", forwardAction); actionBars.setGlobalActionHandler("stop", stopAction); actionBars.setGlobalActionHandler("refresh", refreshAction); ... }
이러한 조치는 보기가 먼저 작성되면 작성됩니다.
private Action backAction = new Action("Back") { public void run() { browser.back(); } };
새로 대상 지정 가능한 조치에 대한 전체 설명 및 이 조치를 정의하고 구현하는 방법은 새로 대상 지정 가능한 조치를 참조하십시오.