blob: 19f07faf58e280bb2aeb6cd65373fd90c19f36bd [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation 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:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.library.edit.command;
import java.util.Collection;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
/**
* This interface class is used to support undo operations in the
* form editors.
*
* @author Phong Nguyen Le
* @since 1.0
*/
public interface IActionManager {
public static final int SET = Notification.SET;
public static final int ADD = Notification.ADD;
public static final int REMOVE = Notification.REMOVE;
public static final int ADD_MANY = Notification.ADD_MANY;
public static final int REMOVE_MANY = Notification.REMOVE_MANY;
/**
* Performs the action as described in parameters
*
* @param actionType
* one of the above defined action constants
* @param object
* the object to perform action upon
* @param feature
* the feature to be modified
* @param value
* the feature value
* @param index
* specify -1 if no index
* @return <code>true</code> if successfull, <code>false</code>
* otherwise
*/
boolean doAction(int actionType, EObject object,
EStructuralFeature feature, Object value, int index);
/**
* Executes the given command
*
* @param cmd
* @return <code>true</code> if successfull, <code>false</code>
* otherwise
*/
boolean execute(IResourceAwareCommand cmd);
void undo();
void redo();
boolean undoAll();
void saveIsDone();
boolean isSaveNeeded();
/**
* Gets resources first modified by this action manager
*/
Collection getModifiedResources();
void dispose();
}