KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > editor2d > EditorContextMenuProvider


1 /**
2  * <p> Project: com.nightlabs.editor2d </p>
3  * <p> Copyright: Copyright (c) 2004 </p>
4  * <p> Company: NightLabs GmbH (Germany) </p>
5  * <p> Creation Date: 26.10.2004 </p>
6  * <p> Author: Daniel Mazurek </p>
7 **/

8 package com.nightlabs.editor2d;
9
10 import org.eclipse.gef.ContextMenuProvider;
11 import org.eclipse.gef.EditPartViewer;
12 import org.eclipse.gef.ui.actions.ActionRegistry;
13 import org.eclipse.gef.ui.actions.GEFActionConstants;
14 import org.eclipse.jface.action.IAction;
15 import org.eclipse.jface.action.IMenuManager;
16 import org.eclipse.jface.action.MenuManager;
17 import org.eclipse.jface.action.Separator;
18 import org.eclipse.jface.action.SubMenuManager;
19 import org.eclipse.ui.actions.ActionFactory;
20
21 import com.nightlabs.editor2d.actions.EditShapeAction;
22 import com.nightlabs.editor2d.actions.NormalSelectionAction;
23 import com.nightlabs.editor2d.actions.ResetRotationCenterAction;
24 import com.nightlabs.editor2d.actions.RotateAction;
25 import com.nightlabs.editor2d.actions.ShowDefaultRenderAction;
26
27
28 public class EditorContextMenuProvider
29 extends ContextMenuProvider
30 {
31   public static final String JavaDoc CONTEXT_MENU_ID = "com.nightlabs.editor2d.outline.contextmenu";
32   
33   /** The editor's action registry. */
34   private ActionRegistry actionRegistry;
35     
36   /**
37    * Instantiate a new menu context provider for the specified EditPartViewer
38    * and ActionRegistry.
39    * @param viewer the editor's graphical viewer
40    * @param registry the editor's action registry
41    * @throws IllegalArgumentException if registry is <tt>null</tt>.
42    */

43   public EditorContextMenuProvider(EditPartViewer viewer, ActionRegistry registry) {
44     super(viewer);
45     if (registry == null) {
46         throw new IllegalArgumentException JavaDoc();
47     }
48     actionRegistry = registry;
49   }
50
51   /**
52    * Called when the context menu is about to show. Actions,
53    * whose state is enabled, will appear in the context menu.
54    * @see org.eclipse.gef.ContextMenuProvider#buildContextMenu(org.eclipse.jface.action.IMenuManager)
55    */

56   public void buildContextMenu(IMenuManager manager)
57   {
58     // Add standard action groups to the menu
59
GEFActionConstants.addStandardActionGroups(manager);
60     
61     IAction action;
62     
63     action = getActionRegistry().getAction(ActionFactory.UNDO.getId());
64     manager.appendToGroup(GEFActionConstants.GROUP_UNDO, action);
65
66     action = getActionRegistry().getAction(ActionFactory.REDO.getId());
67     manager.appendToGroup(GEFActionConstants.GROUP_UNDO, action);
68
69     action = getActionRegistry().getAction(ActionFactory.PASTE.getId());
70     if (action.isEnabled())
71         manager.appendToGroup(GEFActionConstants.GROUP_EDIT, action);
72
73     action = getActionRegistry().getAction(ActionFactory.DELETE.getId());
74     if (action.isEnabled())
75         manager.appendToGroup(GEFActionConstants.GROUP_EDIT, action);
76
77     action = getActionRegistry().getAction(GEFActionConstants.DIRECT_EDIT);
78     if (action.isEnabled())
79         manager.appendToGroup(GEFActionConstants.GROUP_EDIT, action);
80     
81     // View SubMenu
82
MenuManager viewsubmenu = new MenuManager(EditorPlugin.getResourceString("menu_view"));
83     buildViewSubMenu(viewsubmenu);
84     if (!viewsubmenu.isEmpty())
85         manager.appendToGroup(GEFActionConstants.GROUP_REST, viewsubmenu);
86     
87     // Edit SubMenu
88
MenuManager editsubmenu = new MenuManager(EditorPlugin.getResourceString("menu.edit"));
89     buildEditSubMenu(editsubmenu);
90     if (!editsubmenu.isEmpty())
91         manager.appendToGroup(GEFActionConstants.GROUP_REST, editsubmenu);
92     
93     // Alignment SubMenu
94
MenuManager alignSubMenu = new MenuManager(EditorPlugin.getResourceString("menu.align"));
95     buildAlignSubMenu(alignSubMenu);
96     if (!alignSubMenu.isEmpty())
97         manager.appendToGroup(GEFActionConstants.GROUP_REST, alignSubMenu);
98
99 // action = getActionRegistry().getAction(ActionFactory.SAVE.getId());
100
// manager.appendToGroup(GEFActionConstants.GROUP_SAVE, action);
101
}
102
103   protected IAction getAction(String JavaDoc actionId) {
104     return actionRegistry.getAction(actionId);
105   }
106
107   protected ActionRegistry getActionRegistry() {
108     return actionRegistry;
109   }
110
111   protected void setActionRegistry(ActionRegistry registry) {
112     actionRegistry = registry;
113   }
114     
115   protected void buildViewSubMenu(MenuManager menuMan)
116   {
117     IAction action = getActionRegistry().getAction(ShowDefaultRenderAction.ID);
118     if (action.isEnabled())
119       menuMan.add(action);
120   }
121   
122   protected void buildEditSubMenu(MenuManager menuMan)
123   {
124     // Edit Shape Action
125
IAction action = getActionRegistry().getAction(EditShapeAction.ID);
126     if (action.isEnabled())
127       menuMan.add(action);
128
129     // Rotate Action
130
action = getActionRegistry().getAction(RotateAction.ID);
131     if (action.isEnabled())
132       menuMan.add(action);
133         
134     // Normal Selection Action
135
action = getActionRegistry().getAction(NormalSelectionAction.ID);
136     if (action.isEnabled())
137       menuMan.add(action);
138     
139     // Reset Rotation Center Action
140
action = getActionRegistry().getAction(ResetRotationCenterAction.ID);
141 // if (action.isEnabled())
142
// manager.appendToGroup(GEFActionConstants.GROUP_EDIT, action);
143
menuMan.add(action);
144   }
145   
146   protected void buildAlignSubMenu(MenuManager menuMan)
147   {
148     IAction action = getActionRegistry().getAction(GEFActionConstants.ALIGN_LEFT);
149     if (action.isEnabled())
150       menuMan.add(action);
151
152     action = getActionRegistry().getAction(GEFActionConstants.ALIGN_CENTER);
153     if (action.isEnabled())
154       menuMan.add(action);
155
156     action = getActionRegistry().getAction(GEFActionConstants.ALIGN_RIGHT);
157     if (action.isEnabled())
158       menuMan.add(action);
159         
160     menuMan.add(new Separator());
161     
162     action = getActionRegistry().getAction(GEFActionConstants.ALIGN_TOP);
163     if (action.isEnabled())
164       menuMan.add(action);
165
166     action = getActionRegistry().getAction(GEFActionConstants.ALIGN_MIDDLE);
167     if (action.isEnabled())
168       menuMan.add(action);
169
170     action = getActionRegistry().getAction(GEFActionConstants.ALIGN_BOTTOM);
171     if (action.isEnabled())
172       menuMan.add(action);
173   }
174   
175 }
176
Popular Tags