/******************************************************************************* * Copyright (c) 2007-2009 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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 * * Contributor: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.hibernate.ui.diagram.editors; import org.eclipse.gef.editparts.ZoomManager; import org.eclipse.gef.internal.GEFMessages; import org.eclipse.gef.ui.actions.ActionBarContributor; import org.eclipse.gef.ui.actions.GEFActionConstants; import org.eclipse.gef.ui.actions.RedoRetargetAction; import org.eclipse.gef.ui.actions.UndoRetargetAction; import org.eclipse.gef.ui.actions.ZoomComboContributionItem; import org.eclipse.gef.ui.actions.ZoomInRetargetAction; import org.eclipse.gef.ui.actions.ZoomOutRetargetAction; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.actions.ActionFactory; import org.eclipse.ui.actions.RetargetAction; import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction; import org.jboss.tools.hibernate.ui.diagram.DiagramViewerMessages; import org.jboss.tools.hibernate.ui.diagram.UiPlugin; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ActionMenu; import org.jboss.tools.hibernate.ui.diagram.editors.actions.AutoLayoutAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ConnectionRouterFanAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ConnectionRouterManhattanAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ShapeCollapseAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ShapeExpandAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ShapeHideAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ShapeShowAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ToggleAssociationAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ToggleClassMappingAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ToggleConnectionsAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.DiagramBaseRetargetAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ToggleForeignKeyConstraintAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.TogglePropertyMappingAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ToggleShapeExpandStateAction; import org.jboss.tools.hibernate.ui.diagram.editors.actions.ToggleShapeVisibleStateAction; import org.jboss.tools.hibernate.ui.view.ImageBundle; @SuppressWarnings("restriction") public class DiagramActionBarContributor extends ActionBarContributor { /** * @see org.eclipse.gef.ui.actions.ActionBarContributor#buildActions() */ protected void buildActions() { IWorkbenchAction workbenchAction = ActionFactory.REFRESH.create(getPage().getWorkbenchWindow()); workbenchAction.setImageDescriptor(UiPlugin.getImageDescriptor2(ImageBundle.getString("Explorer.refreshOrmGef"))); //$NON-NLS-1$ workbenchAction.setToolTipText(DiagramViewerMessages.EditorActionContributor_refresh_visual_mapping); addAction(workbenchAction); // DiagramBaseRetargetAction diagramAction; Action[] act; // diagramAction = new DiagramBaseRetargetAction( AutoLayoutAction.ACTION_ID, DiagramViewerMessages.AutoLayoutAction_auto_layout, DiagramViewerMessages.AutoLayoutAction_auto_layout, AutoLayoutAction.img); addRetargetAction(diagramAction); // DiagramBaseRetargetAction diagramToggleConnectionsAction = new DiagramBaseRetargetAction( ToggleConnectionsAction.ACTION_ID, DiagramViewerMessages.ToggleConnectionsAction_toggle_connections, DiagramViewerMessages.ToggleConnectionsAction_toggle_connections, ToggleConnectionsAction.img); addRetargetAction(diagramToggleConnectionsAction); // DiagramBaseRetargetAction diagramToggleExpandStateAction = new DiagramBaseRetargetAction( ToggleShapeExpandStateAction.ACTION_ID, DiagramViewerMessages.ToggleShapeExpandStateAction_toggle_expand_state, DiagramViewerMessages.ToggleShapeExpandStateAction_toggle_expand_state_tooltip, ToggleShapeExpandStateAction.img); addRetargetAction(diagramToggleExpandStateAction); // diagramAction = new DiagramBaseRetargetAction( ShapeExpandAction.ACTION_ID, DiagramViewerMessages.ShapeExpandAction_shape_expand, DiagramViewerMessages.ShapeExpandAction_shape_expand_tooltip, ShapeExpandAction.img); addRetargetAction(diagramAction); // diagramAction = new DiagramBaseRetargetAction( ShapeCollapseAction.ACTION_ID, DiagramViewerMessages.ShapeCollapseAction_shape_collapse, DiagramViewerMessages.ShapeCollapseAction_shape_collapse_tooltip, ShapeCollapseAction.img); addRetargetAction(diagramAction); // DiagramBaseRetargetAction diagramToggleVisibleStateAction = new DiagramBaseRetargetAction( ToggleShapeVisibleStateAction.ACTION_ID, DiagramViewerMessages.ToggleShapeVisibleStateAction_toggle_visible_state, DiagramViewerMessages.ToggleShapeVisibleStateAction_toggle_visible_state_tooltip, ToggleShapeVisibleStateAction.img); addRetargetAction(diagramToggleVisibleStateAction); // diagramAction = new DiagramBaseRetargetAction( ShapeHideAction.ACTION_ID, DiagramViewerMessages.ShapeHideAction_shape_hide, DiagramViewerMessages.ShapeHideAction_shape_hide_tooltip, ShapeHideAction.img); addRetargetAction(diagramAction); // diagramAction = new DiagramBaseRetargetAction( ShapeShowAction.ACTION_ID, DiagramViewerMessages.ShapeShowAction_shape_show, DiagramViewerMessages.ShapeShowAction_shape_show_tooltip, ShapeShowAction.img); addRetargetAction(diagramAction); // diagramAction = new DiagramBaseRetargetAction( ToggleClassMappingAction.ACTION_ID, DiagramViewerMessages.ToggleClassMappingAction_class_mappings, DiagramViewerMessages.ToggleClassMappingAction_class_mappings, ToggleClassMappingAction.img, IAction.AS_CHECK_BOX); addRetargetAction(diagramAction); // diagramAction = new DiagramBaseRetargetAction( TogglePropertyMappingAction.ACTION_ID, DiagramViewerMessages.TogglePropertyMappingAction_property_mappings, DiagramViewerMessages.TogglePropertyMappingAction_property_mappings, TogglePropertyMappingAction.img, IAction.AS_CHECK_BOX); addRetargetAction(diagramAction); // diagramAction = new DiagramBaseRetargetAction( ToggleAssociationAction.ACTION_ID, DiagramViewerMessages.ToggleAssociationAction_associations, DiagramViewerMessages.ToggleAssociationAction_associations, ToggleAssociationAction.img, IAction.AS_CHECK_BOX); addRetargetAction(diagramAction); // diagramAction = new DiagramBaseRetargetAction( ToggleForeignKeyConstraintAction.ACTION_ID, DiagramViewerMessages.ToggleForeignKeyConstraintAction_foreign_key_constraints, DiagramViewerMessages.ToggleForeignKeyConstraintAction_foreign_key_constraints, ToggleForeignKeyConstraintAction.img, IAction.AS_CHECK_BOX); addRetargetAction(diagramAction); // diagramAction = new DiagramBaseRetargetAction( ConnectionRouterManhattanAction.ACTION_ID, DiagramViewerMessages.ConnectionRouterManhattanAction_select_manhattan_connection_router, DiagramViewerMessages.ConnectionRouterManhattanAction_select_manhattan_connection_router, ConnectionRouterManhattanAction.img, IAction.AS_RADIO_BUTTON); addRetargetAction(diagramAction); // diagramAction = new DiagramBaseRetargetAction( ConnectionRouterFanAction.ACTION_ID, DiagramViewerMessages.ConnectionRouterFanAction_select_fan_connection_router, DiagramViewerMessages.ConnectionRouterFanAction_select_fan_connection_router, ConnectionRouterFanAction.img, IAction.AS_RADIO_BUTTON); addRetargetAction(diagramAction); // act = new Action[4]; act[0] = (Action)getAction(TogglePropertyMappingAction.ACTION_ID); act[1] = (Action)getAction(ToggleClassMappingAction.ACTION_ID); act[2] = (Action)getAction(ToggleAssociationAction.ACTION_ID); act[3] = (Action)getAction(ToggleForeignKeyConstraintAction.ACTION_ID); //act[4] = null; //act[5] = (Action)getAction(ConnectionRouterManhattanAction.ACTION_ID); //act[6] = (Action)getAction(ConnectionRouterFanAction.ACTION_ID); diagramToggleConnectionsAction.setMenuCreator(new ActionMenu(act)); // //act = new Action[2]; //act[0] = (Action)getAction(ShapeExpandAction.ACTION_ID); //act[1] = (Action)getAction(ShapeCollapseAction.ACTION_ID); //diagramToggleExpandStateAction.setMenuCreator(new ActionMenu(act)); // //act = new Action[2]; //act[0] = (Action)getAction(ShapeShowAction.ACTION_ID); //act[1] = (Action)getAction(ShapeHideAction.ACTION_ID); //diagramToggleVisibleStateAction.setMenuCreator(new ActionMenu(act)); // addRetargetAction(new UndoRetargetAction()); addRetargetAction(new RedoRetargetAction()); addRetargetAction(new ZoomInRetargetAction()); addRetargetAction(new ZoomOutRetargetAction()); addRetargetAction(new RetargetAction( GEFActionConstants.TOGGLE_RULER_VISIBILITY, GEFMessages.ToggleRulerVisibility_Label, IAction.AS_CHECK_BOX)); addRetargetAction(new RetargetAction( GEFActionConstants.TOGGLE_SNAP_TO_GEOMETRY, GEFMessages.ToggleSnapToGeometry_Label, IAction.AS_CHECK_BOX)); addRetargetAction(new RetargetAction(GEFActionConstants.TOGGLE_GRID_VISIBILITY, GEFMessages.ToggleGrid_Label, IAction.AS_CHECK_BOX)); } /** * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToToolBar(IToolBarManager) */ public void contributeToToolBar(IToolBarManager tbm) { tbm.add(getAction(ActionFactory.REFRESH.getId())); tbm.add(new Separator()); //tbm.add(getAction(ActionFactory.UNDO.getId())); //tbm.add(getAction(ActionFactory.REDO.getId())); //tbm.add(new Separator()); //tbm.add(getAction(GEFActionConstants.ZOOM_IN)); //tbm.add(getAction(GEFActionConstants.ZOOM_OUT)); String[] zoomStrings = new String[] { ZoomManager.FIT_ALL, ZoomManager.FIT_HEIGHT, ZoomManager.FIT_WIDTH }; tbm.add(new ZoomComboContributionItem(getPage(), zoomStrings)); tbm.add(new Separator()); tbm.add(getAction(AutoLayoutAction.ACTION_ID)); tbm.add(new Separator()); tbm.add(getAction(ToggleConnectionsAction.ACTION_ID)); tbm.add(getAction(ToggleShapeExpandStateAction.ACTION_ID)); tbm.add(getAction(ToggleShapeVisibleStateAction.ACTION_ID)); } /** * @see org.eclipse.gef.ui.actions.ActionBarContributor#declareGlobalActionKeys() */ protected void declareGlobalActionKeys() { addGlobalActionKey(ActionFactory.PRINT.getId()); addGlobalActionKey(ActionFactory.SELECT_ALL.getId()); } /** * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToMenu(IMenuManager) */ public void contributeToMenu(IMenuManager menubar) { super.contributeToMenu(menubar); MenuManager viewMenu = new MenuManager(DiagramViewerMessages.ViewMenu_label_text); viewMenu.add(getAction(GEFActionConstants.ZOOM_IN)); viewMenu.add(getAction(GEFActionConstants.ZOOM_OUT)); viewMenu.add(new Separator()); viewMenu.add(getAction(GEFActionConstants.TOGGLE_RULER_VISIBILITY)); viewMenu.add(getAction(GEFActionConstants.TOGGLE_GRID_VISIBILITY)); viewMenu.add(getAction(GEFActionConstants.TOGGLE_SNAP_TO_GEOMETRY)); viewMenu.add(new Separator()); viewMenu.add(getAction(ConnectionRouterManhattanAction.ACTION_ID)); viewMenu.add(getAction(ConnectionRouterFanAction.ACTION_ID)); menubar.insertAfter(IWorkbenchActionConstants.M_EDIT, viewMenu); } }