/******************************************************************************* * 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.draw2d.PositionConstants; import org.eclipse.gef.editparts.ZoomManager; import org.eclipse.gef.ui.actions.ActionBarContributor; import org.eclipse.gef.ui.actions.AlignmentRetargetAction; import org.eclipse.gef.ui.actions.DeleteRetargetAction; 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.IMenuManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jst.jsf.facesconfig.ui.INestedActionContributor; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.actions.ActionFactory; /** * The action bar contributor for the page flow editor * */ public class PageflowActionBarContributor extends ActionBarContributor implements INestedActionContributor { IEditorPart activeEditor; /* * (non-Javadoc) * * @see ActionBarContributor#buildActions() */ protected void buildActions() { addRetargetAction(new UndoRetargetAction()); addRetargetAction(new RedoRetargetAction()); addRetargetAction(new DeleteRetargetAction()); addRetargetAction(new ZoomInRetargetAction()); addRetargetAction(new ZoomOutRetargetAction()); addRetargetAction(new AlignmentRetargetAction(PositionConstants.LEFT)); addRetargetAction(new AlignmentRetargetAction(PositionConstants.CENTER)); addRetargetAction(new AlignmentRetargetAction(PositionConstants.RIGHT)); addRetargetAction(new AlignmentRetargetAction(PositionConstants.TOP)); addRetargetAction(new AlignmentRetargetAction(PositionConstants.MIDDLE)); addRetargetAction(new AlignmentRetargetAction(PositionConstants.BOTTOM)); } /* * (non-Javadoc) * * @see ActionBarContributor#declareGlobalActionKeys() */ public void declareGlobalActionKeys() { // do nothing } /** * Update the action keys */ public void updateActionKeys() { declareGlobalActionKeys(); } /* * (non-Javadoc) * * @see EditorActionBarContributor#contributeToToolBar(IToolBarManager) */ public void contributeToToolBar(IToolBarManager tbm) { tbm.add(getAction(ActionFactory.UNDO.getId())); tbm.add(getAction(ActionFactory.REDO.getId())); tbm.add(new Separator()); tbm.add(getAction(GEFActionConstants.ALIGN_LEFT)); tbm.add(getAction(GEFActionConstants.ALIGN_CENTER)); tbm.add(getAction(GEFActionConstants.ALIGN_RIGHT)); tbm.add(new Separator()); tbm.add(getAction(GEFActionConstants.ALIGN_TOP)); tbm.add(getAction(GEFActionConstants.ALIGN_MIDDLE)); tbm.add(getAction(GEFActionConstants.ALIGN_BOTTOM)); tbm.add(new Separator()); String[] zoomStrings = new String[] { ZoomManager.FIT_ALL, ZoomManager.FIT_HEIGHT, ZoomManager.FIT_WIDTH }; tbm.add(new ZoomComboContributionItem(getPage(), zoomStrings)); } /* * (non-Javadoc) * * @see EditorActionBarContributor#contributeToMenu(IMenuManager) */ public void contributeToMenu(IMenuManager menubar) { super.contributeToMenu(menubar); MenuManager viewMenu = new MenuManager("View"); //$NON-NLS-1$ viewMenu.add(getAction(GEFActionConstants.ZOOM_IN)); viewMenu.add(getAction(GEFActionConstants.ZOOM_OUT)); menubar.insertAfter(IWorkbenchActionConstants.M_EDIT, viewMenu); } public void setActiveEditor(IEditorPart editor) { if (editor instanceof PageflowEditor) { activeEditor = editor; // updateActionKeys(); super.setActiveEditor(editor); } } public void update() { if (activeEditor != null) { ((PageflowEditor) activeEditor).updateActions(); } } }