| /* |
| * Copyright (C) 2007 The Android Open Source Project |
| * |
| * Licensed under the Eclipse Public License, Version 1.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.eclipse.org/org/documents/epl-v10.php |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.ide.eclipse.adt.internal.editors.manifest; |
| |
| import org.eclipse.jface.action.IAction; |
| import org.eclipse.ui.IActionBars; |
| import org.eclipse.ui.IEditorPart; |
| import org.eclipse.ui.actions.ActionFactory; |
| import org.eclipse.ui.ide.IDEActionFactory; |
| import org.eclipse.ui.part.MultiPageEditorActionBarContributor; |
| import org.eclipse.ui.texteditor.ITextEditor; |
| import org.eclipse.ui.texteditor.ITextEditorActionConstants; |
| |
| /** |
| * Manages the installation/deinstallation of global actions for multi-page |
| * editors. Responsible for the redirection of global actions to the active |
| * editor. Multi-page contributor replaces the contributors for the individual |
| * editors in the multi-page editor. |
| * |
| * TODO: Doesn't look like we need this. Remove it if not needed. |
| * @deprecated |
| */ |
| final class ManifestEditorContributor extends MultiPageEditorActionBarContributor { |
| private IEditorPart mActiveEditorPart; |
| |
| /** |
| * Creates a multi-page contributor. |
| * |
| * Marked as Private so it can't be instanciated. This is a cheap way to make sure |
| * it's not being used. As noted in constructor, should be removed if not used. |
| * @deprecated |
| */ |
| private ManifestEditorContributor() { |
| super(); |
| } |
| |
| /** |
| * Returns the action registed with the given text editor. |
| * |
| * @return IAction or null if editor is null. |
| */ |
| protected IAction getAction(ITextEditor editor, String actionID) { |
| return (editor == null ? null : editor.getAction(actionID)); |
| } |
| |
| /* |
| * (non-JavaDoc) Method declared in |
| * AbstractMultiPageEditorActionBarContributor. |
| */ |
| |
| @Override |
| public void setActivePage(IEditorPart part) { |
| if (mActiveEditorPart == part) |
| return; |
| |
| mActiveEditorPart = part; |
| |
| IActionBars actionBars = getActionBars(); |
| if (actionBars != null) { |
| |
| ITextEditor editor = |
| (part instanceof ITextEditor) ? (ITextEditor)part : null; |
| |
| actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), |
| getAction(editor, ITextEditorActionConstants.DELETE)); |
| actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), |
| getAction(editor, ITextEditorActionConstants.UNDO)); |
| actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), |
| getAction(editor, ITextEditorActionConstants.REDO)); |
| actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), |
| getAction(editor, ITextEditorActionConstants.CUT)); |
| actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), |
| getAction(editor, ITextEditorActionConstants.COPY)); |
| actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), |
| getAction(editor, ITextEditorActionConstants.PASTE)); |
| actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), |
| getAction(editor, ITextEditorActionConstants.SELECT_ALL)); |
| actionBars.setGlobalActionHandler(ActionFactory.FIND.getId(), |
| getAction(editor, ITextEditorActionConstants.FIND)); |
| actionBars.setGlobalActionHandler( |
| IDEActionFactory.BOOKMARK.getId(), getAction(editor, |
| IDEActionFactory.BOOKMARK.getId())); |
| actionBars.updateActionBars(); |
| } |
| } |
| } |