| /******************************************************************************* |
| * 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.command; |
| |
| import java.util.List; |
| |
| import org.eclipse.draw2d.geometry.Point; |
| import org.eclipse.gef.commands.Command; |
| import org.eclipse.jst.jsf.facesconfig.ui.pageflow.PageflowMessages; |
| import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow; |
| import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode; |
| |
| /** |
| * This is the orphan child command for pageflow container |
| * |
| */ |
| public class OrphanChildCommand extends Command { |
| |
| /** old location of pageflow node */ |
| private Point oldLocation; |
| |
| /** the parent pageflow */ |
| private Pageflow pageflow; |
| |
| /** the child pageflow node */ |
| private PageflowNode child; |
| |
| /** the index of pageflow nodes */ |
| private int index; |
| |
| /** |
| * Default constructor |
| */ |
| public OrphanChildCommand() { |
| // Pageflow.Commands.OrphanChildCommand.Label = Orphan Child |
| super(PageflowMessages.Pageflow_Commands_OrphanChildCommand_Label); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see Command#execute() |
| */ |
| public void execute() { |
| List children = pageflow.getNodes(); |
| index = children.indexOf(child); |
| oldLocation = new Point(child.getX(), child.getY()); |
| pageflow.getNodes().remove(child); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see Command#redo() |
| */ |
| public void redo() { |
| pageflow.getNodes().remove(child); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see Command#undo() |
| */ |
| public void undo() { |
| child.setX(oldLocation.x); |
| child.setY(oldLocation.y); |
| pageflow.getNodes().add(index, child); |
| } |
| |
| /** |
| * set the child pageflow node |
| * |
| * @param child - |
| * child pageflow node |
| */ |
| public void setChild(PageflowNode child) { |
| this.child = child; |
| } |
| |
| /** |
| * set the parent pageflow |
| * |
| * @param parent - |
| * parent pageflow |
| */ |
| public void setParent(Pageflow parent) { |
| pageflow = parent; |
| } |
| |
| } |