| /******************************************************************************* |
| * Copyright (c) 2001, 2004 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.wst.wsdl.ui.internal.actions; |
| |
| import org.eclipse.jface.action.GroupMarker; |
| import org.eclipse.jface.action.IAction; |
| import org.eclipse.jface.action.IToolBarManager; |
| import org.eclipse.ui.IEditorPart; |
| import org.eclipse.ui.actions.ActionFactory; |
| import org.eclipse.ui.texteditor.ITextEditor; |
| import org.eclipse.ui.texteditor.ITextEditorActionConstants; |
| import org.eclipse.wst.wsdl.ui.internal.WSDLEditor; |
| |
| public class WSDLActionBarContributor extends SourceEditorActionBarContributor |
| { |
| protected ITextEditor textEditor; |
| |
| /** |
| * Constructor for WSDLActionBarContributor. |
| */ |
| public WSDLActionBarContributor() |
| { |
| super(); |
| } |
| |
| public void setActivePage(IEditorPart activeEditor) |
| { |
| super.setActivePage(activeEditor); |
| |
| // always enable undo/redo regardless of which page we're on. The undo/redo comes from the editor |
| // |
| updateAction(ActionFactory.UNDO.getId(), ITextEditorActionConstants.UNDO, true); |
| updateAction(ActionFactory.REDO.getId(), ITextEditorActionConstants.REDO, true); |
| |
| // turn these off so that the actionhandler will handle it for us |
| // |
| //updateAction(IWorkbenchActionConstants.CUT, ITextEditorActionConstants.CUT, false); |
| //updateAction(IWorkbenchActionConstants.COPY, ITextEditorActionConstants.COPY, false); |
| //updateAction(IWorkbenchActionConstants.PASTE, ITextEditorActionConstants.PASTE, false); |
| |
| getActionBars().updateActionBars(); |
| } |
| |
| protected void updateAction(String globalActionId, String textEditorActionId, boolean enable) |
| { |
| getActionBars().setGlobalActionHandler(globalActionId, enable ? getAction(textEditor, textEditorActionId) : null); |
| } |
| |
| /** |
| * Returns the action registed with the given text editor. |
| * @return IAction or null if editor is null. |
| */ |
| protected IAction getAction(ITextEditor editor, String actionID) |
| { |
| try |
| { |
| return (editor == null ? null : editor.getAction(actionID)); |
| } |
| catch (Exception e) |
| { |
| return null; |
| } |
| } |
| |
| /** |
| * @see EditorActionBarContributor#contributeToToolBar(IToolBarManager) |
| */ |
| public void addToToolBar(IToolBarManager toolBarManager) |
| { |
| super.addToToolBar(toolBarManager); |
| toolBarManager.add(new GroupMarker("WSDLEditor")); |
| } |
| |
| |
| public void setActiveEditor(IEditorPart activeEditor) |
| { |
| super.setActiveEditor(activeEditor); |
| textEditor = null; |
| if (activeEditor instanceof WSDLEditor) |
| { |
| textEditor = ((WSDLEditor) activeEditor).getTextEditor(); |
| } |
| |
| updateAction(ActionFactory.UNDO.getId(), ITextEditorActionConstants.UNDO, true); |
| updateAction(ActionFactory.REDO.getId(), ITextEditorActionConstants.REDO, true); |
| } |
| } |