http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeJsonEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeJsonEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeJsonEdit.java deleted file mode 100644 index 2c79ff3..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeJsonEdit.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import uk.org.taverna.scufl2.api.configurations.Configuration; - -import com.fasterxml.jackson.databind.JsonNode; - -/** - * Changes the JSON of a configuration. - * - * @author David Withers - */ -public class ChangeJsonEdit extends AbstractEdit<Configuration> { - private JsonNode oldJson, newJson; - - public ChangeJsonEdit(Configuration configuration, JsonNode newJson) { - super(configuration); - this.newJson = newJson; - newJson = configuration.getJson(); - } - - @Override - protected void doEditAction(Configuration configuration) { - configuration.setJson(newJson); - } - - @Override - protected void undoEditAction(Configuration configuration) { - configuration.setJson(oldJson); - } -}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ClearIterationStrategyStackEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ClearIterationStrategyStackEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ClearIterationStrategyStackEdit.java deleted file mode 100644 index 956857c..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ClearIterationStrategyStackEdit.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2011 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import uk.org.taverna.scufl2.api.iterationstrategy.IterationStrategyStack; - -/** - * Removes all the iteration strategies from an iteration strategy stack. - * - * @author David Withers - */ -public class ClearIterationStrategyStackEdit extends - AbstractEdit<IterationStrategyStack> { - private IterationStrategyStack oldIterationStrategyStack; - - public ClearIterationStrategyStackEdit( - IterationStrategyStack iterationStrategyStack) { - super(iterationStrategyStack); - } - - @Override - protected void doEditAction(IterationStrategyStack iterationStrategyStack) { - oldIterationStrategyStack = new IterationStrategyStack(); - oldIterationStrategyStack.addAll(iterationStrategyStack); - iterationStrategyStack.clear(); - } - - @Override - public void undoEditAction(IterationStrategyStack iterationStrategyStack) { - iterationStrategyStack.addAll(oldIterationStrategyStack); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ConfigureEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ConfigureEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ConfigureEdit.java deleted file mode 100644 index f4274b0..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ConfigureEdit.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import uk.org.taverna.scufl2.api.common.Configurable; -import uk.org.taverna.scufl2.api.configurations.Configuration; - -/** - * An Edit that configures a {@link Configurable} with a given - * {@link Configuration}. - * - * @author David Withers - */ -public class ConfigureEdit<ConfigurableType extends Configurable> extends - AbstractEdit<ConfigurableType> { - private final Configuration oldConfiguration; - private final Configuration newConfiguration; - - public ConfigureEdit(ConfigurableType configurable, - Configuration oldConfiguration, Configuration newConfiguration) { - super(configurable); - this.oldConfiguration = oldConfiguration; - this.newConfiguration = newConfiguration; - } - - @Override - protected void doEditAction(ConfigurableType configurable) { - oldConfiguration.setConfigures(null); - newConfiguration.setConfigures(configurable); - } - - @Override - protected void undoEditAction(ConfigurableType configurable) { - oldConfiguration.setConfigures(configurable); - newConfiguration.setConfigures(null); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityEdit.java deleted file mode 100644 index 1350d88..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityEdit.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import uk.org.taverna.scufl2.api.activity.Activity; -import uk.org.taverna.scufl2.api.core.Processor; -import uk.org.taverna.scufl2.api.profiles.ProcessorBinding; - -/** - * Remove an Activity from a Processor. - * - * @author alanrw - */ -public class RemoveActivityEdit extends AbstractEdit<Processor> { - private Activity activityToRemove; - private ProcessorBinding removedProcessorBinding; - - public RemoveActivityEdit(Processor processor, Activity activity) { - super(processor); - this.activityToRemove = activity; - } - - @Override - protected void doEditAction(Processor processor) { - for (ProcessorBinding binding : scufl2Tools - .processorBindingsToActivity(activityToRemove)) - if (binding.getBoundProcessor().equals(processor)) { - removedProcessorBinding = binding; - removedProcessorBinding.setParent(null); - } - } - - @Override - protected void undoEditAction(Processor processor) { - removedProcessorBinding.setParent(activityToRemove.getParent()); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityInputPortMappingEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityInputPortMappingEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityInputPortMappingEdit.java deleted file mode 100644 index ce058bf..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityInputPortMappingEdit.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import uk.org.taverna.scufl2.api.activity.Activity; -import uk.org.taverna.scufl2.api.port.InputActivityPort; -import uk.org.taverna.scufl2.api.profiles.ProcessorBinding; -import uk.org.taverna.scufl2.api.profiles.ProcessorInputPortBinding; - -public class RemoveActivityInputPortMappingEdit extends AbstractEdit<Activity> { - private final InputActivityPort inputActivityPort; - private ProcessorInputPortBinding removedPortBinding; - private ProcessorBinding processorBinding; - - public RemoveActivityInputPortMappingEdit(Activity activity, - InputActivityPort inputActivityPort) { - super(activity); - this.inputActivityPort = inputActivityPort; - } - - @Override - protected void doEditAction(Activity activity) { - removedPortBinding = scufl2Tools.processorPortBindingForPort( - inputActivityPort, activity.getParent()); - processorBinding = removedPortBinding.getParent(); - removedPortBinding.setParent(null); - } - - @Override - protected void undoEditAction(Activity activity) { - removedPortBinding.setParent(processorBinding); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityOutputPortMappingEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityOutputPortMappingEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityOutputPortMappingEdit.java deleted file mode 100644 index 8639dbd..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityOutputPortMappingEdit.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import uk.org.taverna.scufl2.api.activity.Activity; -import uk.org.taverna.scufl2.api.port.OutputActivityPort; -import uk.org.taverna.scufl2.api.profiles.ProcessorBinding; -import uk.org.taverna.scufl2.api.profiles.ProcessorOutputPortBinding; - -public class RemoveActivityOutputPortMappingEdit extends AbstractEdit<Activity> { - private final OutputActivityPort outputActivityPort; - private ProcessorOutputPortBinding removedPortBinding; - private ProcessorBinding processorBinding; - - public RemoveActivityOutputPortMappingEdit(Activity activity, - OutputActivityPort outputActivityPort) { - super(activity); - this.outputActivityPort = outputActivityPort; - } - - @Override - protected void doEditAction(Activity activity) { - removedPortBinding = scufl2Tools.processorPortBindingForPort( - outputActivityPort, activity.getParent()); - processorBinding = removedPortBinding.getParent(); - removedPortBinding.setParent(null); - } - - @Override - protected void undoEditAction(Activity activity) { - removedPortBinding.setParent(processorBinding); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveChildEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveChildEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveChildEdit.java deleted file mode 100644 index 1b9d5d2..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveChildEdit.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import uk.org.taverna.scufl2.api.common.Child; -import uk.org.taverna.scufl2.api.common.WorkflowBean; - -/** - * Removes a child from a parent. - * - * @author David Withers - */ -public class RemoveChildEdit<T extends WorkflowBean> extends AbstractEdit<T> { - private Child<T> child; - - public RemoveChildEdit(T parent, Child<T> child) { - super(parent); - this.child = child; - } - - @Override - protected void doEditAction(T parent) { - child.setParent(null); - } - - @Override - protected void undoEditAction(T parent) { - child.setParent(parent); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveDataLinkEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveDataLinkEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveDataLinkEdit.java deleted file mode 100644 index 9f8d243..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveDataLinkEdit.java +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import java.util.List; - -import uk.org.taverna.scufl2.api.core.DataLink; -import uk.org.taverna.scufl2.api.core.Workflow; -import uk.org.taverna.scufl2.api.iterationstrategy.IterationStrategyNode; -import uk.org.taverna.scufl2.api.iterationstrategy.IterationStrategyParent; -import uk.org.taverna.scufl2.api.iterationstrategy.IterationStrategyTopNode; -import uk.org.taverna.scufl2.api.iterationstrategy.PortNode; -import uk.org.taverna.scufl2.api.port.InputProcessorPort; -import uk.org.taverna.scufl2.api.port.ReceiverPort; - -/** - * Remove a DataLink from a Workflow. - * <p> - * Handles setting the merge position of all dataLinks with the same receiver port. - * - * @author David Withers - */ -public class RemoveDataLinkEdit extends AbstractEdit<Workflow> { - private final DataLink dataLink; - private PortNode portNode; - private int portPosition; - private IterationStrategyTopNode parent; - - public RemoveDataLinkEdit(Workflow workflow, DataLink dataLink) { - super(workflow); - this.dataLink = dataLink; - } - - @Override - protected void doEditAction(Workflow workflow) { - dataLink.setParent(null); - ReceiverPort sink = dataLink.getSendsTo(); - List<DataLink> datalinksTo = scufl2Tools.datalinksTo(sink); - if (datalinksTo.isEmpty()) { - if (sink instanceof InputProcessorPort) { - InputProcessorPort port = (InputProcessorPort) sink; - for (IterationStrategyTopNode topNode : port.getParent().getIterationStrategyStack()) { - portNode = findPortNode(topNode, port); - if (portNode != null) { - IterationStrategyParent parentNode = portNode.getParent(); - if (parentNode instanceof IterationStrategyTopNode) { - parent = (IterationStrategyTopNode) parentNode; - portPosition = parent.indexOf(portNode); - parent.remove(portNode); - } - break; - } - } - } - } else if (datalinksTo.size() == 1) { - datalinksTo.get(0).setMergePosition(null); - } else { - for (int i = 0; i < datalinksTo.size(); i++) - datalinksTo.get(i).setMergePosition(i); - } - } - - @Override - protected void undoEditAction(Workflow workflow) { - ReceiverPort sink = dataLink.getSendsTo(); - List<DataLink> datalinksTo = scufl2Tools.datalinksTo(sink); - if (dataLink.getMergePosition() != null) - for (int i = dataLink.getMergePosition(); i < datalinksTo.size(); i++) - datalinksTo.get(i).setMergePosition(i + 1); - if (portNode != null) { - parent.add(portPosition, portNode); - portNode.setParent(parent); - } - dataLink.setParent(workflow); - } - - private PortNode findPortNode(IterationStrategyTopNode topNode, - InputProcessorPort port) { - for (IterationStrategyNode node : topNode) { - if (node instanceof PortNode) { - PortNode portNode = (PortNode) node; - if (port.equals(portNode.getInputProcessorPort())) - return portNode; - } else if (node instanceof IterationStrategyTopNode) { - IterationStrategyTopNode iterationStrategyTopNode = (IterationStrategyTopNode) node; - PortNode result = findPortNode(iterationStrategyTopNode, port); - if (result != null) - return result; - } - } - return null; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorInputPortEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorInputPortEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorInputPortEdit.java deleted file mode 100644 index 497f700..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorInputPortEdit.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import uk.org.taverna.scufl2.api.core.Processor; -import uk.org.taverna.scufl2.api.port.InputProcessorPort; - -public class RemoveProcessorInputPortEdit extends RemoveChildEdit<Processor> { - public RemoveProcessorInputPortEdit(Processor processor, - InputProcessorPort port) { - super(processor, port); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorOutputPortEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorOutputPortEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorOutputPortEdit.java deleted file mode 100644 index 72a1238..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorOutputPortEdit.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import uk.org.taverna.scufl2.api.core.Processor; -import uk.org.taverna.scufl2.api.port.OutputProcessorPort; - -public class RemoveProcessorOutputPortEdit extends RemoveChildEdit<Processor> { - public RemoveProcessorOutputPortEdit(Processor processor, - OutputProcessorPort port) { - super(processor, port); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveWorkflowInputPortEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveWorkflowInputPortEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveWorkflowInputPortEdit.java deleted file mode 100644 index a6ac8e4..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveWorkflowInputPortEdit.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2013 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import static uk.org.taverna.scufl2.api.common.Scufl2Tools.NESTED_WORKFLOW; - -import java.util.List; - -import net.sf.taverna.t2.workbench.edits.CompoundEdit; -import net.sf.taverna.t2.workbench.edits.Edit; -import net.sf.taverna.t2.workbench.edits.EditException; -import uk.org.taverna.scufl2.api.activity.Activity; -import uk.org.taverna.scufl2.api.configurations.Configuration; -import uk.org.taverna.scufl2.api.container.WorkflowBundle; -import uk.org.taverna.scufl2.api.core.Processor; -import uk.org.taverna.scufl2.api.core.Workflow; -import uk.org.taverna.scufl2.api.port.InputActivityPort; -import uk.org.taverna.scufl2.api.port.InputProcessorPort; -import uk.org.taverna.scufl2.api.port.InputWorkflowPort; -import uk.org.taverna.scufl2.api.profiles.ProcessorBinding; -import uk.org.taverna.scufl2.api.profiles.ProcessorInputPortBinding; -import uk.org.taverna.scufl2.api.profiles.Profile; - -import com.fasterxml.jackson.databind.JsonNode; - -/** - * Removes an input port from a workflow. - * - * @author David Withers - */ -public class RemoveWorkflowInputPortEdit extends AbstractEdit<Workflow> { - private final InputWorkflowPort port; - private final CompoundEdit nestedPortEdit = new CompoundEdit(); - - public RemoveWorkflowInputPortEdit(Workflow workflow, InputWorkflowPort port) { - super(workflow); - this.port = port; - WorkflowBundle workflowBundle = workflow.getParent(); - if (workflowBundle != null) - for (Profile profile : workflowBundle.getProfiles()) - for (Activity activity : profile.getActivities()) - if (activity.getType().equals(NESTED_WORKFLOW)) - for (Configuration c : scufl2Tools.configurationsFor( - activity, profile)) - defineEditsForConfiguration(workflow, port, - workflowBundle, activity, c); - } - - private void defineEditsForConfiguration(Workflow workflow, - InputWorkflowPort port, WorkflowBundle workflowBundle, - Activity activity, Configuration c) { - List<Edit<?>> edits = nestedPortEdit.getChildEdits(); - JsonNode nested = c.getJson().get("nestedWorkflow"); - Workflow nestedWorkflow = workflowBundle.getWorkflows().getByName( - nested.asText()); - if (nestedWorkflow != workflow) - return; - - InputActivityPort activityPort = activity.getInputPorts().getByName( - port.getName()); - edits.add(new RemoveChildEdit<>(activity, activityPort)); - - for (ProcessorBinding binding : scufl2Tools - .processorBindingsToActivity(activity)) { - Processor processor = binding.getBoundProcessor(); - for (ProcessorInputPortBinding portBinding : binding - .getInputPortBindings()) - if (portBinding.getBoundActivityPort() == activityPort) { - InputProcessorPort processorPort = portBinding - .getBoundProcessorPort(); - edits.add(new RemoveProcessorInputPortEdit(processor, - processorPort)); - edits.add(new RemoveChildEdit<>(binding, portBinding)); - } - } - } - - @Override - protected void doEditAction(Workflow workflow) throws EditException { - port.setParent(null); - nestedPortEdit.doEdit(); - } - - @Override - protected void undoEditAction(Workflow workflow) { - port.setParent(workflow); - nestedPortEdit.undo(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveWorkflowOutputPortEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveWorkflowOutputPortEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveWorkflowOutputPortEdit.java deleted file mode 100644 index 2c71da6..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveWorkflowOutputPortEdit.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2013 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import static uk.org.taverna.scufl2.api.common.Scufl2Tools.NESTED_WORKFLOW; - -import java.util.List; - -import net.sf.taverna.t2.workbench.edits.CompoundEdit; -import net.sf.taverna.t2.workbench.edits.Edit; -import net.sf.taverna.t2.workbench.edits.EditException; -import uk.org.taverna.scufl2.api.activity.Activity; -import uk.org.taverna.scufl2.api.configurations.Configuration; -import uk.org.taverna.scufl2.api.container.WorkflowBundle; -import uk.org.taverna.scufl2.api.core.Workflow; -import uk.org.taverna.scufl2.api.port.OutputActivityPort; -import uk.org.taverna.scufl2.api.port.OutputProcessorPort; -import uk.org.taverna.scufl2.api.port.OutputWorkflowPort; -import uk.org.taverna.scufl2.api.profiles.ProcessorBinding; -import uk.org.taverna.scufl2.api.profiles.ProcessorOutputPortBinding; -import uk.org.taverna.scufl2.api.profiles.Profile; - -import com.fasterxml.jackson.databind.JsonNode; - -/** - * Removes an output port from a workflow. - * - * @author David Withers - */ -public class RemoveWorkflowOutputPortEdit extends AbstractEdit<Workflow> { - private final OutputWorkflowPort port; - private final CompoundEdit nestedPortEdit = new CompoundEdit(); - - public RemoveWorkflowOutputPortEdit(Workflow workflow, - OutputWorkflowPort port) { - super(workflow); - this.port = port; - WorkflowBundle workflowBundle = workflow.getParent(); - if (workflowBundle != null) - for (Profile profile : workflowBundle.getProfiles()) - for (Activity activity : profile.getActivities()) - if (activity.getType().equals(NESTED_WORKFLOW)) - for (Configuration c : scufl2Tools.configurationsFor( - activity, profile)) - defineEditsForConfiguration(workflow, port, - workflowBundle, activity, c); - } - - private void defineEditsForConfiguration(Workflow workflow, - OutputWorkflowPort port, WorkflowBundle workflowBundle, - Activity activity, Configuration c) { - List<Edit<?>> edits = nestedPortEdit.getChildEdits(); - JsonNode nested = c.getJson().get("nestedWorkflow"); - Workflow nestedWorkflow = workflowBundle.getWorkflows().getByName( - nested.asText()); - if (nestedWorkflow != workflow) - return; - - OutputActivityPort activityPort = activity.getOutputPorts().getByName( - port.getName()); - edits.add(new RemoveChildEdit<>(activity, activityPort)); - for (ProcessorBinding processorBinding : scufl2Tools - .processorBindingsToActivity(activity)) - for (ProcessorOutputPortBinding portBinding : processorBinding - .getOutputPortBindings()) - if (portBinding.getBoundActivityPort() == activityPort) { - OutputProcessorPort processorPort = portBinding - .getBoundProcessorPort(); - edits.add(new RemoveProcessorOutputPortEdit( - processorBinding.getBoundProcessor(), processorPort)); - edits.add(new RemoveChildEdit<>(processorBinding, - portBinding)); - } - } - - @Override - protected void doEditAction(Workflow workflow) throws EditException { - port.setParent(null); - nestedPortEdit.doEdit(); - } - - @Override - protected void undoEditAction(Workflow workflow) { - port.setParent(workflow); - nestedPortEdit.undo(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RenameEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RenameEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RenameEdit.java deleted file mode 100644 index beb4913..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RenameEdit.java +++ /dev/null @@ -1,136 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import static uk.org.taverna.scufl2.api.common.Scufl2Tools.NESTED_WORKFLOW; -import uk.org.taverna.scufl2.api.activity.Activity; -import uk.org.taverna.scufl2.api.common.Named; -import uk.org.taverna.scufl2.api.configurations.Configuration; -import uk.org.taverna.scufl2.api.container.WorkflowBundle; -import uk.org.taverna.scufl2.api.core.Workflow; -import uk.org.taverna.scufl2.api.port.ActivityPort; -import uk.org.taverna.scufl2.api.port.InputPort; -import uk.org.taverna.scufl2.api.port.ProcessorPort; -import uk.org.taverna.scufl2.api.port.WorkflowPort; -import uk.org.taverna.scufl2.api.profiles.ProcessorBinding; -import uk.org.taverna.scufl2.api.profiles.ProcessorInputPortBinding; -import uk.org.taverna.scufl2.api.profiles.ProcessorOutputPortBinding; -import uk.org.taverna.scufl2.api.profiles.Profile; - -import com.fasterxml.jackson.databind.JsonNode; - -/** - * Renames a Named WorkflowBean. - * - * @author David Withers - */ -public class RenameEdit<T extends Named> extends AbstractEdit<T> { - private String oldName, newName; - - public RenameEdit(T named, String newName) { - super(named); - this.newName = newName; - oldName = named.getName(); - } - - @Override - protected void doEditAction(T named) { - named.setName(newName); - if (named instanceof WorkflowPort) - checkNestedPortNames((WorkflowPort) named, oldName, newName); - } - - @Override - protected void undoEditAction(T named) { - named.setName(oldName); - if (named instanceof WorkflowPort) - checkNestedPortNames((WorkflowPort) named, newName, oldName); - } - - private void checkNestedPortNames(WorkflowPort workflowPort, String oldName, String newName) { - Workflow workflow = workflowPort.getParent(); - if (workflow == null) - return; - WorkflowBundle workflowBundle = workflow.getParent(); - if (workflowBundle == null) - return; - for (Profile profile : workflowBundle.getProfiles()) - for (Activity activity : profile.getActivities()) - if (activity.getType().equals(NESTED_WORKFLOW)) - for (Configuration c : scufl2Tools.configurationsFor(activity, profile)) - changeActivityPortName(workflowPort, oldName, - newName, workflow, workflowBundle, activity, c); - } - - private void changeActivityPortName(WorkflowPort workflowPort, - String oldName, String newName, Workflow workflow, - WorkflowBundle workflowBundle, Activity activity, Configuration c) { - JsonNode nested = c.getJson().get("nestedWorkflow"); - Workflow nestedWorkflow = workflowBundle.getWorkflows().getByName( - nested.asText()); - if (nestedWorkflow != workflow) - return; - - ActivityPort activityPort; - if (workflowPort instanceof InputPort) { - activityPort = activity.getInputPorts().getByName(oldName); - changeProcessorInputPortName(oldName, newName, activity, - activityPort); - } else { - activityPort = activity.getOutputPorts().getByName(oldName); - changeProcessorOutputPortName(oldName, newName, activity, - activityPort); - } - activityPort.setName(newName); - } - - private void changeProcessorInputPortName(String oldName, String newName, - Activity activity, ActivityPort activityPort) { - bindings: for (ProcessorBinding binding : scufl2Tools - .processorBindingsToActivity(activity)) - for (ProcessorInputPortBinding portBinding : binding - .getInputPortBindings()) - if (portBinding.getBoundActivityPort() == activityPort) { - ProcessorPort processorPort = portBinding - .getBoundProcessorPort(); - if (processorPort.getName().equals(oldName)) { - processorPort.setName(newName); - continue bindings; - } - } - } - - private void changeProcessorOutputPortName(String oldName, String newName, - Activity activity, ActivityPort activityPort) { - bindings: for (ProcessorBinding binding : scufl2Tools - .processorBindingsToActivity(activity)) - for (ProcessorOutputPortBinding portBinding : binding - .getOutputPortBindings()) - if (portBinding.getBoundActivityPort() == activityPort) { - ProcessorPort processorPort = portBinding - .getBoundProcessorPort(); - if (processorPort.getName().equals(oldName)) { - processorPort.setName(newName); - continue bindings; - } - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ReorderMergePositionsEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ReorderMergePositionsEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ReorderMergePositionsEdit.java deleted file mode 100644 index 49caa32..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ReorderMergePositionsEdit.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import java.util.List; - -import net.sf.taverna.t2.workbench.edits.EditException; -import uk.org.taverna.scufl2.api.core.DataLink; -import uk.org.taverna.scufl2.api.port.ReceiverPort; - -/** - * Change datalink merge positions based on ordered list of data links. - * - * @author David Withers - * @author Stian Soiland-Reyes - */ -public class ReorderMergePositionsEdit extends AbstractEdit<ReceiverPort> { - private List<DataLink> newMergePositions; - private final List<DataLink> oldMergePositions; - - public ReorderMergePositionsEdit(List<DataLink> dataLinks, - List<DataLink> newMergePositions) { - super(dataLinks.get(0).getSendsTo()); - this.oldMergePositions = dataLinks; - this.newMergePositions = newMergePositions; - } - - @Override - protected void doEditAction(ReceiverPort subject) throws EditException { - for (int i = 0; i < newMergePositions.size(); i++) - newMergePositions.get(i).setMergePosition(i); - } - - @Override - protected void undoEditAction(ReceiverPort subject) { - for (int i = 0; i < oldMergePositions.size(); i++) - oldMergePositions.get(i).setMergePosition(i); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/SetIterationStrategyStackEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/SetIterationStrategyStackEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/SetIterationStrategyStackEdit.java deleted file mode 100644 index e16b95f..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/SetIterationStrategyStackEdit.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import uk.org.taverna.scufl2.api.core.Processor; -import uk.org.taverna.scufl2.api.iterationstrategy.IterationStrategyStack; - -/** - * Set the iteration strategy - * - * @author Stian Soiland-Reyes - */ -public class SetIterationStrategyStackEdit extends AbstractEdit<Processor> { - private final IterationStrategyStack iterationStrategyStack; - private IterationStrategyStack oldStrategyStack; - - public SetIterationStrategyStackEdit(Processor processor, - IterationStrategyStack iterationStrategyStack) { - super(processor); - this.iterationStrategyStack = iterationStrategyStack; - } - - @Override - protected void doEditAction(Processor processor) { - oldStrategyStack = processor.getIterationStrategyStack(); - processor.setIterationStrategyStack(iterationStrategyStack); - } - - @Override - protected void undoEditAction(Processor processor) { - processor.setIterationStrategyStack(oldStrategyStack); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/UpdateDataflowInternalIdentifierEdit.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/UpdateDataflowInternalIdentifierEdit.java b/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/UpdateDataflowInternalIdentifierEdit.java deleted file mode 100644 index f246d60..0000000 --- a/taverna-workbench-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/UpdateDataflowInternalIdentifierEdit.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import java.net.URI; - -import uk.org.taverna.scufl2.api.container.WorkflowBundle; - -public class UpdateDataflowInternalIdentifierEdit extends - AbstractEdit<WorkflowBundle> { - private URI newId; - private URI oldId; - - public UpdateDataflowInternalIdentifierEdit(WorkflowBundle dataflow, - URI newId) { - super(dataflow); - this.newId = newId; - this.oldId = dataflow.getGlobalBaseURI(); - } - - @Override - protected void doEditAction(WorkflowBundle dataflow) { - dataflow.setGlobalBaseURI(newId); - } - - @Override - protected void undoEditAction(WorkflowBundle dataflow) { - dataflow.setGlobalBaseURI(oldId); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/pom.xml ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-impl/pom.xml b/taverna-workbench-edits-impl/pom.xml deleted file mode 100644 index b5b725a..0000000 --- a/taverna-workbench-edits-impl/pom.xml +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>net.sf.taverna.t2</groupId> - <artifactId>ui-impl</artifactId> - <version>2.0-SNAPSHOT</version> - </parent> - <groupId>net.sf.taverna.t2.ui-impl</groupId> - <artifactId>edits-impl</artifactId> - <packaging>bundle</packaging> - <name>Edits implementation</name> - <description> - Implementation for doing workflow edits and undo. - </description> - <dependencies> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>edits-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>menu-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>selection-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.lang</groupId> - <artifactId>ui</artifactId> - <version>${t2.lang.version}</version> - </dependency> - <dependency> - <groupId>uk.org.taverna.scufl2</groupId> - <artifactId>scufl2-api</artifactId> - <version>${scufl2.version}</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - </dependencies> -</project> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/EditManagerImpl.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/EditManagerImpl.java b/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/EditManagerImpl.java deleted file mode 100644 index f97d36c..0000000 --- a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/EditManagerImpl.java +++ /dev/null @@ -1,285 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workbench.edits.impl; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import net.sf.taverna.t2.lang.observer.MultiCaster; -import net.sf.taverna.t2.lang.observer.Observer; -import net.sf.taverna.t2.workbench.edits.Edit; -import net.sf.taverna.t2.workbench.edits.EditException; -import net.sf.taverna.t2.workbench.edits.EditManager; - -import org.apache.log4j.Logger; - -import uk.org.taverna.scufl2.api.container.WorkflowBundle; - -/** - * Implementation of {@link EditManager}. - * - * @author Stian Soiland-Reyes - */ -public class EditManagerImpl implements EditManager { - private static Logger logger = Logger.getLogger(EditManagerImpl.class); - - private MultiCaster<EditManagerEvent> multiCaster = new MultiCaster<>(this); - private Map<WorkflowBundle, DataflowEdits> editsForDataflow = new HashMap<>(); - - @Override - public void addObserver(Observer<EditManagerEvent> observer) { - multiCaster.addObserver(observer); - } - - @Override - public boolean canRedoDataflowEdit(WorkflowBundle dataflow) { - DataflowEdits edits = getEditsForDataflow(dataflow); - return edits.canRedo(); - } - - @Override - public boolean canUndoDataflowEdit(WorkflowBundle dataflow) { - DataflowEdits edits = getEditsForDataflow(dataflow); - return edits.canUndo(); - } - - @Override - public void doDataflowEdit(WorkflowBundle dataflow, Edit<?> edit) - throws EditException { - // We do the edit before we notify the observers - DataflowEdits edits = getEditsForDataflow(dataflow); - synchronized (edits) { - // Make sure the edits are in the order they were performed - edit.doEdit(); - edits.addEdit(edit); - } - multiCaster.notify(new DataflowEditEvent(dataflow, edit)); - } - - @Override - public List<Observer<EditManagerEvent>> getObservers() { - return multiCaster.getObservers(); - } - - @Override - public void redoDataflowEdit(WorkflowBundle dataflow) throws EditException { - DataflowEdits edits = getEditsForDataflow(dataflow); - Edit<?> edit; - synchronized (edits) { - if (!edits.canRedo()) - return; - edit = edits.getLastUndo(); - edit.doEdit(); - edits.addRedo(edit); - } - multiCaster.notify(new DataFlowRedoEvent(dataflow, edit)); - } - - @Override - public void removeObserver(Observer<EditManagerEvent> observer) { - multiCaster.removeObserver(observer); - } - - @Override - public void undoDataflowEdit(WorkflowBundle dataflow) { - DataflowEdits edits = getEditsForDataflow(dataflow); - Edit<?> edit; - synchronized (edits) { - if (!edits.canUndo()) - return; - edit = edits.getLastEdit(); - edit.undo(); - edits.addUndo(edit); - } - logger.info("Undoing an edit"); - multiCaster.notify(new DataFlowUndoEvent(dataflow, edit)); - } - - /** - * Get the set of edits for a given dataflow, creating if neccessary. - * - * @param dataflow - * Dataflow the edits relate to - * @return A {@link DataflowEdits} instance to keep edits for the given - * dataflow - */ - protected synchronized DataflowEdits getEditsForDataflow(WorkflowBundle dataflow) { - DataflowEdits edits = editsForDataflow.get(dataflow); - if (edits == null) { - edits = new DataflowEdits(); - editsForDataflow.put(dataflow, edits); - } - return edits; - } - - /** - * A set of edits and undoes for a {@link Dataflow} - * - * @author Stian Soiland-Reyes - * - */ - public class DataflowEdits { - /** - * List of edits that have been performed and can be undone. - */ - private List<Edit<?>> edits = new ArrayList<>(); - /** - * List of edits that have been undone and can be redone - */ - private List<Edit<?>> undoes = new ArrayList<>(); - - /** - * Add an {@link Edit} that has been done by the EditManager. - * <p> - * This can later be retrieved using {@link #getLastEdit()}. After - * calling this {@link #canRedo()} will be false. - * - * @param edit - * {@link Edit} that has been undone - */ - public synchronized void addEdit(Edit<?> edit) { - addEditOrRedo(edit, false); - } - - /** - * Add an {@link Edit} that has been redone by the EditManager. - * <p> - * The {@link Edit} must be the same as the last undo returned through - * {@link #getLastUndo()}. - * <p> - * This method works like {@link #addEdit(Edit)} except that instead of - * removing all possible redoes, only the given {@link Edit} is removed. - * - * @param edit - * {@link Edit} that has been redone - */ - public synchronized void addRedo(Edit<?> edit) { - addEditOrRedo(edit, true); - } - - /** - * Add an {@link Edit} that has been undone by the EditManager. - * <p> - * After calling this method {@link #canRedo()} will be true, and the - * edit can be retrieved using {@link #getLastUndo()}. - * </p> - * <p> - * The {@link Edit} must be the last edit returned from - * {@link #getLastEdit()}, after calling this method - * {@link #getLastEdit()} will return the previous edit or - * {@link #canUndo()} will be false if there are no more edits. - * - * @param edit - * {@link Edit} that has been undone - */ - public synchronized void addUndo(Edit<?> edit) { - int lastIndex = edits.size() - 1; - if (lastIndex < 0 || !edits.get(lastIndex).equals(edit)) - throw new IllegalArgumentException("Can't undo unknown edit " - + edit); - undoes.add(edit); - edits.remove(lastIndex); - } - - /** - * True if there are undone events that can be redone. - * - * @return <code>true</code> if there are undone events - */ - public boolean canRedo() { - return !undoes.isEmpty(); - } - - /** - * True if there are edits that can be undone and later added with - * {@link #addUndo(Edit)}. - * - * @return <code>true</code> if there are edits that can be undone - */ - public boolean canUndo() { - return !edits.isEmpty(); - } - - /** - * Get the last edit that can be undone. This edit was the last one to - * be added with {@link #addEdit(Edit)} or {@link #addRedo(Edit)}. - * - * @return The last added {@link Edit} - * @throws IllegalStateException - * If there are no more edits (Check with {@link #canUndo()} - * first) - * - */ - public synchronized Edit<?> getLastEdit() throws IllegalStateException { - if (edits.isEmpty()) - throw new IllegalStateException("No more edits"); - int lastEdit = edits.size() - 1; - return edits.get(lastEdit); - } - - /** - * Get the last edit that can be redone. This edit was the last one to - * be added with {@link #addUndo(Edit)}. - * - * @return The last undone {@link Edit} - * @throws IllegalStateException - * If there are no more edits (Check with {@link #canRedo()} - * first) - * - */ - public synchronized Edit<?> getLastUndo() throws IllegalStateException { - if (undoes.isEmpty()) - throw new IllegalStateException("No more undoes"); - int lastUndo = undoes.size() - 1; - return undoes.get(lastUndo); - } - - /** - * Add an edit or redo. Common functionallity called by - * {@link #addEdit(Edit)} and {@link #addRedo(Edit)}. - * - * @see #addEdit(Edit) - * @see #addRedo(Edit) - * @param edit - * The {@link Edit} to add - * @param isRedo - * True if this is a redo - */ - protected void addEditOrRedo(Edit<?> edit, boolean isRedo) { - edits.add(edit); - if (undoes.isEmpty()) - return; - if (isRedo) { - // It's a redo, remove only the last one - int lastUndoIndex = undoes.size() - 1; - Edit<?> lastUndo = undoes.get(lastUndoIndex); - if (!edit.equals(lastUndo)) - throw new IllegalArgumentException( - "Can only redo last undo"); - undoes.remove(lastUndoIndex); - } else - // It's a new edit, remove all redos - undoes.clear(); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/AbstractUndoAction.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/AbstractUndoAction.java b/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/AbstractUndoAction.java deleted file mode 100644 index 97d14a6..0000000 --- a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/AbstractUndoAction.java +++ /dev/null @@ -1,166 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workbench.edits.impl.menu; - -import static java.awt.Toolkit.getDefaultToolkit; -import static java.awt.event.KeyEvent.VK_Y; -import static java.awt.event.KeyEvent.VK_Z; -import static javax.swing.KeyStroke.getKeyStroke; -import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.redoIcon; -import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.undoIcon; - -import java.awt.event.ActionEvent; - -import javax.swing.AbstractAction; - -import net.sf.taverna.t2.lang.observer.Observable; -import net.sf.taverna.t2.lang.observer.Observer; -import net.sf.taverna.t2.lang.observer.SwingAwareObserver; -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.edits.EditManager.AbstractDataflowEditEvent; -import net.sf.taverna.t2.workbench.edits.EditManager.EditManagerEvent; -import net.sf.taverna.t2.workbench.selection.SelectionManager; -import net.sf.taverna.t2.workbench.selection.events.PerspectiveSelectionEvent; -import net.sf.taverna.t2.workbench.selection.events.SelectionManagerEvent; -import net.sf.taverna.t2.workbench.selection.events.WorkflowBundleSelectionEvent; -import uk.org.taverna.scufl2.api.container.WorkflowBundle; - -/** - * @author David Withers - */ -@SuppressWarnings("serial") -public abstract class AbstractUndoAction extends AbstractAction { - protected EditManager editManager; - private SelectionManager selectionManager; - - public AbstractUndoAction(String label, EditManager editManager) { - super(label); - this.editManager = editManager; - if (label.equals("Undo")) { - this.putValue(SMALL_ICON, undoIcon); - this.putValue(SHORT_DESCRIPTION, "Undo an action"); - putValue( - ACCELERATOR_KEY, - getKeyStroke(VK_Z, getDefaultToolkit() - .getMenuShortcutKeyMask())); - } else if (label.equals("Redo")) { - this.putValue(SMALL_ICON, redoIcon); - this.putValue(SHORT_DESCRIPTION, "Redo an action"); - putValue( - ACCELERATOR_KEY, - getKeyStroke(VK_Y, getDefaultToolkit() - .getMenuShortcutKeyMask())); - } - editManager.addObserver(new EditManagerObserver()); - updateStatus(); - } - - @Override - public void actionPerformed(ActionEvent e) { - WorkflowBundle workflowBundle = getCurrentDataflow(); - if (workflowBundle != null) - performUndoOrRedo(workflowBundle); - } - - /** - * Check if action should be enabled or disabled and update its status. - */ - public void updateStatus() { - WorkflowBundle workflowBundle = getCurrentDataflow(); - if (workflowBundle == null) - setEnabled(false); - setEnabled(isActive(workflowBundle)); - } - - /** - * Retrieve the current dataflow from the {@link ModelMap}, or - * <code>null</code> if no workflow is active. - * - * @return The current {@link Dataflow} - */ - protected WorkflowBundle getCurrentDataflow() { - if (selectionManager == null) - return null; - return selectionManager.getSelectedWorkflowBundle(); - } - - /** - * Return <code>true</code> if the action should be enabled when the given - * {@link Dataflow} is the current, ie. if it's undoable or redoable. - * - * @param dataflow - * Current {@link Dataflow} - * @return <code>true</code> if the action should be enabled. - */ - protected abstract boolean isActive(WorkflowBundle workflowBundle); - - /** - * Called by {@link #actionPerformed(ActionEvent)} when the current dataflow - * is not <code>null</code>. - * - * @param dataflow - * {@link Dataflow} on which to undo or redo - */ - protected abstract void performUndoOrRedo(WorkflowBundle workflowBundle); - - public void setSelectionManager(SelectionManager selectionManager) { - this.selectionManager = selectionManager; - if (selectionManager != null) - selectionManager.addObserver(new SelectionManagerObserver()); - } - - /** - * Update the status if there's been an edit done on the current workflow. - * - */ - protected class EditManagerObserver implements Observer<EditManagerEvent> { - @Override - public void notify(Observable<EditManagerEvent> sender, - EditManagerEvent message) throws Exception { - if (!(message instanceof AbstractDataflowEditEvent)) - return; - AbstractDataflowEditEvent dataflowEdit = (AbstractDataflowEditEvent) message; - if (dataflowEdit.getDataFlow().equals(dataflowEdit.getDataFlow())) - // It's an edit that could effect our undoability - updateStatus(); - } - } - - private final class SelectionManagerObserver extends - SwingAwareObserver<SelectionManagerEvent> { - private static final String DESIGN_PERSPECTIVE_ID = "net.sf.taverna.t2.ui.perspectives.design.DesignPerspective"; - - @Override - public void notifySwing(Observable<SelectionManagerEvent> sender, - SelectionManagerEvent message) { - if (message instanceof WorkflowBundleSelectionEvent) - updateStatus(); - else if (message instanceof PerspectiveSelectionEvent) { - PerspectiveSelectionEvent perspectiveSelectionEvent = (PerspectiveSelectionEvent) message; - if (DESIGN_PERSPECTIVE_ID.equals(perspectiveSelectionEvent - .getSelectedPerspective().getID())) - updateStatus(); - else - setEnabled(false); - } - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/RedoMenuAction.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/RedoMenuAction.java b/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/RedoMenuAction.java deleted file mode 100644 index 2abc139..0000000 --- a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/RedoMenuAction.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workbench.edits.impl.menu; - -import static javax.swing.JOptionPane.ERROR_MESSAGE; -import static javax.swing.JOptionPane.showMessageDialog; -import static net.sf.taverna.t2.workbench.edits.impl.menu.UndoMenuSection.UNDO_SECTION_URI; - -import javax.swing.Action; - -import net.sf.taverna.t2.ui.menu.AbstractMenuAction; -import net.sf.taverna.t2.workbench.edits.Edit; -import net.sf.taverna.t2.workbench.edits.EditException; -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.selection.SelectionManager; - -import org.apache.log4j.Logger; - -import uk.org.taverna.scufl2.api.container.WorkflowBundle; - -/** - * Redo the previous {@link Edit} done on the current workflow using the - * {@link EditManager}. - * - * @author Stian Soiland-Reyes - */ -public class RedoMenuAction extends AbstractMenuAction { - private static Logger logger = Logger.getLogger(RedoMenuAction.class); - private final EditManager editManager; - private SelectionManager selectionManager; - private AbstractUndoAction undoAction; - - public RedoMenuAction(EditManager editManager) { - super(UNDO_SECTION_URI, 20); - this.editManager = editManager; - } - - @SuppressWarnings("serial") - @Override - protected Action createAction() { - undoAction = new AbstractUndoAction("Redo", editManager) { - @Override - protected boolean isActive(WorkflowBundle workflowBundle) { - return editManager.canRedoDataflowEdit(workflowBundle); - } - - @Override - protected void performUndoOrRedo(WorkflowBundle workflowBundle) { - try { - editManager.redoDataflowEdit(workflowBundle); - } catch (EditException | RuntimeException e) { - logger.warn("Could not redo for " + workflowBundle, e); - showMessageDialog(null, "Could not redo for workflow " - + workflowBundle + ":\n" + e, "Could not redo", - ERROR_MESSAGE); - } - } - }; - undoAction.setSelectionManager(selectionManager); - return undoAction; - } - - public void setSelectionManager(SelectionManager selectionManager) { - this.selectionManager = selectionManager; - if (undoAction != null) - undoAction.setSelectionManager(selectionManager); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/UndoMenuAction.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/UndoMenuAction.java b/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/UndoMenuAction.java deleted file mode 100644 index e1242b3..0000000 --- a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/UndoMenuAction.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workbench.edits.impl.menu; - -import static javax.swing.JOptionPane.ERROR_MESSAGE; -import static javax.swing.JOptionPane.showMessageDialog; -import static net.sf.taverna.t2.workbench.edits.impl.menu.UndoMenuSection.UNDO_SECTION_URI; - -import javax.swing.Action; - -import net.sf.taverna.t2.ui.menu.AbstractMenuAction; -import net.sf.taverna.t2.workbench.edits.Edit; -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.selection.SelectionManager; - -import org.apache.log4j.Logger; - -import uk.org.taverna.scufl2.api.container.WorkflowBundle; - -/** - * Undo the last {@link Edit} done on the current workflow using the - * {@link EditManager}. - * - * @author Stian Soiland-Reyes - * - */ -public class UndoMenuAction extends AbstractMenuAction { - private static Logger logger = Logger.getLogger(UndoMenuAction.class); - private final EditManager editManager; - private SelectionManager selectionManager; - private AbstractUndoAction undoAction; - - public UndoMenuAction(EditManager editManager) { - super(UNDO_SECTION_URI, 10); - this.editManager = editManager; - } - - @SuppressWarnings("serial") - @Override - protected Action createAction() { - undoAction = new AbstractUndoAction("Undo", editManager) { - @Override - protected boolean isActive(WorkflowBundle workflowBundle) { - return editManager.canUndoDataflowEdit(workflowBundle); - } - - @Override - protected void performUndoOrRedo(WorkflowBundle workflowBundle) { - try { - editManager.undoDataflowEdit(workflowBundle); - } catch (RuntimeException e) { - logger.warn("Could not undo for " + workflowBundle, e); - showMessageDialog(null, "Could not undo for workflow " - + workflowBundle + ":\n" + e, "Could not undo", - ERROR_MESSAGE); - } - } - }; - undoAction.setSelectionManager(selectionManager); - return undoAction; - } - - public void setSelectionManager(SelectionManager selectionManager) { - this.selectionManager = selectionManager; - if (undoAction != null) - undoAction.setSelectionManager(selectionManager); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/UndoMenuSection.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/UndoMenuSection.java b/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/UndoMenuSection.java deleted file mode 100644 index b83a650..0000000 --- a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/menu/UndoMenuSection.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workbench.edits.impl.menu; - -import java.net.URI; - -import net.sf.taverna.t2.ui.menu.AbstractMenuSection; - -/** - * A section of the Edit menu that contains {@link UndoMenuSection undo} and - * {@link RedoMenuAction redo}. - * - * @author Stian Soiland-Reyes - */ -public class UndoMenuSection extends AbstractMenuSection { - public static final URI UNDO_SECTION_URI = URI - .create("http://taverna.sf.net/2008/t2workbench/edits#undoSection"); - public static final URI EDIT_MENU_URI = URI - .create("http://taverna.sf.net/2008/t2workbench/menu#edit"); - - public UndoMenuSection() { - super(EDIT_MENU_URI, 10, UNDO_SECTION_URI); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/toolbar/EditToolbarSection.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/toolbar/EditToolbarSection.java b/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/toolbar/EditToolbarSection.java deleted file mode 100644 index 9eea85a..0000000 --- a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/toolbar/EditToolbarSection.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workbench.edits.impl.toolbar; - -import static net.sf.taverna.t2.ui.menu.DefaultToolBar.DEFAULT_TOOL_BAR; - -import java.net.URI; - -import net.sf.taverna.t2.ui.menu.AbstractMenuSection; - -public class EditToolbarSection extends AbstractMenuSection { - public static final URI EDIT_TOOLBAR_SECTION = URI - .create("http://taverna.sf.net/2008/t2workbench/menu#editToolbarSection"); - - public EditToolbarSection() { - super(DEFAULT_TOOL_BAR, 60, EDIT_TOOLBAR_SECTION); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/toolbar/RedoToolbarAction.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/toolbar/RedoToolbarAction.java b/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/toolbar/RedoToolbarAction.java deleted file mode 100644 index 09c0058..0000000 --- a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/toolbar/RedoToolbarAction.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workbench.edits.impl.toolbar; - -import static net.sf.taverna.t2.workbench.edits.impl.toolbar.EditToolbarSection.EDIT_TOOLBAR_SECTION; - -import java.net.URI; - -import javax.swing.Action; - -import net.sf.taverna.t2.ui.menu.AbstractMenuAction; -import net.sf.taverna.t2.workbench.edits.impl.menu.RedoMenuAction; - -public class RedoToolbarAction extends AbstractMenuAction { - private static final URI EDIT_TOOLBAR_REDO_URI = URI - .create("http://taverna.sf.net/2008/t2workbench/menu#editToolbarRedo"); - private final RedoMenuAction redoMenuAction; - - public RedoToolbarAction(RedoMenuAction redoMenuAction) { - super(EDIT_TOOLBAR_SECTION, 20, EDIT_TOOLBAR_REDO_URI); - this.redoMenuAction = redoMenuAction; - } - - @Override - protected Action createAction() { - return redoMenuAction.getAction(); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/toolbar/UndoToolbarAction.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/toolbar/UndoToolbarAction.java b/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/toolbar/UndoToolbarAction.java deleted file mode 100644 index 8e31ed3..0000000 --- a/taverna-workbench-edits-impl/src/main/java/net/sf/taverna/t2/workbench/edits/impl/toolbar/UndoToolbarAction.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workbench.edits.impl.toolbar; - -import static net.sf.taverna.t2.workbench.edits.impl.toolbar.EditToolbarSection.EDIT_TOOLBAR_SECTION; - -import java.net.URI; - -import javax.swing.Action; - -import net.sf.taverna.t2.ui.menu.AbstractMenuAction; -import net.sf.taverna.t2.workbench.edits.impl.menu.UndoMenuAction; - -public class UndoToolbarAction extends AbstractMenuAction { - private static final URI EDIT_TOOLBAR_UNDO_URI = URI - .create("http://taverna.sf.net/2008/t2workbench/menu#editToolbarUndo"); - private final UndoMenuAction undoMenuAction; - - public UndoToolbarAction(UndoMenuAction undoMenuAction) { - super(EDIT_TOOLBAR_SECTION, 10, EDIT_TOOLBAR_UNDO_URI); - this.undoMenuAction = undoMenuAction; - } - - @Override - protected Action createAction() { - return undoMenuAction.getAction(); - } -}
