annotate src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorContributor.java @ 29:fbcf122a6a24

Working version for textgrid
author dwinter
date Wed, 14 Sep 2011 14:41:31 +0200
parents 83c58ea33792
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
1 package de.mpg.mpiwg.itgroup.digilib.plugin.editors;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
2
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
3 import org.eclipse.jface.action.*;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
4 import org.eclipse.jface.dialogs.MessageDialog;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
5 import org.eclipse.ui.IActionBars;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
6 import org.eclipse.ui.IEditorPart;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
7 import org.eclipse.ui.IWorkbenchActionConstants;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
8 import org.eclipse.ui.PlatformUI;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
9 import org.eclipse.ui.actions.ActionFactory;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
10 import org.eclipse.ui.ide.IDE;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
11 import org.eclipse.ui.ide.IDEActionFactory;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
12 import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
13 import org.eclipse.ui.texteditor.ITextEditor;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
14 import org.eclipse.ui.texteditor.ITextEditorActionConstants;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
15
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
16 /**
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
17 * Manages the installation/deinstallation of global actions for multi-page editors.
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
18 * Responsible for the redirection of global actions to the active editor.
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
19 * Multi-page contributor replaces the contributors for the individual editors in the multi-page editor.
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
20 */
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
21 public class DigilibLinkEditorContributor extends MultiPageEditorActionBarContributor {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
22 private IEditorPart activeEditorPart;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
23 private Action sampleAction;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
24 /**
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
25 * Creates a multi-page contributor.
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
26 */
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
27 public DigilibLinkEditorContributor() {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
28 super();
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
29 createActions();
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
30 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
31 /**
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
32 * Returns the action registed with the given text editor.
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
33 * @return IAction or null if editor is null.
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
34 */
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
35 protected IAction getAction(ITextEditor editor, String actionID) {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
36 return (editor == null ? null : editor.getAction(actionID));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
37 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
38 /* (non-JavaDoc)
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
39 * Method declared in AbstractMultiPageEditorActionBarContributor.
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
40 */
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
41
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
42 public void setActivePage(IEditorPart part) {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
43 if (activeEditorPart == part)
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
44 return;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
45
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
46 activeEditorPart = part;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
47
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
48 IActionBars actionBars = getActionBars();
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
49 if (actionBars != null) {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
50
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
51 ITextEditor editor = (part instanceof ITextEditor) ? (ITextEditor) part : null;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
52
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
53 actionBars.setGlobalActionHandler(
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
54 ActionFactory.DELETE.getId(),
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
55 getAction(editor, ITextEditorActionConstants.DELETE));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
56 actionBars.setGlobalActionHandler(
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
57 ActionFactory.UNDO.getId(),
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
58 getAction(editor, ITextEditorActionConstants.UNDO));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
59 actionBars.setGlobalActionHandler(
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
60 ActionFactory.REDO.getId(),
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
61 getAction(editor, ITextEditorActionConstants.REDO));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
62 actionBars.setGlobalActionHandler(
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
63 ActionFactory.CUT.getId(),
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
64 getAction(editor, ITextEditorActionConstants.CUT));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
65 actionBars.setGlobalActionHandler(
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
66 ActionFactory.COPY.getId(),
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
67 getAction(editor, ITextEditorActionConstants.COPY));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
68 actionBars.setGlobalActionHandler(
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
69 ActionFactory.PASTE.getId(),
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
70 getAction(editor, ITextEditorActionConstants.PASTE));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
71 actionBars.setGlobalActionHandler(
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
72 ActionFactory.SELECT_ALL.getId(),
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
73 getAction(editor, ITextEditorActionConstants.SELECT_ALL));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
74 actionBars.setGlobalActionHandler(
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
75 ActionFactory.FIND.getId(),
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
76 getAction(editor, ITextEditorActionConstants.FIND));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
77 actionBars.setGlobalActionHandler(
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
78 IDEActionFactory.BOOKMARK.getId(),
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
79 getAction(editor, IDEActionFactory.BOOKMARK.getId()));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
80 actionBars.updateActionBars();
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
81 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
82 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
83 private void createActions() {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
84 sampleAction = new Action() {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
85 public void run() {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
86 MessageDialog.openInformation(null, "digilibClient", "Sample Action Executed");
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
87 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
88 };
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
89 sampleAction.setText("Sample Action");
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
90 sampleAction.setToolTipText("Sample Action tool tip");
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
91 sampleAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
92 getImageDescriptor(IDE.SharedImages.IMG_OBJS_TASK_TSK));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
93 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
94 public void contributeToMenu(IMenuManager manager) {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
95 IMenuManager menu = new MenuManager("Editor &Menu");
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
96 manager.prependToGroup(IWorkbenchActionConstants.MB_ADDITIONS, menu);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
97 menu.add(sampleAction);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
98 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
99 public void contributeToToolBar(IToolBarManager manager) {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
100 manager.add(new Separator());
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
101 manager.add(sampleAction);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
102 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
103 }