/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.workflow.editor.commands; import java.util.ArrayList; import java.util.List; import org.eclipse.gef.commands.Command; import de.rcenvironment.core.component.workflow.model.api.Connection; import de.rcenvironment.core.component.workflow.model.api.WorkflowDescription; /** * Command required to delete connections from the graphical editor. * * @author Oliver Seebach */ public class ConnectionDeleteCommand extends Command { private WorkflowDescription originalModel = null; private List<Connection> connectionsToDelete = new ArrayList<>(); public ConnectionDeleteCommand(WorkflowDescription model, List<Connection> connectionsToDelete) { this.originalModel = model; this.connectionsToDelete = connectionsToDelete; } public ConnectionDeleteCommand() {} @Override public void execute() { originalModel.removeConnections(connectionsToDelete); } @Override public void undo() { originalModel.addConnections(connectionsToDelete); } @Override public void redo() { execute(); } public void setOriginalModel(WorkflowDescription originalModel) { this.originalModel = originalModel; } /** * Adds a connection within a connection wrapper to a list to be deleted. * * @param connection The connection to be added to the list for deletion */ public void addConnectionForDeletion(Connection connection){ this.connectionsToDelete.add(connection); } }