package com.tibco.as.spacebar.ui.editor; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.actions.ActionFactory; import org.eclipse.ui.part.EditorActionBarContributor; import com.tibco.as.spacebar.ui.editor.action.BrowseAction; import com.tibco.as.spacebar.ui.editor.action.CopyAction; public abstract class AbstractActionBarContributor extends EditorActionBarContributor { private CopyAction copyAction; private BrowseAction browseAction; private IEditorPart activeEditor; public AbstractActionBarContributor() { this.copyAction = new CopyAction(); this.browseAction = new BrowseAction(); } @Override public void setActiveEditor(IEditorPart editor) { if (activeEditor == editor) { return; } activeEditor = editor; doSetActiveEditor(editor); } protected void doSetActiveEditor(IEditorPart editor) { AbstractBrowser<?> browser = (AbstractBrowser<?>) editor; getActionBars().setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction); copyAction.setEditor(browser); browseAction.setEditor(browser); } @Override public void dispose() { copyAction.dispose(); copyAction = null; browseAction.dispose(); browseAction = null; super.dispose(); } @Override public void contributeToToolBar(IToolBarManager toolBarManager) { super.contributeToToolBar(toolBarManager); toolBarManager.add(copyAction); toolBarManager.add(browseAction); } }