| /******************************************************************************* |
| * Copyright (c) 2004, 2005 Sybase, Inc. and others. |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are 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 |
| * |
| * Contributors: |
| * Sybase, Inc. - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.jst.jsf.facesconfig.ui.pageflow; |
| |
| import org.eclipse.gef.ContextMenuProvider; |
| import org.eclipse.gef.EditPartViewer; |
| import org.eclipse.gef.ui.actions.ActionRegistry; |
| import org.eclipse.gef.ui.actions.GEFActionConstants; |
| import org.eclipse.jface.action.IAction; |
| import org.eclipse.jface.action.IMenuManager; |
| import org.eclipse.jface.action.MenuManager; |
| import org.eclipse.jst.jsf.facesconfig.ui.FacesConfigEditor; |
| import org.eclipse.jst.jsf.facesconfig.ui.pageflow.action.ShowPropertyViewAction; |
| import org.eclipse.ui.actions.ActionFactory; |
| |
| /** |
| * This is the context menu provider for pageflow editor. |
| * |
| */ |
| public class PageflowEditorContextMenuProvider extends ContextMenuProvider { |
| /** the action registry */ |
| private final ActionRegistry actionRegistry; |
| |
| /** |
| * Creates a new PageflowEditorContextMenuProvider instance. |
| * |
| * @param viewer - |
| * the editor viewer |
| * @param actionRegistry - |
| * action registry of the editor |
| */ |
| public PageflowEditorContextMenuProvider(EditPartViewer viewer, |
| ActionRegistry actionRegistry) { |
| super(viewer); |
| |
| this.actionRegistry = actionRegistry; |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see ContextMenuProvider#buildContextMenu(IMenuManager) |
| */ |
| public void buildContextMenu(IMenuManager menuManager) { |
| // add GEF menu groups, such as undo, edit, save, etc. |
| GEFActionConstants.addStandardActionGroups(menuManager); |
| |
| // add typical undo/redo commands |
| appendActionToUndoGroup(menuManager, ActionFactory.UNDO.getId()); |
| appendActionToUndoGroup(menuManager, ActionFactory.REDO.getId()); |
| // add edit commands, including copy, paste, delete |
| appendActionToEditGroup(menuManager, ActionFactory.COPY.getId()); |
| appendActionToEditGroup(menuManager, ActionFactory.PASTE.getId()); |
| appendActionToEditGroup(menuManager, ActionFactory.DELETE.getId()); |
| // Add Open Editor Action |
| appendActionToEditGroup(menuManager, FacesConfigEditor.EDITOR_ID); |
| |
| // append the save submenu |
| appendActionToSaveGroup(menuManager, ActionFactory.SAVE.getId()); |
| |
| // append the alignment submenu, including top, bottom, middle, left, |
| // right and center. |
| appendAlignmentSubmenu(menuManager); |
| |
| appendShowViewSubmenu(menuManager); |
| |
| } |
| |
| /** |
| * Appends the alignment subment. |
| * |
| * @param menuManager |
| * manager of workbench |
| */ |
| private void appendShowViewSubmenu(IMenuManager menuManager) { |
| // Show View Actions |
| MenuManager submenu = new MenuManager( |
| PageflowMessages.Pageflow_Contextmenu_ShowView_Label); |
| |
| IAction action = getActionRegistry().getAction( |
| ShowPropertyViewAction.SHOW_PROPERTY_VIEW); |
| if (null != action && action.isEnabled()) { |
| submenu.add(action); |
| } |
| |
| // action = getActionRegistry().getAction( |
| // ShowPaletteViewAction.SHOW_PALETTE_VIEW); |
| // if (null != action && action.isEnabled()) { |
| // submenu.add(action); |
| // } |
| |
| if (!submenu.isEmpty()) { |
| menuManager.appendToGroup(GEFActionConstants.GROUP_REST, submenu); |
| } |
| } |
| |
| /** |
| * Appends the alignment subment. |
| * |
| * @param menuManager |
| * manager of workbench |
| */ |
| private void appendAlignmentSubmenu(IMenuManager menuManager) { |
| // Alignment Actions |
| MenuManager submenu = new MenuManager( |
| PageflowMessages.Pageflow_Contextmenu_Align_Label); |
| |
| IAction action = getActionRegistry().getAction( |
| GEFActionConstants.ALIGN_LEFT); |
| if (null != action && action.isEnabled()) { |
| submenu.add(action); |
| } |
| |
| action = getActionRegistry().getAction(GEFActionConstants.ALIGN_CENTER); |
| if (null != action && action.isEnabled()) { |
| submenu.add(action); |
| } |
| |
| action = getActionRegistry().getAction(GEFActionConstants.ALIGN_RIGHT); |
| if (null != action && action.isEnabled()) { |
| submenu.add(action); |
| } |
| |
| action = getActionRegistry().getAction(GEFActionConstants.ALIGN_TOP); |
| if (null != action && action.isEnabled()) { |
| submenu.add(action); |
| } |
| |
| action = getActionRegistry().getAction(GEFActionConstants.ALIGN_MIDDLE); |
| if (null != action && action.isEnabled()) { |
| submenu.add(action); |
| } |
| |
| action = getActionRegistry().getAction(GEFActionConstants.ALIGN_BOTTOM); |
| if (null != action && action.isEnabled()) { |
| submenu.add(action); |
| } |
| |
| if (!submenu.isEmpty()) { |
| menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, submenu); |
| } |
| } |
| |
| /** |
| * Returns the action registry. |
| * |
| * @return - the action registry |
| */ |
| protected ActionRegistry getActionRegistry() { |
| return actionRegistry; |
| } |
| |
| /** |
| * Appends the specified action to the specified menu group |
| * |
| * @param menu - |
| * menu manager |
| * @param actionId - |
| * action's ID |
| * @param menuGroup - |
| * menu group name |
| */ |
| // TODO: dead code |
| // private void appendActionToMenu(IMenuManager menu, String actionId, |
| // String menuGroup) { |
| // IAction action = getActionRegistry().getAction(actionId); |
| // if (null != action && action.isEnabled()) { |
| // menu.appendToGroup(menuGroup, action); |
| // } |
| // } |
| |
| /** |
| * Appends the specified action to the 'Undo' menu group |
| * |
| * @param menu - |
| * menu manager |
| * @param actionId - |
| * action's ID |
| */ |
| private void appendActionToUndoGroup(IMenuManager menu, String actionId) { |
| IAction action = getActionRegistry().getAction(actionId); |
| if (null != action && action.isEnabled()) { |
| menu.appendToGroup(GEFActionConstants.GROUP_UNDO, action); |
| } |
| } |
| |
| /** |
| * Appends the specified action to the 'edit' menu group |
| * |
| * @param menu - |
| * menu manager |
| * @param actionId - |
| * action's ID |
| */ |
| private void appendActionToEditGroup(IMenuManager menu, String actionId) { |
| IAction action = getActionRegistry().getAction(actionId); |
| if (null != action && action.isEnabled()) { |
| menu.appendToGroup(GEFActionConstants.GROUP_EDIT, action); |
| } |
| } |
| |
| /** |
| * Appends the specified action to the 'add' menu group |
| * |
| * @param menu - |
| * menu manager |
| * @param actionId - |
| * action's ID |
| */ |
| // TODO: dead code |
| // private void appendActionToAddGroup(IMenuManager menu, String actionId) { |
| // IAction action = getActionRegistry().getAction(actionId); |
| // if (null != action && action.isEnabled()) { |
| // menu.appendToGroup(GEFActionConstants.GROUP_ADD, action); |
| // } |
| // } |
| |
| /** |
| * Appends the specified action to the 'save' menu group |
| * |
| * @param menu - |
| * menu manager |
| * @param actionId - |
| * action's ID |
| */ |
| private void appendActionToSaveGroup(IMenuManager menu, String actionId) { |
| IAction action = getActionRegistry().getAction(actionId); |
| if (null != action && action.isEnabled()) { |
| menu.appendToGroup(GEFActionConstants.GROUP_SAVE, action); |
| } |
| } |
| } |