1 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 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 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 ID_VIEW_MENU = "menu view"; 113 116 public void contributeToMenu(IMenuManager menubar) 117 { 118 super.contributeToMenu(menubar); 119 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 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 [] zoomStrings = new String [] { ZoomManager.FIT_ALL, 166 ZoomManager.FIT_HEIGHT, 167 ZoomManager.FIT_WIDTH }; 168 169 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 190 } 192 193 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 |