/******************************************************************************* * 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 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 add command for pageflow editpart * */ public class AddNodeCommand extends Command { /** Pageflow node including Page, action, begin, end. */ private PageflowNode child; /** parent Pageflow */ private Pageflow parent; /** index of pageflow nodes */ private int index = -1; /** * Default constructor */ public AddNodeCommand() { // Pageflow.Commands.AddNodeCommand.Label = add super(PageflowMessages.Pageflow_Commands_AddNodeCommand_Label); } /* * (non-Javadoc) * * @see Command#execute() */ public void execute() { if (index < 0) { parent.getNodes().add(child); } else { parent.getNodes().add(index, child); } } /* * (non-Javadoc) * * @see Command#redo() */ public void redo() { if (index < 0) { parent.getNodes().add(child); } else { parent.getNodes().add(index, child); } } /* * (non-Javadoc) * * @see Command#undo() */ public void undo() { parent.getNodes().remove(child); } /** * get parent pageflow of the node. * @return the parent * */ public Pageflow getParent() { return parent; } /** * Set the child pageflow node * * @param subpart - * child pageflow node */ public void setChild(PageflowNode subpart) { child = subpart; } /** * Creates a new AbstractEditorPage instance. * * @param i - * index of pageflow node */ public void setIndex(int i) { index = i; } /** * Set the new parent pageflow * * @param newParent - * parent pageflow */ public void setParent(Pageflow newParent) { parent = newParent; } }