KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nightlabs > editor2d > EditorActionBarContributor


1 /* *****************************************************************************
2  * NightLabs Editor2D - Graphical editor framework *
3  * Copyright (C) 2004-2005 NightLabs - http://NightLabs.org *
4  * Project author: Daniel Mazurek <Daniel.Mazurek [at] nightlabs [dot] org> *
5  * *
6  * This library is free software; you can redistribute it and/or *
7  * modify it under the terms of the GNU Lesser General Public *
8  * License as published by the Free Software Foundation; either *
9  * version 2.1 of the License, or (at your option) any later version. *
10  * *
11  * This library is distributed in the hope that it will be useful, *
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
14  * Lesser General Public License for more details. *
15  * *
16  * You should have received a copy of the GNU Lesser General Public *
17  * License along with this library; if not, write to the *
18  * Free Software Foundation, Inc., *
19  * 51 Franklin St, Fifth Floor, *
20  * Boston, MA 02110-1301 USA *
21  * *
22  * Or get it online : *
23  * http://www.gnu.org/copyleft/lesser.html *
24  * *
25  * *
26  ******************************************************************************/

27
28 package org.nightlabs.editor2d;
29
30 import org.eclipse.draw2d.PositionConstants;
31 import org.eclipse.gef.editparts.ZoomManager;
32 import org.eclipse.gef.internal.GEFMessages;
33 import org.eclipse.gef.ui.actions.ActionBarContributor;
34 import org.eclipse.gef.ui.actions.AlignmentRetargetAction;
35 import org.eclipse.gef.ui.actions.DeleteRetargetAction;
36 import org.eclipse.gef.ui.actions.GEFActionConstants;
37 import org.eclipse.gef.ui.actions.MatchHeightRetargetAction;
38 import org.eclipse.gef.ui.actions.MatchWidthRetargetAction;
39 import org.eclipse.gef.ui.actions.RedoRetargetAction;
40 import org.eclipse.gef.ui.actions.UndoRetargetAction;
41 import org.eclipse.gef.ui.actions.ZoomInRetargetAction;
42 import org.eclipse.gef.ui.actions.ZoomOutRetargetAction;
43 import org.eclipse.jface.action.IAction;
44 import org.eclipse.jface.action.IMenuManager;
45 import org.eclipse.jface.action.IToolBarManager;
46 import org.eclipse.jface.action.MenuManager;
47 import org.eclipse.jface.action.Separator;
48 import org.eclipse.ui.IWorkbenchActionConstants;
49 import org.eclipse.ui.actions.ActionFactory;
50 import org.eclipse.ui.actions.RetargetAction;
51 import org.nightlabs.base.resource.SharedImages;
52 import org.nightlabs.editor2d.actions.preferences.ShowFigureToolTipAction;
53 import org.nightlabs.editor2d.actions.preferences.ShowStatusLineAction;
54 import org.nightlabs.editor2d.actions.zoom.ZoomAllAction;
55 import org.nightlabs.editor2d.actions.zoom.ZoomAllRetargetAction;
56 import org.nightlabs.editor2d.actions.zoom.ZoomSelectionAction;
57 import org.nightlabs.editor2d.actions.zoom.ZoomSelectionRetargetSelection;
58 import org.nightlabs.editor2d.custom.EditorZoomComboContributionItem;
59 import org.nightlabs.editor2d.render.RenderModeManager;
60 import org.nightlabs.editor2d.viewer.action.RenderModeContributionItem;
61 import org.nightlabs.editor2d.viewer.render.RendererRegistry;
62
63
64 public class EditorActionBarContributor
65 extends ActionBarContributor
66 {
67
68   /* (non-Javadoc)
69    * @see org.eclipse.gef.ui.actions.ActionBarContributor#buildActions()
70    */

71   protected void buildActions()
72   {
73     addRetargetAction(new UndoRetargetAction());
74     addRetargetAction(new RedoRetargetAction());
75     addRetargetAction(new DeleteRetargetAction());
76         
77     addRetargetAction(new AlignmentRetargetAction(PositionConstants.LEFT));
78     addRetargetAction(new AlignmentRetargetAction(PositionConstants.CENTER));
79     addRetargetAction(new AlignmentRetargetAction(PositionConstants.RIGHT));
80     addRetargetAction(new AlignmentRetargetAction(PositionConstants.TOP));
81     addRetargetAction(new AlignmentRetargetAction(PositionConstants.MIDDLE));
82     addRetargetAction(new AlignmentRetargetAction(PositionConstants.BOTTOM));
83         
84     addRetargetAction(new MatchWidthRetargetAction());
85     addRetargetAction(new MatchHeightRetargetAction());
86     
87     addRetargetAction(new RetargetAction(
88             GEFActionConstants.TOGGLE_RULER_VISIBILITY,
89             GEFMessages.ToggleRulerVisibility_Label, IAction.AS_CHECK_BOX));
90     
91     addRetargetAction(new RetargetAction(
92             GEFActionConstants.TOGGLE_SNAP_TO_GEOMETRY,
93             GEFMessages.ToggleSnapToGeometry_Label, IAction.AS_CHECK_BOX));
94
95     addRetargetAction(new RetargetAction(GEFActionConstants.TOGGLE_GRID_VISIBILITY,
96             GEFMessages.ToggleGrid_Label, IAction.AS_CHECK_BOX));
97
98     addRetargetAction(new ZoomInRetargetAction());
99     addRetargetAction(new ZoomOutRetargetAction());
100     addRetargetAction(new ZoomAllRetargetAction());
101     addRetargetAction(new ZoomSelectionRetargetSelection());
102     
103 // addRetargetAction(new DirectEditRetargetAction());
104
// addRetargetAction(new ViewerRetargetAction());
105

106     addRetargetAction(new RetargetAction(ShowFigureToolTipAction.ID,
107             EditorPlugin.getResourceString("action.showFigureToolTip.text"), IAction.AS_CHECK_BOX));
108     addRetargetAction(new RetargetAction(ShowStatusLineAction.ID,
109             EditorPlugin.getResourceString("action.statusLine.text"), IAction.AS_CHECK_BOX));
110   }
111
112   public static final String JavaDoc ID_VIEW_MENU = "menu view";
113   /**
114    * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToMenu(IMenuManager)
115    */

116   public void contributeToMenu(IMenuManager menubar)
117   {
118     super.contributeToMenu(menubar);
119 // IMenuManager fileMenu = (IMenuManager) menubar.find(IWorkbenchActionConstants.M_FILE);
120
MenuManager viewMenu = new MenuManager(EditorPlugin.getResourceString("menu.view"), ID_VIEW_MENU);
121     viewMenu.add(getAction(GEFActionConstants.ZOOM_IN));
122     viewMenu.add(getAction(GEFActionConstants.ZOOM_OUT));
123     
124     viewMenu.add(new Separator());
125     viewMenu.add(getAction(GEFActionConstants.TOGGLE_RULER_VISIBILITY));
126     viewMenu.add(getAction(GEFActionConstants.TOGGLE_GRID_VISIBILITY));
127     viewMenu.add(getAction(GEFActionConstants.TOGGLE_SNAP_TO_GEOMETRY));
128     
129     viewMenu.add(new Separator());
130     viewMenu.add(getAction(GEFActionConstants.MATCH_WIDTH));
131     viewMenu.add(getAction(GEFActionConstants.MATCH_HEIGHT));
132     
133     viewMenu.add(new Separator());
134     viewMenu.add(getAction(ShowFigureToolTipAction.ID));
135     viewMenu.add(getAction(ShowStatusLineAction.ID));
136     
137     menubar.insertAfter(IWorkbenchActionConstants.M_FILE, viewMenu);
138   }
139     
140   /**
141    * Add actions to the given toolbar.
142    * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToToolBar(org.eclipse.jface.action.IToolBarManager)
143    */

144   public void contributeToToolBar(IToolBarManager tbm)
145   {
146     super.contributeToToolBar(tbm);
147     tbm.add(getAction(ActionFactory.UNDO.getId()));
148     tbm.add(getAction(ActionFactory.REDO.getId()));
149             
150     tbm.add(new Separator());
151     tbm.add(getAction(GEFActionConstants.ALIGN_LEFT));
152     tbm.add(getAction(GEFActionConstants.ALIGN_CENTER));
153     tbm.add(getAction(GEFActionConstants.ALIGN_RIGHT));
154     
155     tbm.add(new Separator());
156     tbm.add(getAction(GEFActionConstants.ALIGN_TOP));
157     tbm.add(getAction(GEFActionConstants.ALIGN_MIDDLE));
158     tbm.add(getAction(GEFActionConstants.ALIGN_BOTTOM));
159     
160     tbm.add(new Separator());
161     tbm.add(getAction(GEFActionConstants.MATCH_WIDTH));
162     tbm.add(getAction(GEFActionConstants.MATCH_HEIGHT));
163     
164     tbm.add(new Separator());
165     String JavaDoc[] zoomStrings = new String JavaDoc[] { ZoomManager.FIT_ALL,
166                                             ZoomManager.FIT_HEIGHT,
167                                             ZoomManager.FIT_WIDTH };
168         
169 // tbm.add(new ZoomComboContributionItem(getPage(), zoomStrings));
170
tbm.add(new EditorZoomComboContributionItem(getPage(), zoomStrings));
171
172     IAction zoomInAction = getAction(GEFActionConstants.ZOOM_IN);
173     zoomInAction.setImageDescriptor(SharedImages.getSharedImageDescriptor(
174             EditorPlugin.getDefault(), EditorActionBarContributor.class, "ZoomIn"));
175     tbm.add(zoomInAction);
176
177     IAction zoomOutAction = getAction(GEFActionConstants.ZOOM_OUT);
178     zoomOutAction.setImageDescriptor(SharedImages.getSharedImageDescriptor(
179             EditorPlugin.getDefault(), EditorActionBarContributor.class, "ZoomOut"));
180     tbm.add(zoomOutAction);
181     
182     tbm.add(getAction(ZoomAllAction.ID));
183     tbm.add(getAction(ZoomSelectionAction.ID));
184     
185     RenderModeManager renderMan = RendererRegistry.sharedInstance().getRenderModeManager();
186     if (renderMan.getRenderModes().size() > 1)
187         tbm.add(new RenderModeContributionItem(getPage()));
188 // tbm.add(new RenderModeContributionItem(renderMan));
189

190 // tbm.add(getAction(ViewerAction.ID));
191
}
192     
193   /* (non-Javadoc)
194    * @see org.eclipse.gef.ui.actions.ActionBarContributor#declareGlobalActionKeys()
195    */

196   protected void declareGlobalActionKeys()
197   {
198     addGlobalActionKey(ActionFactory.PRINT.getId());
199     addGlobalActionKey(ActionFactory.SELECT_ALL.getId());
200     addGlobalActionKey(ActionFactory.PASTE.getId());
201     addGlobalActionKey(ActionFactory.COPY.getId());
202   }
203
204 }
205
Popular Tags