package net.ms.designer.editors.workflow.commands;
import net.ms.designer.editors.workflow.models.Wire;
import net.ms.designer.editors.workflow.models.WorkflowBaseActivity;
import net.ms.designer.editors.workflow.models.WorkflowSubPart;
import org.eclipse.gef.commands.Command;
public class DeleteWireCommand extends Command
{
WorkflowSubPart source;
WorkflowSubPart target;
Wire connection;
//Setters
public void setConnection(Wire connection)
{
this.connection = connection;
}
public void setSource(WorkflowSubPart source)
{
this.source = source;
}
public void setTarget(WorkflowSubPart target)
{
this.target = target;
}
public void execute()
{
if(source !=null)
source.removeInput(connection);
if(target !=null)
target.removeOutput(connection);
connection.setSource(null);
connection.setTarget(null);
}
public String getLabel()
{
return "Delete Connection";
}
public void redo()
{
execute();
}
public void undo()
{
connection.setSource((WorkflowBaseActivity)source);
connection.setTarget((WorkflowBaseActivity)target);
source.addOutput(connection);
// source.addOutput(connection);
target.addInput(connection);
}
}