diff options
Diffstat (limited to 'org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/BasicTextEditorActionContributor.java')
-rw-r--r-- | org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/BasicTextEditorActionContributor.java | 293 |
1 files changed, 0 insertions, 293 deletions
diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/BasicTextEditorActionContributor.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/BasicTextEditorActionContributor.java deleted file mode 100644 index 64b4552a8ef..00000000000 --- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/BasicTextEditorActionContributor.java +++ /dev/null @@ -1,293 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -package org.eclipse.ui.texteditor; - - -import java.util.HashMap; -import java.util.Map; - -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.action.IContributionItem; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.IStatusLineManager; - -import org.eclipse.jface.text.Assert; - -import org.eclipse.ui.IActionBars; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbenchActionConstants; -import org.eclipse.ui.part.EditorActionBarContributor; - - - -/** - * Manages the installation and deinstallation of global actions for - * the same type of editors. - * <p> - * If instantiated and used as-is, this contributor connects to all of the workbench defined - * global editor actions the corresponding actions of the current editor. It also adds addition - * actions for searching and navigation (go to line) as well as a set of status fields.</p> - * <p> - * Subclasses may override the following methods: - * <ul> - * <li><code>contributeToMenu</code> - extend to contribute to menu</li> - * <li><code>contributeToToolBar</code> - reimplement to contribute to toolbar</li> - * <li><code>contributeToStatusLine</code> - reimplement to contribute to status line</li> - * <li><code>setActiveEditor</code> - extend to react to editor changes</li> - * </ul> - * </p> - * @see org.eclipse.ui.texteditor.ITextEditorActionConstants - */ -public class BasicTextEditorActionContributor extends EditorActionBarContributor { - - /** The global actions to be connected with editor actions */ - private final static String[] ACTIONS= { - ITextEditorActionConstants.UNDO, - ITextEditorActionConstants.REDO, - ITextEditorActionConstants.CUT, - ITextEditorActionConstants.COPY, - ITextEditorActionConstants.PASTE, - ITextEditorActionConstants.DELETE, - ITextEditorActionConstants.SELECT_ALL, - ITextEditorActionConstants.FIND, - ITextEditorActionConstants.PRINT, - ITextEditorActionConstants.REVERT - }; - - /** - * Status field definition. - * @since 3.0 - */ - private static class StatusFieldDef { - - private String category; - private String actionId; - private boolean visible; - private int widthInChars; - - private StatusFieldDef(String category, String actionId, boolean visible, int widthInChars) { - Assert.isNotNull(category); - this.category= category; - this.actionId= actionId; - this.visible= visible; - this.widthInChars= widthInChars; - } - } - - /** - * The status fields to be set to the editor - * @since 2.0 - */ - private final static StatusFieldDef[] STATUS_FIELD_DEFS= { - new StatusFieldDef(ITextEditorActionConstants.STATUS_CATEGORY_FIND_FIELD, null, false, EditorMessages.getString("Editor.FindIncremental.reverse.name").length() + 15), //$NON-NLS-1$ - new StatusFieldDef(ITextEditorActionConstants.STATUS_CATEGORY_ELEMENT_STATE, null, true, StatusLineContributionItem.DEFAULT_WIDTH_IN_CHARS), - new StatusFieldDef(ITextEditorActionConstants.STATUS_CATEGORY_INPUT_MODE, ITextEditorActionDefinitionIds.TOGGLE_OVERWRITE, true, StatusLineContributionItem.DEFAULT_WIDTH_IN_CHARS), - new StatusFieldDef(ITextEditorActionConstants.STATUS_CATEGORY_INPUT_POSITION, ITextEditorActionConstants.GOTO_LINE, true, StatusLineContributionItem.DEFAULT_WIDTH_IN_CHARS) - }; - - /** - * The active editor part. - */ - private IEditorPart fActiveEditorPart; - /** - * The find next action. - * @since 2.0 - */ - private RetargetTextEditorAction fFindNext; - /** - * The find previous action. - * @since 2.0 - */ - private RetargetTextEditorAction fFindPrevious; - /** - * The incremental find action. - * @since 2.0 - */ - private RetargetTextEditorAction fIncrementalFind; - /** - * The reverse incremental find action. - * @since 2.1 - */ - private RetargetTextEditorAction fIncrementalFindReverse; - /** - * The go to line action. - */ - private RetargetTextEditorAction fGotoLine; - /** - * The map of status fields. - * @since 2.0 - */ - private Map fStatusFields; - - - /** - * Creates an empty editor action bar contributor. The action bars are - * furnished later via the <code>init</code> method. - * - * @see org.eclipse.ui.IEditorActionBarContributor#init(org.eclipse.ui.IActionBars, org.eclipse.ui.IWorkbenchPage) - */ - public BasicTextEditorActionContributor() { - - fFindNext= new RetargetTextEditorAction(EditorMessages.getResourceBundle(), "Editor.FindNext."); //$NON-NLS-1$ - fFindNext.setActionDefinitionId(ITextEditorActionDefinitionIds.FIND_NEXT); - fFindPrevious= new RetargetTextEditorAction(EditorMessages.getResourceBundle(), "Editor.FindPrevious."); //$NON-NLS-1$ - fFindPrevious.setActionDefinitionId(ITextEditorActionDefinitionIds.FIND_PREVIOUS); - fIncrementalFind= new RetargetTextEditorAction(EditorMessages.getResourceBundle(), "Editor.FindIncremental."); //$NON-NLS-1$ - fIncrementalFind.setActionDefinitionId(ITextEditorActionDefinitionIds.FIND_INCREMENTAL); - fIncrementalFindReverse= new RetargetTextEditorAction(EditorMessages.getResourceBundle(), "Editor.FindIncrementalReverse."); //$NON-NLS-1$ - fIncrementalFindReverse.setActionDefinitionId(ITextEditorActionDefinitionIds.FIND_INCREMENTAL_REVERSE); - fGotoLine= new RetargetTextEditorAction(EditorMessages.getResourceBundle(), "Editor.GotoLine."); //$NON-NLS-1$ - fGotoLine.setActionDefinitionId(ITextEditorActionDefinitionIds.LINE_GOTO); - - fStatusFields= new HashMap(3); - for (int i= 0; i < STATUS_FIELD_DEFS.length; i++) { - StatusFieldDef fieldDef= STATUS_FIELD_DEFS[i]; - fStatusFields.put(fieldDef, new StatusLineContributionItem(fieldDef.category, fieldDef.visible, fieldDef.widthInChars)); - } - } - - /** - * Returns the active editor part. - * - * @return the active editor part - */ - protected final IEditorPart getActiveEditorPart() { - return fActiveEditorPart; - } - - /** - * Returns the action registered with the given text editor. - * - * @param editor the editor, or <code>null</code> - * @param actionId the action id - * @return the action, or <code>null</code> if none - */ - protected final IAction getAction(ITextEditor editor, String actionId) { - return (editor == null || actionId == null ? null : editor.getAction(actionId)); - } - - /** - * The method installs the global action handlers for the given text editor. - * <p> - * This method cannot be overridden by subclasses.</p> - * @since 2.0 - */ - private void doSetActiveEditor(IEditorPart part) { - - if (fActiveEditorPart == part) - return; - - if (fActiveEditorPart instanceof ITextEditorExtension) { - ITextEditorExtension extension= (ITextEditorExtension) fActiveEditorPart; - for (int i= 0; i < STATUS_FIELD_DEFS.length; i++) - extension.setStatusField(null, STATUS_FIELD_DEFS[i].category); - } - - fActiveEditorPart= part; - ITextEditor editor= (part instanceof ITextEditor) ? (ITextEditor) part : null; - - IActionBars actionBars= getActionBars(); - if (actionBars != null) { - for (int i= 0; i < ACTIONS.length; i++) - actionBars.setGlobalActionHandler(ACTIONS[i], getAction(editor, ACTIONS[i])); - } - - fFindNext.setAction(getAction(editor, ITextEditorActionConstants.FIND_NEXT)); - fFindPrevious.setAction(getAction(editor, ITextEditorActionConstants.FIND_PREVIOUS)); - fIncrementalFind.setAction(getAction(editor, ITextEditorActionConstants.FIND_INCREMENTAL)); - fIncrementalFindReverse.setAction(getAction(editor, ITextEditorActionConstants.FIND_INCREMENTAL_REVERSE)); - fGotoLine.setAction(getAction(editor, ITextEditorActionConstants.GOTO_LINE)); - - for (int i= 0; i < STATUS_FIELD_DEFS.length; i++) { - if (fActiveEditorPart instanceof ITextEditorExtension) { - StatusLineContributionItem statusField= (StatusLineContributionItem) fStatusFields.get(STATUS_FIELD_DEFS[i]); - statusField.setActionHandler(getAction(editor, STATUS_FIELD_DEFS[i].actionId)); - ITextEditorExtension extension= (ITextEditorExtension) fActiveEditorPart; - extension.setStatusField(statusField, STATUS_FIELD_DEFS[i].category); - } - } - } - - /** - * The <code>BasicTextEditorActionContributor</code> implementation of this - * <code>IEditorActionBarContributor</code> method installs the global - * action handler for the given text editor by calling a private helper - * method. - * <p> - * Subclasses may extend.</p> - */ - public void setActiveEditor(IEditorPart part) { - doSetActiveEditor(part); - } - - /* - * @see EditorActionBarContributor#contributeToMenu(IMenuManager) - */ - public void contributeToMenu(IMenuManager menu) { - - IMenuManager editMenu= menu.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT); - if (editMenu != null) { - editMenu.appendToGroup(IWorkbenchActionConstants.FIND_EXT, fFindNext); - editMenu.appendToGroup(IWorkbenchActionConstants.FIND_EXT, fFindPrevious); - editMenu.appendToGroup(IWorkbenchActionConstants.FIND_EXT, fIncrementalFind); - editMenu.appendToGroup(IWorkbenchActionConstants.FIND_EXT, fIncrementalFindReverse); - } - - IMenuManager navigateMenu= menu.findMenuUsingPath(IWorkbenchActionConstants.M_NAVIGATE); - if (navigateMenu != null) { - navigateMenu.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, fGotoLine); - } - } - - /* - * @see EditorActionBarContributor#contributeToStatusLine(org.eclipse.jface.action.IStatusLineManager) - * @since 2.0 - */ - public void contributeToStatusLine(IStatusLineManager statusLineManager) { - super.contributeToStatusLine(statusLineManager); - for (int i= 0; i < STATUS_FIELD_DEFS.length; i++) - statusLineManager.add((IContributionItem)fStatusFields.get(STATUS_FIELD_DEFS[i])); - } - - /* - * @see org.eclipse.ui.IEditorActionBarContributor#dispose() - * @since 2.0 - */ - public void dispose() { - doSetActiveEditor(null); - super.dispose(); - } - - -// /* (non-Javadoc) -// * @see org.eclipse.ui.IEditorActionBarContributor#init(org.eclipse.ui.IActionBars, org.eclipse.ui.IWorkbenchPage) -// */ -// public void init(IActionBars bars, IWorkbenchPage page) { -// -// if (page != null) { -// IWorkbenchWindow window= page.getWorkbenchWindow(); -// if (window instanceof WorkbenchWindow) { -// WorkbenchWindow wWindow= (WorkbenchWindow) window; -// WWinKeyBindingService service= wWindow.getKeyBindingService(); -// if (service != null) { -// service.registerGlobalAction(fFindNext); -// service.registerGlobalAction(fFindPrevious); -// service.registerGlobalAction(fIncrementalFind); -// service.registerGlobalAction(fIncrementalFindReverse); -// service.registerGlobalAction(fGotoLine); -// } -// } -// } -// super.init(bars, page); -// } - -} |