diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/action/AlignmentAction.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/action/AlignmentAction.java | 329 |
1 files changed, 0 insertions, 329 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/action/AlignmentAction.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/action/AlignmentAction.java deleted file mode 100644 index e108d8e55..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/action/AlignmentAction.java +++ /dev/null @@ -1,329 +0,0 @@ -/******************************************************************************* - * 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.action; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.draw2d.PositionConstants; -import org.eclipse.draw2d.geometry.PrecisionRectangle; -import org.eclipse.draw2d.geometry.Rectangle; -import org.eclipse.gef.EditPart; -import org.eclipse.gef.GraphicalEditPart; -import org.eclipse.gef.Request; -import org.eclipse.gef.RequestConstants; -import org.eclipse.gef.commands.Command; -import org.eclipse.gef.commands.CompoundCommand; -import org.eclipse.gef.requests.AlignmentRequest; -import org.eclipse.gef.tools.ToolUtilities; -import org.eclipse.gef.ui.actions.GEFActionConstants; -import org.eclipse.gef.ui.actions.SelectionAction; -import org.eclipse.jst.jsf.facesconfig.ui.EditorMessages; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbenchPart; - -/** - * An improved alignment action to align the selected parts in different action. - * - * @author xgzhang - * @version original version is from GEF - */ -public final class AlignmentAction extends SelectionAction { - - /** - * Indicates that the bottom edges should be aligned. - */ - public static final String ID_ALIGN_BOTTOM = GEFActionConstants.ALIGN_BOTTOM; - - /** - * Indicates that the horizontal centers should be aligned. - */ - public static final String ID_ALIGN_CENTER = GEFActionConstants.ALIGN_CENTER; - - /** - * Indicates that the left edges should be aligned. - */ - public static final String ID_ALIGN_LEFT = GEFActionConstants.ALIGN_LEFT; - - /** - * Indicates that the vertical midpoints should be aligned. - */ - public static final String ID_ALIGN_MIDDLE = GEFActionConstants.ALIGN_MIDDLE; - - /** - * Indicates that the right edges should be aligned. - */ - public static final String ID_ALIGN_RIGHT = GEFActionConstants.ALIGN_RIGHT; - - /** - * Indicates that the top edges should be aligned. - */ - public static final String ID_ALIGN_TOP = GEFActionConstants.ALIGN_TOP; - - private int alignment; - - private List operationSet; - - /** - * @deprecated use AlignmentAction(IWorkbenchPart, int align) - * @param editor - * the editor - * @param align - * the alignment ID - */ - public AlignmentAction(IEditorPart editor, int align) { - this((IWorkbenchPart) editor, align); - } - - /** - * Constructs an AlignmentAction with the given part and alignment ID. The - * alignment ID must by one of: - * <UL> - * <LI>GEFActionConstants.ALIGN_LEFT - * <LI>GEFActionConstants.ALIGN_RIGHT - * <LI>GEFActionConstants.ALIGN_CENTER - * <LI>GEFActionConstants.ALIGN_TOP - * <LI>GEFActionConstants.ALIGN_BOTTOM - * <LI>GEFActionConstants.ALIGN_MIDDLE - * </UL> - * - * @param part - * the workbench part used to obtain context - * @param align - * the aligment ID. - */ - public AlignmentAction(IWorkbenchPart part, int align) { - super(part); - alignment = align; - initUI(); - } - - /** - * Returns the alignment rectangle to which all selected parts should be - * aligned. - * - * @param request - * the alignment Request - * @return the alignment rectangle - */ - protected Rectangle calculateAlignmentRectangle(Request request) { - List editparts = getOperationSet(request); - if (editparts == null || editparts.isEmpty()) { - return null; - } - GraphicalEditPart part = null; - if (alignment == PositionConstants.MIDDLE - || alignment == PositionConstants.CENTER) { - part = (GraphicalEditPart) editparts.get(editparts.size() - 1); - } else { - part = getFitnessPart(editparts); - } - Rectangle rect = new PrecisionRectangle(part.getFigure().getBounds()); - part.getFigure().translateToAbsolute(rect); - return rect; - } - - /** - * get the Fitness part in the four kinds of alignment directions - * - * @param editparts - */ - private GraphicalEditPart getFitnessPart(List editparts) { - if (alignment == PositionConstants.MIDDLE - || alignment == PositionConstants.CENTER) { - return null; - } - - int positionComparor = Integer.MAX_VALUE; - - if (alignment == PositionConstants.LEFT - || alignment == PositionConstants.TOP) { - positionComparor = Integer.MAX_VALUE; - } else if (alignment == PositionConstants.RIGHT - || alignment == PositionConstants.BOTTOM) { - positionComparor = Integer.MIN_VALUE; - } - - GraphicalEditPart fitnessPart = null; - - for (Iterator iter = editparts.iterator(); iter.hasNext();) { - GraphicalEditPart part = (GraphicalEditPart) iter.next(); - Rectangle rectPart = part.getFigure().getBounds(); - switch (alignment) { - case PositionConstants.LEFT: - if (rectPart.getLeft().x < positionComparor) { - fitnessPart = part; - positionComparor = rectPart.getLeft().x; - } - break; - - case PositionConstants.RIGHT: - if (rectPart.getRight().x > positionComparor) { - fitnessPart = part; - positionComparor = rectPart.getRight().x; - } - break; - case PositionConstants.TOP: - if (rectPart.getTop().y < positionComparor) { - fitnessPart = part; - positionComparor = rectPart.getTop().y; - } - break; - case PositionConstants.BOTTOM: - if (rectPart.getBottom().y > positionComparor) { - fitnessPart = part; - positionComparor = rectPart.getBottom().y; - } - break; - } - } - - return fitnessPart; - } - - /** - * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled() - */ - protected boolean calculateEnabled() { - operationSet = null; - Command cmd = createAlignmentCommand(); - if (cmd == null) { - return false; - } - return cmd.canExecute(); - } - - private Command createAlignmentCommand() { - AlignmentRequest request = new AlignmentRequest( - RequestConstants.REQ_ALIGN); - request.setAlignmentRectangle(calculateAlignmentRectangle(request)); - request.setAlignment(alignment); - List editparts = getOperationSet(request); - if (editparts.size() < 2) { - return null; - } - - CompoundCommand command = new CompoundCommand(); - command.setDebugLabel(getText()); - for (int i = 0; i < editparts.size(); i++) { - EditPart editpart = (EditPart) editparts.get(i); - command.add(editpart.getCommand(request)); - } - return command; - } - - /** - * @see org.eclipse.gef.Disposable#dispose() - */ - public void dispose() { - operationSet = Collections.EMPTY_LIST; - super.dispose(); - } - - /** - * Returns the list of editparts which will participate in alignment. - * - * @param request - * the alignment request - * @return the list of parts which will be aligned - */ - protected List getOperationSet(Request request) { - if (operationSet != null) { - return operationSet; - } - List editparts = new ArrayList(getSelectedObjects()); - if (editparts.isEmpty() - || !(editparts.get(0) instanceof GraphicalEditPart)) { - return Collections.EMPTY_LIST; - } - Object primary = editparts.get(editparts.size() - 1); - editparts = ToolUtilities.getSelectionWithoutDependants(editparts); - ToolUtilities.filterEditPartsUnderstanding(editparts, request); - if (editparts.size() < 2 || !editparts.contains(primary)) { - return Collections.EMPTY_LIST; - } - EditPart parent = ((EditPart) editparts.get(0)).getParent(); - for (int i = 1; i < editparts.size(); i++) { - EditPart part = (EditPart) editparts.get(i); - if (part.getParent() != parent) { - return Collections.EMPTY_LIST; - } - } - return editparts; - } - - /** - * Initializes the actions UI presentation. - */ - protected void initUI() { - switch (alignment) { - case PositionConstants.LEFT: - setId(GEFActionConstants.ALIGN_LEFT); - setText(EditorMessages.AlignmentAction_AlignLeftAction_Label); - setToolTipText(EditorMessages.AlignmentAction_AlignLeftAction_Tooltip); - setImageDescriptor(InternalImages.DESC_HORZ_ALIGN_LEFT); - setDisabledImageDescriptor(InternalImages.DESC_HORZ_ALIGN_LEFT_DIS); - break; - - case PositionConstants.RIGHT: - setId(GEFActionConstants.ALIGN_RIGHT); - setText(EditorMessages.AlignmentAction_AlignRightAction_Label); - setToolTipText(EditorMessages.AlignmentAction_AlignRightAction_Tooltip); - setImageDescriptor(InternalImages.DESC_HORZ_ALIGN_RIGHT); - setDisabledImageDescriptor(InternalImages.DESC_HORZ_ALIGN_RIGHT_DIS); - break; - - case PositionConstants.TOP: - setId(GEFActionConstants.ALIGN_TOP); - setText(EditorMessages.AlignmentAction_AlignTopAction_Label); - setToolTipText(EditorMessages.AlignmentAction_AlignTopAction_Tooltip); - setImageDescriptor(InternalImages.DESC_VERT_ALIGN_TOP); - setDisabledImageDescriptor(InternalImages.DESC_VERT_ALIGN_TOP_DIS); - break; - - case PositionConstants.BOTTOM: - setId(GEFActionConstants.ALIGN_BOTTOM); - setText(EditorMessages.AlignmentAction_AlignBottomAction_Label); - setToolTipText(EditorMessages.AlignmentAction_AlignBottomAction_Tooltip); - setImageDescriptor(InternalImages.DESC_VERT_ALIGN_BOTTOM); - setDisabledImageDescriptor(InternalImages.DESC_VERT_ALIGN_BOTTOM_DIS); - break; - - case PositionConstants.CENTER: - setId(GEFActionConstants.ALIGN_CENTER); - setText(EditorMessages.AlignmentAction_AlignCenterAction_Label); - setToolTipText(EditorMessages.AlignmentAction_AlignCenterAction_Tooltip); - setImageDescriptor(InternalImages.DESC_HORZ_ALIGN_CENTER); - setDisabledImageDescriptor(InternalImages.DESC_HORZ_ALIGN_CENTER_DIS); - break; - - case PositionConstants.MIDDLE: - setId(GEFActionConstants.ALIGN_MIDDLE); - setText(EditorMessages.AlignmentAction_AlignMiddleAction_Label); - setToolTipText(EditorMessages.AlignmentAction_AlignMiddleAction_Tooltip); - setImageDescriptor(InternalImages.DESC_VERT_ALIGN_MIDDLE); - setDisabledImageDescriptor(InternalImages.DESC_VERT_ALIGN_MIDDLE_DIS); - break; - } - } - - /** - * @see org.eclipse.jface.action.IAction#run() - */ - public void run() { - operationSet = null; - execute(createAlignmentCommand()); - } - -}
\ No newline at end of file |