X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.ui%2Fsrc%2Forg%2Fsimantics%2Fui%2Fworkbench%2FResourceEditorActionContributor.java;h=4560b2b39b5db44d8bd0acd9122c3247da92b434;hb=db1eda83343fd8d26d6d6c340e70fc0e663d8808;hp=1c864a58def4befae6bfbaba5879545c32a42a84;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.ui/src/org/simantics/ui/workbench/ResourceEditorActionContributor.java b/bundles/org.simantics.ui/src/org/simantics/ui/workbench/ResourceEditorActionContributor.java index 1c864a58d..4560b2b39 100644 --- a/bundles/org.simantics.ui/src/org/simantics/ui/workbench/ResourceEditorActionContributor.java +++ b/bundles/org.simantics.ui/src/org/simantics/ui/workbench/ResourceEditorActionContributor.java @@ -1,308 +1,308 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management - * in Industry THTH ry. - * 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: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.ui.workbench; - - -import org.eclipse.core.runtime.Assert; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.action.IContributionItem; -import org.eclipse.jface.action.IContributionManager; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.IStatusLineManager; -import org.eclipse.ui.IActionBars; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.actions.ActionFactory; -import org.eclipse.ui.part.EditorActionBarContributor; - - - - - -/** - * Manages the installation and removal of global actions for - * the same type of editors. - *
- * 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.
- *- * Subclasses may override the following methods: - *
contributeToMenu
- extend to contribute to menucontributeToToolBar
- reimplement to contribute to tool barcontributeToStatusLine
- reimplement to contribute to status linesetActiveEditor
- extend to react to editor changesinit
method.
- *
- * @see org.eclipse.ui.IEditorActionBarContributor#init(org.eclipse.ui.IActionBars, org.eclipse.ui.IWorkbenchPage)
- */
- public ResourceEditorActionContributor() {
-
-// fFindNext= new RetargetTextEditorAction(EditorMessages.getBundleForConstructedKeys(), "Editor.FindNext."); //$NON-NLS-1$
-// fFindNext.setActionDefinitionId(IWorkbenchActionDefinitionIds.FIND_NEXT);
-// fFindPrevious= new RetargetTextEditorAction(EditorMessages.getBundleForConstructedKeys(), "Editor.FindPrevious."); //$NON-NLS-1$
-// fFindPrevious.setActionDefinitionId(IWorkbenchActionDefinitionIds.FIND_PREVIOUS);
-// fIncrementalFind= new RetargetTextEditorAction(EditorMessages.getBundleForConstructedKeys(), "Editor.FindIncremental."); //$NON-NLS-1$
-// fIncrementalFind.setActionDefinitionId(IWorkbenchActionDefinitionIds.FIND_INCREMENTAL);
-// fIncrementalFindReverse= new RetargetTextEditorAction(EditorMessages.getBundleForConstructedKeys(), "Editor.FindIncrementalReverse."); //$NON-NLS-1$
-// fIncrementalFindReverse.setActionDefinitionId(IWorkbenchActionDefinitionIds.FIND_INCREMENTAL_REVERSE);
-// fGotoLine= new RetargetTextEditorAction(EditorMessages.getBundleForConstructedKeys(), "Editor.GotoLine."); //$NON-NLS-1$
-// fGotoLine.setActionDefinitionId(ITextEditorActionDefinitionIds.LINE_GOTO);
-// fHippieCompletion= new RetargetTextEditorAction(EditorMessages.getBundleForConstructedKeys(), "Editor.HippieCompletion."); //$NON-NLS-1$
-// fHippieCompletion.setActionDefinitionId(ITextEditorActionDefinitionIds.HIPPIE_COMPLETION);
-
-// 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 activeEditorPart;
- }
-
- /**
- * Returns the action registered with the given text editor.
- *
- * @param editor the editor, or null
- * @param actionId the action id
- * @return the action, or null
if none
- */
- protected final IAction getAction(IResourceEditorPart editor, String actionId) {
- return null;
-// return (editor == null || actionId == null ? null : editor.getAction(actionId));
- }
-
- /**
- * The method installs the global action handlers for the given text editor.
- * - * This method cannot be overridden by subclasses.
- * - * @param part the active editor part - * @since 2.0 - */ - private void doSetActiveEditor(IEditorPart part) { - - if (activeEditorPart == 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); -// } - - activeEditorPart= part; - IResourceEditorPart editor = (part instanceof IResourceEditorPart) ? (IResourceEditorPart) part : null; - - IActionBars actionBars= getActionBars(); - 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)); -// fHippieCompletion.setAction(getAction(editor, ITextEditorActionConstants.HIPPIE_COMPLETION)); -// -// 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); -// } -// } - } - - /** - * TheBasicTextEditorActionContributor
implementation of this
- * IEditorActionBarContributor
method installs the global
- * action handler for the given text editor by calling a private helper
- * method.
- * - * Subclasses may extend.
- * - * @param part {@inheritDoc} - */ - 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.prependToGroup(IWorkbenchActionConstants.FIND_EXT, fIncrementalFindReverse); -// editMenu.prependToGroup(IWorkbenchActionConstants.FIND_EXT, fIncrementalFind); -// editMenu.prependToGroup(IWorkbenchActionConstants.FIND_EXT, fFindPrevious); -// editMenu.prependToGroup(IWorkbenchActionConstants.FIND_EXT, fFindNext); -// -// addOrInsert(editMenu, new Separator(ITextEditorActionConstants.GROUP_OPEN)); -// addOrInsert(editMenu, new Separator(ITextEditorActionConstants.GROUP_INFORMATION)); -// addOrInsert(editMenu, new Separator(ITextEditorActionConstants.GROUP_ASSIST)); -// addOrInsert(editMenu, new Separator(ITextEditorActionConstants.GROUP_GENERATE)); -// addOrInsert(editMenu, new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); -// -// editMenu.appendToGroup(ITextEditorActionConstants.GROUP_ASSIST, fHippieCompletion); -// } -// -// IMenuManager navigateMenu= menu.findMenuUsingPath(IWorkbenchActionConstants.M_NAVIGATE); -// if (navigateMenu != null) { -// navigateMenu.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, fGotoLine); -// } - } - - /** - * Theitem
is {@link IContributionManager#add(IContributionItem) added} to
- * menu
if no item with the same id currently exists. If there already is an
- * contribution item with the same id, the new item gets
- * {@link IContributionManager#insertAfter(String, IContributionItem) inserted after} it.
- *
- * @param menu the contribution manager
- * @param item the contribution item
- * @since 3.2
- */
- @SuppressWarnings("unused")
- private void addOrInsert(IContributionManager menu, IContributionItem item) {
- String id= item.getId();
- if (menu.find(id) == null)
- menu.add(item);
- else
- menu.insertAfter(id, item);
- }
-
- /*
- * @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();
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * 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:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.ui.workbench;
+
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.part.EditorActionBarContributor;
+
+
+
+
+
+/**
+ * Manages the installation and removal of global actions for
+ * the same type of editors.
+ * + * 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.
+ *+ * Subclasses may override the following methods: + *
contributeToMenu
- extend to contribute to menucontributeToToolBar
- reimplement to contribute to tool barcontributeToStatusLine
- reimplement to contribute to status linesetActiveEditor
- extend to react to editor changesinit
method.
+ *
+ * @see org.eclipse.ui.IEditorActionBarContributor#init(org.eclipse.ui.IActionBars, org.eclipse.ui.IWorkbenchPage)
+ */
+ public ResourceEditorActionContributor() {
+
+// fFindNext= new RetargetTextEditorAction(EditorMessages.getBundleForConstructedKeys(), "Editor.FindNext."); //$NON-NLS-1$
+// fFindNext.setActionDefinitionId(IWorkbenchActionDefinitionIds.FIND_NEXT);
+// fFindPrevious= new RetargetTextEditorAction(EditorMessages.getBundleForConstructedKeys(), "Editor.FindPrevious."); //$NON-NLS-1$
+// fFindPrevious.setActionDefinitionId(IWorkbenchActionDefinitionIds.FIND_PREVIOUS);
+// fIncrementalFind= new RetargetTextEditorAction(EditorMessages.getBundleForConstructedKeys(), "Editor.FindIncremental."); //$NON-NLS-1$
+// fIncrementalFind.setActionDefinitionId(IWorkbenchActionDefinitionIds.FIND_INCREMENTAL);
+// fIncrementalFindReverse= new RetargetTextEditorAction(EditorMessages.getBundleForConstructedKeys(), "Editor.FindIncrementalReverse."); //$NON-NLS-1$
+// fIncrementalFindReverse.setActionDefinitionId(IWorkbenchActionDefinitionIds.FIND_INCREMENTAL_REVERSE);
+// fGotoLine= new RetargetTextEditorAction(EditorMessages.getBundleForConstructedKeys(), "Editor.GotoLine."); //$NON-NLS-1$
+// fGotoLine.setActionDefinitionId(ITextEditorActionDefinitionIds.LINE_GOTO);
+// fHippieCompletion= new RetargetTextEditorAction(EditorMessages.getBundleForConstructedKeys(), "Editor.HippieCompletion."); //$NON-NLS-1$
+// fHippieCompletion.setActionDefinitionId(ITextEditorActionDefinitionIds.HIPPIE_COMPLETION);
+
+// 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 activeEditorPart;
+ }
+
+ /**
+ * Returns the action registered with the given text editor.
+ *
+ * @param editor the editor, or null
+ * @param actionId the action id
+ * @return the action, or null
if none
+ */
+ protected final IAction getAction(IResourceEditorPart editor, String actionId) {
+ return null;
+// return (editor == null || actionId == null ? null : editor.getAction(actionId));
+ }
+
+ /**
+ * The method installs the global action handlers for the given text editor.
+ * + * This method cannot be overridden by subclasses.
+ * + * @param part the active editor part + * @since 2.0 + */ + private void doSetActiveEditor(IEditorPart part) { + + if (activeEditorPart == 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); +// } + + activeEditorPart= part; + IResourceEditorPart editor = (part instanceof IResourceEditorPart) ? (IResourceEditorPart) part : null; + + IActionBars actionBars= getActionBars(); + 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)); +// fHippieCompletion.setAction(getAction(editor, ITextEditorActionConstants.HIPPIE_COMPLETION)); +// +// 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); +// } +// } + } + + /** + * TheBasicTextEditorActionContributor
implementation of this
+ * IEditorActionBarContributor
method installs the global
+ * action handler for the given text editor by calling a private helper
+ * method.
+ * + * Subclasses may extend.
+ * + * @param part {@inheritDoc} + */ + 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.prependToGroup(IWorkbenchActionConstants.FIND_EXT, fIncrementalFindReverse); +// editMenu.prependToGroup(IWorkbenchActionConstants.FIND_EXT, fIncrementalFind); +// editMenu.prependToGroup(IWorkbenchActionConstants.FIND_EXT, fFindPrevious); +// editMenu.prependToGroup(IWorkbenchActionConstants.FIND_EXT, fFindNext); +// +// addOrInsert(editMenu, new Separator(ITextEditorActionConstants.GROUP_OPEN)); +// addOrInsert(editMenu, new Separator(ITextEditorActionConstants.GROUP_INFORMATION)); +// addOrInsert(editMenu, new Separator(ITextEditorActionConstants.GROUP_ASSIST)); +// addOrInsert(editMenu, new Separator(ITextEditorActionConstants.GROUP_GENERATE)); +// addOrInsert(editMenu, new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); +// +// editMenu.appendToGroup(ITextEditorActionConstants.GROUP_ASSIST, fHippieCompletion); +// } +// +// IMenuManager navigateMenu= menu.findMenuUsingPath(IWorkbenchActionConstants.M_NAVIGATE); +// if (navigateMenu != null) { +// navigateMenu.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, fGotoLine); +// } + } + + /** + * Theitem
is {@link IContributionManager#add(IContributionItem) added} to
+ * menu
if no item with the same id currently exists. If there already is an
+ * contribution item with the same id, the new item gets
+ * {@link IContributionManager#insertAfter(String, IContributionItem) inserted after} it.
+ *
+ * @param menu the contribution manager
+ * @param item the contribution item
+ * @since 3.2
+ */
+ @SuppressWarnings("unused")
+ private void addOrInsert(IContributionManager menu, IContributionItem item) {
+ String id= item.getId();
+ if (menu.find(id) == null)
+ menu.add(item);
+ else
+ menu.insertAfter(id, item);
+ }
+
+ /*
+ * @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();
+ }
+}