http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/java/org/apache/taverna/workbench/file/importworkflow/menu/ReplaceNestedWorkflowMenuAction.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/java/org/apache/taverna/workbench/file/importworkflow/menu/ReplaceNestedWorkflowMenuAction.java b/taverna-dataflow-activity-ui/src/main/java/org/apache/taverna/workbench/file/importworkflow/menu/ReplaceNestedWorkflowMenuAction.java new file mode 100644 index 0000000..79fc02f --- /dev/null +++ b/taverna-dataflow-activity-ui/src/main/java/org/apache/taverna/workbench/file/importworkflow/menu/ReplaceNestedWorkflowMenuAction.java @@ -0,0 +1,76 @@ +package org.apache.taverna.workbench.file.importworkflow.menu; + +import java.net.URI; + +import javax.swing.Action; + +import org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry; +import org.apache.taverna.ui.menu.MenuManager; +import org.apache.taverna.workbench.activityicons.ActivityIconManager; +import org.apache.taverna.workbench.activitytools.AbstractConfigureActivityMenuAction; +import org.apache.taverna.workbench.configuration.colour.ColourManager; +import org.apache.taverna.workbench.configuration.workbench.WorkbenchConfiguration; +import org.apache.taverna.workbench.edits.EditManager; +import org.apache.taverna.workbench.file.FileManager; +import org.apache.taverna.workbench.file.importworkflow.actions.ReplaceNestedWorkflowAction; +import org.apache.taverna.workbench.selection.SelectionManager; + +public class ReplaceNestedWorkflowMenuAction extends AbstractConfigureActivityMenuAction { + + private static final URI NESTED_ACTIVITY = URI.create("http://ns.taverna.org.uk/2010/activity/nested-workflow"); + + private EditManager editManager; + private FileManager fileManager; + private MenuManager menuManager; + private ActivityIconManager activityIconManager; + private ColourManager colourManager; + private WorkbenchConfiguration workbenchConfiguration; + private ServiceDescriptionRegistry serviceDescriptionRegistry; + private SelectionManager selectionManager; + + public ReplaceNestedWorkflowMenuAction() { + super(NESTED_ACTIVITY); + } + + @Override + protected Action createAction() { + ReplaceNestedWorkflowAction configAction = new ReplaceNestedWorkflowAction(findActivity(), + editManager, fileManager, menuManager, activityIconManager, colourManager, + serviceDescriptionRegistry, workbenchConfiguration, selectionManager); + addMenuDots(configAction); + return configAction; + } + + public void setEditManager(EditManager editManager) { + this.editManager = editManager; + } + + public void setFileManager(FileManager fileManager) { + this.fileManager = fileManager; + } + + public void setMenuManager(MenuManager menuManager) { + this.menuManager = menuManager; + } + + public void setActivityIconManager(ActivityIconManager activityIconManager) { + this.activityIconManager = activityIconManager; + } + + public void setColourManager(ColourManager colourManager) { + this.colourManager = colourManager; + } + + public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) { + this.serviceDescriptionRegistry = serviceDescriptionRegistry; + } + + public void setWorkbenchConfiguration(WorkbenchConfiguration workbenchConfiguration) { + this.workbenchConfiguration = workbenchConfiguration; + } + + public void setSelectionManager(SelectionManager selectionManager) { + this.selectionManager = selectionManager; + } + +}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider deleted file mode 100644 index bf42bef..0000000 --- a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider +++ /dev/null @@ -1 +0,0 @@ -net.sf.taverna.t2.activities.dataflow.servicedescriptions.DataflowTemplateService http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent deleted file mode 100644 index 6e7eec5..0000000 --- a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent +++ /dev/null @@ -1,9 +0,0 @@ -# Needs to be first AbstractConfigureActivityMenuAction to be -# picked up as the automatic 'configure' action for template services -net.sf.taverna.t2.workbench.file.importworkflow.menu.ReplaceNestedWorkflowMenuAction - -net.sf.taverna.t2.workbench.file.importworkflow.menu.AddNestedWorkflowMenuAction -net.sf.taverna.t2.workbench.file.importworkflow.menu.ImportWorkflowMenuAction -net.sf.taverna.t2.workbench.file.importworkflow.menu.MergeWorkflowMenuAction - -net.sf.taverna.t2.activities.dataflow.menu.EditNestedDataflowMenuAction http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI deleted file mode 100644 index 5cb0543..0000000 --- a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI +++ /dev/null @@ -1 +0,0 @@ -net.sf.taverna.t2.activities.dataflow.servicedescriptions.DataflowActivityIcon \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler deleted file mode 100644 index a334e66..0000000 --- a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler +++ /dev/null @@ -1 +0,0 @@ -net.sf.taverna.t2.activities.dataflow.filemanager.NestedDataflowPersistenceHandler \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory deleted file mode 100644 index 39d7ec2..0000000 --- a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory +++ /dev/null @@ -1 +0,0 @@ -net.sf.taverna.t2.activities.dataflow.views.DataflowActivityViewFactory \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider new file mode 100644 index 0000000..4fb5e75 --- /dev/null +++ b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider @@ -0,0 +1 @@ +org.apache.taverna.activities.dataflow.servicedescriptions.DataflowTemplateService http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent new file mode 100644 index 0000000..cd9685a --- /dev/null +++ b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent @@ -0,0 +1,9 @@ +# Needs to be first AbstractConfigureActivityMenuAction to be +# picked up as the automatic 'configure' action for template services +org.apache.taverna.workbench.file.importworkflow.menu.ReplaceNestedWorkflowMenuAction + +org.apache.taverna.workbench.file.importworkflow.menu.AddNestedWorkflowMenuAction +org.apache.taverna.workbench.file.importworkflow.menu.ImportWorkflowMenuAction +org.apache.taverna.workbench.file.importworkflow.menu.MergeWorkflowMenuAction + +org.apache.taverna.activities.dataflow.menu.EditNestedDataflowMenuAction http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI new file mode 100644 index 0000000..263a49a --- /dev/null +++ b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI @@ -0,0 +1 @@ +org.apache.taverna.activities.dataflow.servicedescriptions.DataflowActivityIcon \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.file.DataflowPersistenceHandler ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.file.DataflowPersistenceHandler b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.file.DataflowPersistenceHandler new file mode 100644 index 0000000..907b777 --- /dev/null +++ b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.file.DataflowPersistenceHandler @@ -0,0 +1 @@ +org.apache.taverna.activities.dataflow.filemanager.NestedDataflowPersistenceHandler \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory new file mode 100644 index 0000000..626ac26 --- /dev/null +++ b/taverna-dataflow-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory @@ -0,0 +1 @@ +org.apache.taverna.activities.dataflow.views.DataflowActivityViewFactory \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/resources/META-INF/spring/dataflow-activity-ui-context-osgi.xml ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/resources/META-INF/spring/dataflow-activity-ui-context-osgi.xml b/taverna-dataflow-activity-ui/src/main/resources/META-INF/spring/dataflow-activity-ui-context-osgi.xml index e664429..f2d35c1 100644 --- a/taverna-dataflow-activity-ui/src/main/resources/META-INF/spring/dataflow-activity-ui-context-osgi.xml +++ b/taverna-dataflow-activity-ui/src/main/resources/META-INF/spring/dataflow-activity-ui-context-osgi.xml @@ -6,9 +6,9 @@ http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd"> - <service ref="DataflowActivityIcon" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI" /> + <service ref="DataflowActivityIcon" interface="org.apache.taverna.workbench.activityicons.ActivityIconSPI" /> - <service ref="DataflowTemplateService" interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider" /> + <service ref="DataflowTemplateService" interface="org.apache.taverna.servicedescriptions.ServiceDescriptionProvider" /> <service ref="ReplaceNestedWorkflowMenuAction" auto-export="interfaces" /> <service ref="AddNestedWorkflowMenuAction" auto-export="interfaces" /> @@ -16,18 +16,18 @@ <service ref="MergeWorkflowMenuAction" auto-export="interfaces" /> <service ref="EditNestedDataflowMenuAction" auto-export="interfaces" /> - <!-- <service ref="NestedDataflowPersistenceHandler" interface="net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler" /> --> + <!-- <service ref="NestedDataflowPersistenceHandler" interface="org.apache.taverna.workbench.file.DataflowPersistenceHandler" /> --> - <service ref="DataflowActivityViewFactory" interface="net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory" /> + <service ref="DataflowActivityViewFactory" interface="org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory" /> - <reference id="editManager" interface="net.sf.taverna.t2.workbench.edits.EditManager" /> - <reference id="fileManager" interface="net.sf.taverna.t2.workbench.file.FileManager" /> - <reference id="menuManager" interface="net.sf.taverna.t2.ui.menu.MenuManager" /> - <reference id="edits" interface="net.sf.taverna.t2.workflowmodel.Edits" /> - <reference id="activityIconManager" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconManager" /> - <reference id="colourManager" interface="net.sf.taverna.t2.workbench.configuration.colour.ColourManager" /> - <reference id="serviceDescriptionRegistry" interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry" /> - <reference id="workbenchConfiguration" interface="net.sf.taverna.t2.workbench.configuration.workbench.WorkbenchConfiguration" /> - <reference id="selectionManager" interface="net.sf.taverna.t2.workbench.selection.SelectionManager" /> + <reference id="editManager" interface="org.apache.taverna.workbench.edits.EditManager" /> + <reference id="fileManager" interface="org.apache.taverna.workbench.file.FileManager" /> + <reference id="menuManager" interface="org.apache.taverna.ui.menu.MenuManager" /> + <reference id="edits" interface="org.apache.taverna.workflowmodel.Edits" /> + <reference id="activityIconManager" interface="org.apache.taverna.workbench.activityicons.ActivityIconManager" /> + <reference id="colourManager" interface="org.apache.taverna.workbench.configuration.colour.ColourManager" /> + <reference id="serviceDescriptionRegistry" interface="org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry" /> + <reference id="workbenchConfiguration" interface="org.apache.taverna.workbench.configuration.workbench.WorkbenchConfiguration" /> + <reference id="selectionManager" interface="org.apache.taverna.workbench.selection.SelectionManager" /> </beans:beans> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/main/resources/META-INF/spring/dataflow-activity-ui-context.xml ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/main/resources/META-INF/spring/dataflow-activity-ui-context.xml b/taverna-dataflow-activity-ui/src/main/resources/META-INF/spring/dataflow-activity-ui-context.xml index f72abd2..faa1a43 100644 --- a/taverna-dataflow-activity-ui/src/main/resources/META-INF/spring/dataflow-activity-ui-context.xml +++ b/taverna-dataflow-activity-ui/src/main/resources/META-INF/spring/dataflow-activity-ui-context.xml @@ -3,11 +3,11 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> - <bean id="DataflowActivityIcon" class="net.sf.taverna.t2.activities.dataflow.servicedescriptions.DataflowActivityIcon" /> + <bean id="DataflowActivityIcon" class="org.apache.taverna.activities.dataflow.servicedescriptions.DataflowActivityIcon" /> - <bean id="DataflowTemplateService" class="net.sf.taverna.t2.activities.dataflow.servicedescriptions.DataflowTemplateService" /> + <bean id="DataflowTemplateService" class="org.apache.taverna.activities.dataflow.servicedescriptions.DataflowTemplateService" /> - <bean id="ReplaceNestedWorkflowMenuAction" class="net.sf.taverna.t2.workbench.file.importworkflow.menu.ReplaceNestedWorkflowMenuAction"> + <bean id="ReplaceNestedWorkflowMenuAction" class="org.apache.taverna.workbench.file.importworkflow.menu.ReplaceNestedWorkflowMenuAction"> <property name="editManager" ref="editManager" /> <property name="fileManager" ref="fileManager" /> <property name="menuManager" ref="menuManager" /> @@ -17,7 +17,7 @@ <property name="workbenchConfiguration" ref="workbenchConfiguration" /> <property name="selectionManager" ref="selectionManager" /> </bean> - <bean id="AddNestedWorkflowMenuAction" class="net.sf.taverna.t2.workbench.file.importworkflow.menu.AddNestedWorkflowMenuAction"> + <bean id="AddNestedWorkflowMenuAction" class="org.apache.taverna.workbench.file.importworkflow.menu.AddNestedWorkflowMenuAction"> <property name="editManager" ref="editManager" /> <property name="fileManager" ref="fileManager" /> <property name="menuManager" ref="menuManager" /> @@ -25,7 +25,7 @@ <property name="workbenchConfiguration" ref="workbenchConfiguration" /> <property name="selectionManager" ref="selectionManager" /> </bean> - <bean id="ImportWorkflowMenuAction" class="net.sf.taverna.t2.workbench.file.importworkflow.menu.ImportWorkflowMenuAction"> + <bean id="ImportWorkflowMenuAction" class="org.apache.taverna.workbench.file.importworkflow.menu.ImportWorkflowMenuAction"> <property name="editManager" ref="editManager" /> <property name="fileManager" ref="fileManager" /> <property name="menuManager" ref="menuManager" /> @@ -33,7 +33,7 @@ <property name="workbenchConfiguration" ref="workbenchConfiguration" /> <property name="selectionManager" ref="selectionManager" /> </bean> - <bean id="MergeWorkflowMenuAction" class="net.sf.taverna.t2.workbench.file.importworkflow.menu.MergeWorkflowMenuAction"> + <bean id="MergeWorkflowMenuAction" class="org.apache.taverna.workbench.file.importworkflow.menu.MergeWorkflowMenuAction"> <property name="editManager" ref="editManager" /> <property name="fileManager" ref="fileManager" /> <property name="menuManager" ref="menuManager" /> @@ -41,16 +41,16 @@ <property name="workbenchConfiguration" ref="workbenchConfiguration" /> <property name="selectionManager" ref="selectionManager" /> </bean> - <bean id="EditNestedDataflowMenuAction" class="net.sf.taverna.t2.activities.dataflow.menu.EditNestedDataflowMenuAction"> + <bean id="EditNestedDataflowMenuAction" class="org.apache.taverna.activities.dataflow.menu.EditNestedDataflowMenuAction"> <property name="selectionManager" ref="selectionManager" /> </bean> - <!-- <bean id="NestedDataflowPersistenceHandler" class="net.sf.taverna.t2.activities.dataflow.filemanager.NestedDataflowPersistenceHandler"> + <!-- <bean id="NestedDataflowPersistenceHandler" class="org.apache.taverna.activities.dataflow.filemanager.NestedDataflowPersistenceHandler"> <property name="editManager" ref="editManager" /> <property name="fileManager" ref="fileManager" /> </bean> --> - <bean id="DataflowActivityViewFactory" class="net.sf.taverna.t2.activities.dataflow.views.DataflowActivityViewFactory"> + <bean id="DataflowActivityViewFactory" class="org.apache.taverna.activities.dataflow.views.DataflowActivityViewFactory"> <property name="editManager" ref="editManager" /> <property name="fileManager" ref="fileManager" /> <property name="menuManager" ref="menuManager" /> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/AbstractTestHelper.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/AbstractTestHelper.java b/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/AbstractTestHelper.java deleted file mode 100644 index 9c43474..0000000 --- a/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/AbstractTestHelper.java +++ /dev/null @@ -1,266 +0,0 @@ -package net.sf.taverna.t2.workbench.file.importworkflow; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.io.InputStream; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import org.junit.Before; - -import org.apache.taverna.scufl2.api.common.Scufl2Tools; -import org.apache.taverna.scufl2.api.container.WorkflowBundle; -import org.apache.taverna.scufl2.api.core.BlockingControlLink; -import org.apache.taverna.scufl2.api.core.ControlLink; -import org.apache.taverna.scufl2.api.core.DataLink; -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.io.WorkflowBundleIO; -import org.apache.taverna.scufl2.api.port.InputWorkflowPort; -import org.apache.taverna.scufl2.api.port.OutputWorkflowPort; -import org.apache.taverna.scufl2.api.port.ProcessorPort; -import org.apache.taverna.scufl2.api.port.ReceiverPort; -import org.apache.taverna.scufl2.api.port.SenderPort; - -public abstract class AbstractTestHelper { - - private static final String Q_T2FLOW = "/q.t2flow"; - - private static final String ABC_T2FLOW = "/abc.t2flow"; - - private static final String P_T2FLOW = "/p.t2flow"; - - private WorkflowBundleIO workflowBundleIO = new WorkflowBundleIO(); - - protected Scufl2Tools scufl2Tools = new Scufl2Tools(); - - protected Workflow abc; - - protected Workflow p; - - protected Workflow q; - - protected void assertHasConditionals(Workflow dataflow, - String... expectedConditionalDef) { - Set<String> expectedConditionals = new HashSet<String>(); - for (String expected : expectedConditionalDef) { - expectedConditionals.add(expected); - } - - Set<String> foundConditionals = new HashSet<String>(); - - for (ControlLink c : dataflow.getControlLinks()) { - if (c instanceof BlockingControlLink) { - BlockingControlLink bcl = (BlockingControlLink) c; - foundConditionals.add(bcl.getUntilFinished().getName() + ";" - + bcl.getBlock().getName()); - } - } - - Set<String> extras = new HashSet<String>(foundConditionals); - extras.removeAll(expectedConditionals); - assertTrue("Unexpected conditional " + extras, extras.isEmpty()); - - Set<String> missing = new HashSet<String>(expectedConditionals); - missing.removeAll(foundConditionals); - assertTrue("Could not find conditional " + missing, missing.isEmpty()); - } - - protected void assertHasDatalinks(Workflow dataflow, - String... expectedLinkDef) { - Set<String> expectedLinks = new HashSet<String>(); - for (String expected : expectedLinkDef) { - expectedLinks.add(expected); - } - - Set<String> foundLinks = new HashSet<String>(); - - for (DataLink link : dataflow.getDataLinks()) { - StringBuilder linkRef = new StringBuilder(); - SenderPort source = link.getReceivesFrom(); - if (source instanceof ProcessorPort) { - linkRef.append(((ProcessorPort) source).getParent() - .getName()); - linkRef.append('.'); - } - linkRef.append(source.getName()); - - linkRef.append("->"); - - ReceiverPort sink = link.getSendsTo(); - if (sink instanceof ProcessorPort) { - linkRef.append(((ProcessorPort) sink).getParent() - .getName()); - linkRef.append('.'); - } - linkRef.append(sink.getName()); - - String linkStr = linkRef.toString(); - foundLinks.add(linkStr); - } - - Set<String> extras = new HashSet<String>(foundLinks); - extras.removeAll(expectedLinks); - assertTrue("Unexpected links " + extras, extras.isEmpty()); - - Set<String> missing = new HashSet<String>(expectedLinks); - missing.removeAll(foundLinks); - assertTrue("Could not find links " + missing, missing.isEmpty()); - } - - protected void assertHasInputPorts(Workflow dataflow, - String... expectedInputPorts) { - Set<String> expectedNames = new HashSet<String>(); - for (String expected : expectedInputPorts) { - expectedNames.add(expected); - } - Set<String> foundNames = new HashSet<String>(); - for (InputWorkflowPort port : dataflow.getInputPorts()) { - String name = port.getName(); - foundNames.add(name); - } - - Set<String> extras = new HashSet<String>(foundNames); - extras.removeAll(expectedNames); - assertTrue("Unexpected input port " + extras, extras.isEmpty()); - - Set<String> missing = new HashSet<String>(expectedNames); - missing.removeAll(foundNames); - assertTrue("Could not find input port " + missing, missing.isEmpty()); - - } - - protected void assertHasOutputPorts(Workflow dataflow, - String... expectedOutputPorts) { - Set<String> expectedNames = new HashSet<String>(); - for (String expected : expectedOutputPorts) { - expectedNames.add(expected); - } - Set<String> foundNames = new HashSet<String>(); - for (OutputWorkflowPort port : dataflow.getOutputPorts()) { - String name = port.getName(); - foundNames.add(name); - } - - Set<String> extras = new HashSet<String>(foundNames); - extras.removeAll(expectedNames); - assertTrue("Unexpected output port " + extras, extras.isEmpty()); - - Set<String> missing = new HashSet<String>(expectedNames); - missing.removeAll(foundNames); - assertTrue("Could not find output port " + missing, missing.isEmpty()); - } - - protected void assertHasProcessors(Workflow dataflow, - String... expectedProcessors) { - Set<String> expectedNames = new HashSet<String>(); - for (String expected : expectedProcessors) { - expectedNames.add(expected); - } - Set<String> foundNames = new HashSet<String>(); - - for (Processor proc : dataflow.getProcessors()) { - String processorName = proc.getName(); - foundNames.add(processorName); - } - - Set<String> extras = new HashSet<String>(foundNames); - extras.removeAll(expectedNames); - assertTrue("Unexpected processor " + extras, extras.isEmpty()); - - Set<String> missing = new HashSet<String>(expectedNames); - missing.removeAll(foundNames); - assertTrue("Could not find processor " + missing, missing.isEmpty()); - } - - protected void checkAbc() throws Exception { - assertHasProcessors(abc, "A", "B", "C"); - assertHasInputPorts(abc, "in1", "in2"); - assertHasOutputPorts(abc, "a", "b", "c"); - assertHasDatalinks(abc, "in2->B.inputlist", "in1->A.string1", - "in2->A.string2", "Merge0:Merge0_output->C.inputlist", - "A.output->a", "B.outputlist->b", - "B.outputlist->Merge0:outputlistToMerge0_input0", - "A.output->Merge0:outputToMerge0_input0", "C.outputlist->c"); - assertHasConditionals(abc, "A;B"); - } - - protected void checkP() throws Exception { - assertHasProcessors(p, "P"); - assertHasInputPorts(p, "i"); - assertHasOutputPorts(p, "o"); - assertHasDatalinks(p, "i->P.inputlist", "P.outputlist->o"); - assertHasConditionals(p); - - } - - protected void checkQ() throws Exception { - assertHasProcessors(q, "Q"); - assertHasInputPorts(q, "p"); - assertHasOutputPorts(q, "p", "q"); - assertHasDatalinks(q, "p->Q.inputlist", "Q.outputlist->q", "p->p"); - assertHasConditionals(q); - - List<DataLink> datalinksTo = scufl2Tools.datalinksTo(findOutputPort(q, "p")); - assertEquals(1, datalinksTo.size()); - SenderPort source = datalinksTo.get(0).getReceivesFrom(); - assertEquals("out port P not linked to input P", source, findInputPort(q, "p")); - - } - - protected Workflow loadAbc() throws Exception { - return openWorkflow(getClass().getResourceAsStream(ABC_T2FLOW)); - } - - protected Workflow loadP() throws Exception { - return openWorkflow(getClass().getResourceAsStream(P_T2FLOW)); - } - - protected Workflow loadQ() throws Exception { - return openWorkflow(getClass().getResourceAsStream(Q_T2FLOW)); - } - - @Before - public void loadWorkflows() throws Exception { - abc = loadAbc(); - p = loadP(); - q = loadQ(); - } - - protected Workflow openWorkflow(InputStream workflowXMLstream) throws Exception { - assertNotNull(workflowXMLstream); - WorkflowBundle workflowBundle = workflowBundleIO.readBundle(workflowXMLstream, "application/vnd.taverna.t2flow+xml"); - return workflowBundle.getMainWorkflow(); - } - - protected InputWorkflowPort findInputPort(Workflow wf, String name) { - for (InputWorkflowPort inp : wf.getInputPorts()) { - if (inp.getName().equals(name)) { - return inp; - } - } - throw new IllegalArgumentException("Unknown input port: " + name); - } - - protected OutputWorkflowPort findOutputPort(Workflow wf, String name) { - for (OutputWorkflowPort outp : wf.getOutputPorts()) { - if (outp.getName().equals(name)) { - return outp; - } - } - throw new IllegalArgumentException("Unknown output port: " + name); - } - - protected Processor findProcessor(Workflow wf, String name) { - for (Processor proc : wf.getProcessors()) { - if (proc.getName().equals(name)) { - return proc; - } - } - throw new IllegalArgumentException("Unknown processor: " + name); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestPortMerge.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestPortMerge.java b/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestPortMerge.java deleted file mode 100644 index d950ae2..0000000 --- a/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestPortMerge.java +++ /dev/null @@ -1,38 +0,0 @@ -package net.sf.taverna.t2.workbench.file.importworkflow; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertSame; - -import java.util.List; - -import org.junit.Ignore; -import org.junit.Test; - -import org.apache.taverna.scufl2.api.core.DataLink; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.port.SenderPort; - -@Ignore -public class TestPortMerge extends AbstractTestHelper { - - @Test - public void mergeQintoP() throws Exception { - DataflowMerger merger = new DataflowMerger(p); - merger.getMergeEdit(q).doEdit(); - Workflow merged = p; - checkQ(); - - assertHasProcessors(merged, "P", "Q"); - assertHasInputPorts(merged, "i", "p"); - assertHasOutputPorts(merged, "o", "p", "q"); - assertHasDatalinks(merged, "i->P.inputlist", "P.outputlist->o", "p->Q.inputlist", - "Q.outputlist->q", "p->p"); - - List<DataLink> datalinksTo = scufl2Tools.datalinksTo(findOutputPort(merged, "p")); - assertEquals(1, datalinksTo.size()); - SenderPort source = datalinksTo.get(0).getReceivesFrom(); - assertSame("out port P not linked to input P", source, findInputPort(merged, "p")); - - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestRename.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestRename.java b/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestRename.java deleted file mode 100644 index 2755645..0000000 --- a/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestRename.java +++ /dev/null @@ -1,58 +0,0 @@ -package net.sf.taverna.t2.workbench.file.importworkflow; - -import org.junit.Ignore; -import org.junit.Test; - -import org.apache.taverna.scufl2.api.core.Workflow; - -@Ignore -public class TestRename extends AbstractTestHelper { - - @Test - public void mergePintoP() throws Exception { - DataflowMerger merger = new DataflowMerger(p); - merger.getMergeEdit(p).doEdit(); - Workflow merged = p; - - assertHasProcessors(merged, "P", "P_2"); - assertHasInputPorts(merged, "i", "i_2"); - assertHasOutputPorts(merged, "o", "o_2"); - assertHasDatalinks(merged, "i->P.inputlist", "P.outputlist->o", - "i_2->P_2.inputlist", "P_2.outputlist->o_2"); - } - - @Test - public void mergePintoPintoP() throws Exception { - // Don't put p in constructor, or we would get exponential merging! - Workflow merged = new Workflow(); - DataflowMerger merger = new DataflowMerger(merged); - merger.getMergeEdit(p).doEdit(); - merger.getMergeEdit(p).doEdit(); - merger.getMergeEdit(p).doEdit(); - - assertHasProcessors(merged, "P", "P_2", "P_3"); - assertHasInputPorts(merged, "i", "i_2", "i_3"); - assertHasOutputPorts(merged, "o", "o_2", "o_3"); - assertHasDatalinks(merged, "i->P.inputlist", "P.outputlist->o", - "i_2->P_2.inputlist", "P_2.outputlist->o_2", - "i_3->P_3.inputlist", "P_3.outputlist->o_3"); - } - - @Test - public void mergePintoPWithPrefix() throws Exception { - // Don't put p in constructor, or we would get exponential merging! - Workflow merged = new Workflow(); - DataflowMerger merger = new DataflowMerger(merged); - merger.getMergeEdit(p).doEdit(); - merger.getMergeEdit(p, "fish_").doEdit(); - merger.getMergeEdit(p, "soup_").doEdit(); - - assertHasProcessors(merged, "P", "fish_P", "soup_P"); - assertHasInputPorts(merged, "i", "fish_i", "soup_i"); - assertHasOutputPorts(merged, "o", "fish_o", "soup_o"); - assertHasDatalinks(merged, "i->P.inputlist", "P.outputlist->o", - "fish_i->fish_P.inputlist", "fish_P.outputlist->fish_o", - "soup_i->soup_P.inputlist", "soup_P.outputlist->soup_o"); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestSimpleMerge.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestSimpleMerge.java b/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestSimpleMerge.java deleted file mode 100644 index 8199979..0000000 --- a/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestSimpleMerge.java +++ /dev/null @@ -1,98 +0,0 @@ -package net.sf.taverna.t2.workbench.file.importworkflow; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertSame; - -import java.util.List; - -import org.junit.Ignore; -import org.junit.Test; - -import org.apache.taverna.scufl2.api.core.DataLink; -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.port.InputProcessorPort; -import org.apache.taverna.scufl2.api.port.InputWorkflowPort; -import org.apache.taverna.scufl2.api.port.SenderPort; - -@Ignore -public class TestSimpleMerge extends AbstractTestHelper { - - private void checkMergedAbcP(Workflow merged) { - // Check that it has everything from both - assertHasProcessors(merged, "A", "B", "C", "P"); - assertHasInputPorts(merged, "in1", "in2", "i"); - assertHasOutputPorts(merged, "a", "b", "c", "o"); - assertHasDatalinks(merged, "in2->B.inputlist", "in1->A.string1", - "in2->A.string2", "Merge0:Merge0_output->C.inputlist", - "A.output->a", "B.outputlist->b", - "B.outputlist->Merge0:outputlistToMerge0_input0", - "A.output->Merge0:outputToMerge0_input0", "C.outputlist->c", - "i->P.inputlist", "P.outputlist->o"); - assertHasConditionals(merged, "A;B"); - } - - private void checkCopiedFromP(Workflow merged) { - Processor newProcP = findProcessor(merged, "P"); - Processor originalProcP = findProcessor(p, "P"); - assertNotSame("Did not copy processor P", newProcP, originalProcP); - - InputProcessorPort inp = newProcP.getInputPorts().first(); - InputWorkflowPort newInI = findInputPort(merged, "i"); - assertEquals(0, newInI.getDepth().intValue()); - - InputWorkflowPort originalInI = findInputPort(p, "i"); - assertNotSame("Did not copy port 'i'", originalInI, newInI); - - List<DataLink> datalinksTo = scufl2Tools.datalinksTo(inp); - assertEquals(1, datalinksTo.size()); - SenderPort source = datalinksTo.get(0).getReceivesFrom(); - - assertSame("Not linked to new port", source, newInI); - assertNotSame("Still linked to old port", source, originalInI); - } - - - @Test - public void mergeAbcAndPIntoNew() throws Exception { - Workflow merged = new Workflow(); - DataflowMerger merger = new DataflowMerger(merged); - merger.getMergeEdit(abc).doEdit(); - - assertNotSame(abc, merged); - merger.getMergeEdit(p).doEdit(); - - - // Assert abc and p were not modified - checkAbc(); - checkP(); - - checkMergedAbcP(merged); - checkCopiedFromP(merged); - } - - @Test - public void mergePintoAbc() throws Exception { - DataflowMerger merger = new DataflowMerger(abc); - Workflow merged = abc; - - merger.getMergeEdit(p).doEdit(); - checkMergedAbcP(merged); - checkCopiedFromP(merged); - // Assert P did not change - checkP(); - } - - @Test - public void mergeAbcintoP() throws Exception { - Workflow merged = p; - DataflowMerger merger = new DataflowMerger(merged); - merger.getMergeEdit(abc).doEdit(); - - checkMergedAbcP(merged); - // Assert ABC did not change - checkAbc(); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestTestHelper.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestTestHelper.java b/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestTestHelper.java deleted file mode 100644 index 2165a67..0000000 --- a/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/TestTestHelper.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.sf.taverna.t2.workbench.file.importworkflow; - -import org.junit.Ignore; -import org.junit.Test; - -@Ignore -public class TestTestHelper extends AbstractTestHelper { - - @Test - public void checkAbc() throws Exception { - super.checkAbc(); - } - - @Test - public void checkP() throws Exception { - super.checkP(); - } - - @Test - public void checkQ() throws Exception { - super.checkQ(); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/gui/ImportWizardLauncher.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/gui/ImportWizardLauncher.java b/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/gui/ImportWizardLauncher.java deleted file mode 100644 index b45a774..0000000 --- a/taverna-dataflow-activity-ui/src/test/java/net/sf/taverna/t2/workbench/file/importworkflow/gui/ImportWizardLauncher.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.sf.taverna.t2.workbench.file.importworkflow.gui; - -import javax.swing.UIManager; - -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.edits.impl.EditManagerImpl; -import net.sf.taverna.t2.workbench.file.FileManager; -import net.sf.taverna.t2.workbench.file.impl.FileManagerImpl; - - -public class ImportWizardLauncher { - - public static void main(String[] args) throws Exception { - - UIManager.setLookAndFeel(UIManager - .getSystemLookAndFeelClassName()); - - EditManager editManager = new EditManagerImpl(); - FileManager fileManager = new FileManagerImpl(editManager); - - ImportWorkflowWizard s = new ImportWorkflowWizard(null, editManager, fileManager, null, null, null, null); - s.setVisible(true); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/AbstractTestHelper.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/AbstractTestHelper.java b/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/AbstractTestHelper.java new file mode 100644 index 0000000..2e4dde5 --- /dev/null +++ b/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/AbstractTestHelper.java @@ -0,0 +1,266 @@ +package org.apache.taverna.workbench.file.importworkflow; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.io.InputStream; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.junit.Before; + +import org.apache.taverna.scufl2.api.common.Scufl2Tools; +import org.apache.taverna.scufl2.api.container.WorkflowBundle; +import org.apache.taverna.scufl2.api.core.BlockingControlLink; +import org.apache.taverna.scufl2.api.core.ControlLink; +import org.apache.taverna.scufl2.api.core.DataLink; +import org.apache.taverna.scufl2.api.core.Processor; +import org.apache.taverna.scufl2.api.core.Workflow; +import org.apache.taverna.scufl2.api.io.WorkflowBundleIO; +import org.apache.taverna.scufl2.api.port.InputWorkflowPort; +import org.apache.taverna.scufl2.api.port.OutputWorkflowPort; +import org.apache.taverna.scufl2.api.port.ProcessorPort; +import org.apache.taverna.scufl2.api.port.ReceiverPort; +import org.apache.taverna.scufl2.api.port.SenderPort; + +public abstract class AbstractTestHelper { + + private static final String Q_T2FLOW = "/q.t2flow"; + + private static final String ABC_T2FLOW = "/abc.t2flow"; + + private static final String P_T2FLOW = "/p.t2flow"; + + private WorkflowBundleIO workflowBundleIO = new WorkflowBundleIO(); + + protected Scufl2Tools scufl2Tools = new Scufl2Tools(); + + protected Workflow abc; + + protected Workflow p; + + protected Workflow q; + + protected void assertHasConditionals(Workflow dataflow, + String... expectedConditionalDef) { + Set<String> expectedConditionals = new HashSet<String>(); + for (String expected : expectedConditionalDef) { + expectedConditionals.add(expected); + } + + Set<String> foundConditionals = new HashSet<String>(); + + for (ControlLink c : dataflow.getControlLinks()) { + if (c instanceof BlockingControlLink) { + BlockingControlLink bcl = (BlockingControlLink) c; + foundConditionals.add(bcl.getUntilFinished().getName() + ";" + + bcl.getBlock().getName()); + } + } + + Set<String> extras = new HashSet<String>(foundConditionals); + extras.removeAll(expectedConditionals); + assertTrue("Unexpected conditional " + extras, extras.isEmpty()); + + Set<String> missing = new HashSet<String>(expectedConditionals); + missing.removeAll(foundConditionals); + assertTrue("Could not find conditional " + missing, missing.isEmpty()); + } + + protected void assertHasDatalinks(Workflow dataflow, + String... expectedLinkDef) { + Set<String> expectedLinks = new HashSet<String>(); + for (String expected : expectedLinkDef) { + expectedLinks.add(expected); + } + + Set<String> foundLinks = new HashSet<String>(); + + for (DataLink link : dataflow.getDataLinks()) { + StringBuilder linkRef = new StringBuilder(); + SenderPort source = link.getReceivesFrom(); + if (source instanceof ProcessorPort) { + linkRef.append(((ProcessorPort) source).getParent() + .getName()); + linkRef.append('.'); + } + linkRef.append(source.getName()); + + linkRef.append("->"); + + ReceiverPort sink = link.getSendsTo(); + if (sink instanceof ProcessorPort) { + linkRef.append(((ProcessorPort) sink).getParent() + .getName()); + linkRef.append('.'); + } + linkRef.append(sink.getName()); + + String linkStr = linkRef.toString(); + foundLinks.add(linkStr); + } + + Set<String> extras = new HashSet<String>(foundLinks); + extras.removeAll(expectedLinks); + assertTrue("Unexpected links " + extras, extras.isEmpty()); + + Set<String> missing = new HashSet<String>(expectedLinks); + missing.removeAll(foundLinks); + assertTrue("Could not find links " + missing, missing.isEmpty()); + } + + protected void assertHasInputPorts(Workflow dataflow, + String... expectedInputPorts) { + Set<String> expectedNames = new HashSet<String>(); + for (String expected : expectedInputPorts) { + expectedNames.add(expected); + } + Set<String> foundNames = new HashSet<String>(); + for (InputWorkflowPort port : dataflow.getInputPorts()) { + String name = port.getName(); + foundNames.add(name); + } + + Set<String> extras = new HashSet<String>(foundNames); + extras.removeAll(expectedNames); + assertTrue("Unexpected input port " + extras, extras.isEmpty()); + + Set<String> missing = new HashSet<String>(expectedNames); + missing.removeAll(foundNames); + assertTrue("Could not find input port " + missing, missing.isEmpty()); + + } + + protected void assertHasOutputPorts(Workflow dataflow, + String... expectedOutputPorts) { + Set<String> expectedNames = new HashSet<String>(); + for (String expected : expectedOutputPorts) { + expectedNames.add(expected); + } + Set<String> foundNames = new HashSet<String>(); + for (OutputWorkflowPort port : dataflow.getOutputPorts()) { + String name = port.getName(); + foundNames.add(name); + } + + Set<String> extras = new HashSet<String>(foundNames); + extras.removeAll(expectedNames); + assertTrue("Unexpected output port " + extras, extras.isEmpty()); + + Set<String> missing = new HashSet<String>(expectedNames); + missing.removeAll(foundNames); + assertTrue("Could not find output port " + missing, missing.isEmpty()); + } + + protected void assertHasProcessors(Workflow dataflow, + String... expectedProcessors) { + Set<String> expectedNames = new HashSet<String>(); + for (String expected : expectedProcessors) { + expectedNames.add(expected); + } + Set<String> foundNames = new HashSet<String>(); + + for (Processor proc : dataflow.getProcessors()) { + String processorName = proc.getName(); + foundNames.add(processorName); + } + + Set<String> extras = new HashSet<String>(foundNames); + extras.removeAll(expectedNames); + assertTrue("Unexpected processor " + extras, extras.isEmpty()); + + Set<String> missing = new HashSet<String>(expectedNames); + missing.removeAll(foundNames); + assertTrue("Could not find processor " + missing, missing.isEmpty()); + } + + protected void checkAbc() throws Exception { + assertHasProcessors(abc, "A", "B", "C"); + assertHasInputPorts(abc, "in1", "in2"); + assertHasOutputPorts(abc, "a", "b", "c"); + assertHasDatalinks(abc, "in2->B.inputlist", "in1->A.string1", + "in2->A.string2", "Merge0:Merge0_output->C.inputlist", + "A.output->a", "B.outputlist->b", + "B.outputlist->Merge0:outputlistToMerge0_input0", + "A.output->Merge0:outputToMerge0_input0", "C.outputlist->c"); + assertHasConditionals(abc, "A;B"); + } + + protected void checkP() throws Exception { + assertHasProcessors(p, "P"); + assertHasInputPorts(p, "i"); + assertHasOutputPorts(p, "o"); + assertHasDatalinks(p, "i->P.inputlist", "P.outputlist->o"); + assertHasConditionals(p); + + } + + protected void checkQ() throws Exception { + assertHasProcessors(q, "Q"); + assertHasInputPorts(q, "p"); + assertHasOutputPorts(q, "p", "q"); + assertHasDatalinks(q, "p->Q.inputlist", "Q.outputlist->q", "p->p"); + assertHasConditionals(q); + + List<DataLink> datalinksTo = scufl2Tools.datalinksTo(findOutputPort(q, "p")); + assertEquals(1, datalinksTo.size()); + SenderPort source = datalinksTo.get(0).getReceivesFrom(); + assertEquals("out port P not linked to input P", source, findInputPort(q, "p")); + + } + + protected Workflow loadAbc() throws Exception { + return openWorkflow(getClass().getResourceAsStream(ABC_T2FLOW)); + } + + protected Workflow loadP() throws Exception { + return openWorkflow(getClass().getResourceAsStream(P_T2FLOW)); + } + + protected Workflow loadQ() throws Exception { + return openWorkflow(getClass().getResourceAsStream(Q_T2FLOW)); + } + + @Before + public void loadWorkflows() throws Exception { + abc = loadAbc(); + p = loadP(); + q = loadQ(); + } + + protected Workflow openWorkflow(InputStream workflowXMLstream) throws Exception { + assertNotNull(workflowXMLstream); + WorkflowBundle workflowBundle = workflowBundleIO.readBundle(workflowXMLstream, "application/vnd.taverna.t2flow+xml"); + return workflowBundle.getMainWorkflow(); + } + + protected InputWorkflowPort findInputPort(Workflow wf, String name) { + for (InputWorkflowPort inp : wf.getInputPorts()) { + if (inp.getName().equals(name)) { + return inp; + } + } + throw new IllegalArgumentException("Unknown input port: " + name); + } + + protected OutputWorkflowPort findOutputPort(Workflow wf, String name) { + for (OutputWorkflowPort outp : wf.getOutputPorts()) { + if (outp.getName().equals(name)) { + return outp; + } + } + throw new IllegalArgumentException("Unknown output port: " + name); + } + + protected Processor findProcessor(Workflow wf, String name) { + for (Processor proc : wf.getProcessors()) { + if (proc.getName().equals(name)) { + return proc; + } + } + throw new IllegalArgumentException("Unknown processor: " + name); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestPortMerge.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestPortMerge.java b/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestPortMerge.java new file mode 100644 index 0000000..9ccc3be --- /dev/null +++ b/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestPortMerge.java @@ -0,0 +1,39 @@ +package org.apache.taverna.workbench.file.importworkflow; + +import org.apache.taverna.workbench.file.importworkflow.DataflowMerger; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import org.apache.taverna.scufl2.api.core.DataLink; +import org.apache.taverna.scufl2.api.core.Workflow; +import org.apache.taverna.scufl2.api.port.SenderPort; + +@Ignore +public class TestPortMerge extends AbstractTestHelper { + + @Test + public void mergeQintoP() throws Exception { + DataflowMerger merger = new DataflowMerger(p); + merger.getMergeEdit(q).doEdit(); + Workflow merged = p; + checkQ(); + + assertHasProcessors(merged, "P", "Q"); + assertHasInputPorts(merged, "i", "p"); + assertHasOutputPorts(merged, "o", "p", "q"); + assertHasDatalinks(merged, "i->P.inputlist", "P.outputlist->o", "p->Q.inputlist", + "Q.outputlist->q", "p->p"); + + List<DataLink> datalinksTo = scufl2Tools.datalinksTo(findOutputPort(merged, "p")); + assertEquals(1, datalinksTo.size()); + SenderPort source = datalinksTo.get(0).getReceivesFrom(); + assertSame("out port P not linked to input P", source, findInputPort(merged, "p")); + + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestRename.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestRename.java b/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestRename.java new file mode 100644 index 0000000..bae4b3b --- /dev/null +++ b/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestRename.java @@ -0,0 +1,59 @@ +package org.apache.taverna.workbench.file.importworkflow; + +import org.apache.taverna.workbench.file.importworkflow.DataflowMerger; +import org.junit.Ignore; +import org.junit.Test; + +import org.apache.taverna.scufl2.api.core.Workflow; + +@Ignore +public class TestRename extends AbstractTestHelper { + + @Test + public void mergePintoP() throws Exception { + DataflowMerger merger = new DataflowMerger(p); + merger.getMergeEdit(p).doEdit(); + Workflow merged = p; + + assertHasProcessors(merged, "P", "P_2"); + assertHasInputPorts(merged, "i", "i_2"); + assertHasOutputPorts(merged, "o", "o_2"); + assertHasDatalinks(merged, "i->P.inputlist", "P.outputlist->o", + "i_2->P_2.inputlist", "P_2.outputlist->o_2"); + } + + @Test + public void mergePintoPintoP() throws Exception { + // Don't put p in constructor, or we would get exponential merging! + Workflow merged = new Workflow(); + DataflowMerger merger = new DataflowMerger(merged); + merger.getMergeEdit(p).doEdit(); + merger.getMergeEdit(p).doEdit(); + merger.getMergeEdit(p).doEdit(); + + assertHasProcessors(merged, "P", "P_2", "P_3"); + assertHasInputPorts(merged, "i", "i_2", "i_3"); + assertHasOutputPorts(merged, "o", "o_2", "o_3"); + assertHasDatalinks(merged, "i->P.inputlist", "P.outputlist->o", + "i_2->P_2.inputlist", "P_2.outputlist->o_2", + "i_3->P_3.inputlist", "P_3.outputlist->o_3"); + } + + @Test + public void mergePintoPWithPrefix() throws Exception { + // Don't put p in constructor, or we would get exponential merging! + Workflow merged = new Workflow(); + DataflowMerger merger = new DataflowMerger(merged); + merger.getMergeEdit(p).doEdit(); + merger.getMergeEdit(p, "fish_").doEdit(); + merger.getMergeEdit(p, "soup_").doEdit(); + + assertHasProcessors(merged, "P", "fish_P", "soup_P"); + assertHasInputPorts(merged, "i", "fish_i", "soup_i"); + assertHasOutputPorts(merged, "o", "fish_o", "soup_o"); + assertHasDatalinks(merged, "i->P.inputlist", "P.outputlist->o", + "fish_i->fish_P.inputlist", "fish_P.outputlist->fish_o", + "soup_i->soup_P.inputlist", "soup_P.outputlist->soup_o"); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestSimpleMerge.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestSimpleMerge.java b/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestSimpleMerge.java new file mode 100644 index 0000000..7dc9f96 --- /dev/null +++ b/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestSimpleMerge.java @@ -0,0 +1,99 @@ +package org.apache.taverna.workbench.file.importworkflow; + +import org.apache.taverna.workbench.file.importworkflow.DataflowMerger; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotSame; +import static org.junit.Assert.assertSame; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import org.apache.taverna.scufl2.api.core.DataLink; +import org.apache.taverna.scufl2.api.core.Processor; +import org.apache.taverna.scufl2.api.core.Workflow; +import org.apache.taverna.scufl2.api.port.InputProcessorPort; +import org.apache.taverna.scufl2.api.port.InputWorkflowPort; +import org.apache.taverna.scufl2.api.port.SenderPort; + +@Ignore +public class TestSimpleMerge extends AbstractTestHelper { + + private void checkMergedAbcP(Workflow merged) { + // Check that it has everything from both + assertHasProcessors(merged, "A", "B", "C", "P"); + assertHasInputPorts(merged, "in1", "in2", "i"); + assertHasOutputPorts(merged, "a", "b", "c", "o"); + assertHasDatalinks(merged, "in2->B.inputlist", "in1->A.string1", + "in2->A.string2", "Merge0:Merge0_output->C.inputlist", + "A.output->a", "B.outputlist->b", + "B.outputlist->Merge0:outputlistToMerge0_input0", + "A.output->Merge0:outputToMerge0_input0", "C.outputlist->c", + "i->P.inputlist", "P.outputlist->o"); + assertHasConditionals(merged, "A;B"); + } + + private void checkCopiedFromP(Workflow merged) { + Processor newProcP = findProcessor(merged, "P"); + Processor originalProcP = findProcessor(p, "P"); + assertNotSame("Did not copy processor P", newProcP, originalProcP); + + InputProcessorPort inp = newProcP.getInputPorts().first(); + InputWorkflowPort newInI = findInputPort(merged, "i"); + assertEquals(0, newInI.getDepth().intValue()); + + InputWorkflowPort originalInI = findInputPort(p, "i"); + assertNotSame("Did not copy port 'i'", originalInI, newInI); + + List<DataLink> datalinksTo = scufl2Tools.datalinksTo(inp); + assertEquals(1, datalinksTo.size()); + SenderPort source = datalinksTo.get(0).getReceivesFrom(); + + assertSame("Not linked to new port", source, newInI); + assertNotSame("Still linked to old port", source, originalInI); + } + + + @Test + public void mergeAbcAndPIntoNew() throws Exception { + Workflow merged = new Workflow(); + DataflowMerger merger = new DataflowMerger(merged); + merger.getMergeEdit(abc).doEdit(); + + assertNotSame(abc, merged); + merger.getMergeEdit(p).doEdit(); + + + // Assert abc and p were not modified + checkAbc(); + checkP(); + + checkMergedAbcP(merged); + checkCopiedFromP(merged); + } + + @Test + public void mergePintoAbc() throws Exception { + DataflowMerger merger = new DataflowMerger(abc); + Workflow merged = abc; + + merger.getMergeEdit(p).doEdit(); + checkMergedAbcP(merged); + checkCopiedFromP(merged); + // Assert P did not change + checkP(); + } + + @Test + public void mergeAbcintoP() throws Exception { + Workflow merged = p; + DataflowMerger merger = new DataflowMerger(merged); + merger.getMergeEdit(abc).doEdit(); + + checkMergedAbcP(merged); + // Assert ABC did not change + checkAbc(); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestTestHelper.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestTestHelper.java b/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestTestHelper.java new file mode 100644 index 0000000..8442f88 --- /dev/null +++ b/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/TestTestHelper.java @@ -0,0 +1,24 @@ +package org.apache.taverna.workbench.file.importworkflow; + +import org.junit.Ignore; +import org.junit.Test; + +@Ignore +public class TestTestHelper extends AbstractTestHelper { + + @Test + public void checkAbc() throws Exception { + super.checkAbc(); + } + + @Test + public void checkP() throws Exception { + super.checkP(); + } + + @Test + public void checkQ() throws Exception { + super.checkQ(); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/gui/ImportWizardLauncher.java ---------------------------------------------------------------------- diff --git a/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/gui/ImportWizardLauncher.java b/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/gui/ImportWizardLauncher.java new file mode 100644 index 0000000..96f67bf --- /dev/null +++ b/taverna-dataflow-activity-ui/src/test/java/org/apache/taverna/workbench/file/importworkflow/gui/ImportWizardLauncher.java @@ -0,0 +1,25 @@ +package org.apache.taverna.workbench.file.importworkflow.gui; + +import org.apache.taverna.workbench.file.importworkflow.gui.ImportWorkflowWizard; +import javax.swing.UIManager; + +import org.apache.taverna.workbench.edits.EditManager; +import org.apache.taverna.workbench.edits.impl.EditManagerImpl; +import org.apache.taverna.workbench.file.FileManager; +import net.sf.taverna.t2.workbench.file.impl.FileManagerImpl; + + +public class ImportWizardLauncher { + + public static void main(String[] args) throws Exception { + + UIManager.setLookAndFeel(UIManager + .getSystemLookAndFeelClassName()); + + EditManager editManager = new EditManagerImpl(); + FileManager fileManager = new FileManagerImpl(editManager); + + ImportWorkflowWizard s = new ImportWorkflowWizard(null, editManager, fileManager, null, null, null, null); + s.setVisible(true); + } +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/AddConditionAction.java ---------------------------------------------------------------------- diff --git a/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/AddConditionAction.java b/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/AddConditionAction.java deleted file mode 100644 index c26a1d6..0000000 --- a/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/AddConditionAction.java +++ /dev/null @@ -1,82 +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.design.actions; - -import java.awt.Component; -import java.awt.event.ActionEvent; - -import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager; -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 net.sf.taverna.t2.workflow.edits.AddChildEdit; - -import org.apache.log4j.Logger; - -import org.apache.taverna.scufl2.api.common.Scufl2Tools; -import org.apache.taverna.scufl2.api.core.BlockingControlLink; -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.profiles.ProcessorBinding; - -/** - * Action for adding a condition to the dataflow. - * - * @author David Withers - */ -@SuppressWarnings("serial") -public class AddConditionAction extends DataflowEditAction { - private static final Logger logger = Logger.getLogger(AddConditionAction.class); - private static final Scufl2Tools scufl2Tools = new Scufl2Tools(); - - private Processor control; - private Processor target; - - public AddConditionAction(Workflow dataflow, Processor control, - Processor target, Component component, EditManager editManager, - SelectionManager selectionManager, - ActivityIconManager activityIconManager) { - super(dataflow, component, editManager, selectionManager); - this.control = control; - this.target = target; - ProcessorBinding processorBinding = scufl2Tools - .processorBindingForProcessor(control, dataflow.getParent() - .getMainProfile()); - putValue(SMALL_ICON, - activityIconManager.iconForActivity(processorBinding - .getBoundActivity().getType())); - putValue(NAME, control.getName()); - } - - @Override - public void actionPerformed(ActionEvent event) { - try { - BlockingControlLink controlLink = new BlockingControlLink(); - controlLink.setUntilFinished(control); - controlLink.setBlock(target); - editManager.doDataflowEdit(dataflow.getParent(), - new AddChildEdit<>(dataflow, controlLink)); - } catch (EditException e) { - logger.debug("Create control link between '" + control.getName() - + "' and '" + target.getName() + "' failed"); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/AddDataflowInputAction.java ---------------------------------------------------------------------- diff --git a/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/AddDataflowInputAction.java b/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/AddDataflowInputAction.java deleted file mode 100644 index 36b6fcc..0000000 --- a/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/AddDataflowInputAction.java +++ /dev/null @@ -1,96 +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.design.actions; - -import java.awt.Component; -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.util.HashSet; -import java.util.Set; - -import net.sf.taverna.t2.lang.ui.ValidatingUserInputDialog; -import net.sf.taverna.t2.workbench.design.ui.DataflowInputPortPanel; -import net.sf.taverna.t2.workbench.edits.EditException; -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.icons.WorkbenchIcons; -import net.sf.taverna.t2.workbench.selection.SelectionManager; -import net.sf.taverna.t2.workflow.edits.AddWorkflowInputPortEdit; - -import org.apache.log4j.Logger; - -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.port.InputWorkflowPort; - -/** - * Action for adding an input port to the dataflow. - * - * @author David Withers - */ -@SuppressWarnings("serial") -public class AddDataflowInputAction extends DataflowEditAction { - private static final Logger logger = Logger - .getLogger(AddDataflowInputAction.class); - - public AddDataflowInputAction(Workflow dataflow, Component component, - EditManager editManager, SelectionManager selectionManager) { - super(dataflow, component, editManager, selectionManager); - putValue(SMALL_ICON, WorkbenchIcons.inputIcon); - putValue(NAME, "Workflow input port"); - putValue(SHORT_DESCRIPTION, "Add workflow input port"); - } - - @Override - public void actionPerformed(ActionEvent event) { - try { - Set<String> usedInputPorts = new HashSet<>(); - for (InputWorkflowPort inputPort : dataflow.getInputPorts()) - usedInputPorts.add(inputPort.getName()); - - DataflowInputPortPanel inputPanel = new DataflowInputPortPanel(); - - ValidatingUserInputDialog vuid = new ValidatingUserInputDialog( - "Add Workflow Input Port", inputPanel); - vuid.addTextComponentValidation(inputPanel.getPortNameField(), - "Set the workflow input port name.", usedInputPorts, - "Duplicate workflow input port name.", - "[\\p{L}\\p{Digit}_.]+", - "Invalid workflow input port name."); - vuid.addMessageComponent(inputPanel.getSingleValueButton(), - "Set the input port type."); - vuid.addMessageComponent(inputPanel.getListValueButton(), - "Set the input port list depth."); - vuid.setSize(new Dimension(400, 250)); - - inputPanel.setPortDepth(0); - - if (vuid.show(component)) { - InputWorkflowPort dataflowInputPort = new InputWorkflowPort(); - dataflowInputPort.setName(inputPanel.getPortName()); - dataflowInputPort.setDepth(inputPanel.getPortDepth()); - editManager.doDataflowEdit(dataflow.getParent(), - new AddWorkflowInputPortEdit(dataflow, - dataflowInputPort)); - } - } catch (EditException e) { - logger.warn("Adding a new workflow input port failed"); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/AddDataflowOutputAction.java ---------------------------------------------------------------------- diff --git a/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/AddDataflowOutputAction.java b/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/AddDataflowOutputAction.java deleted file mode 100644 index a1783d5..0000000 --- a/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/AddDataflowOutputAction.java +++ /dev/null @@ -1,90 +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.design.actions; - -import java.awt.Component; -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.util.HashSet; -import java.util.Set; - -import net.sf.taverna.t2.lang.ui.ValidatingUserInputDialog; -import net.sf.taverna.t2.workbench.design.ui.DataflowOutputPortPanel; -import net.sf.taverna.t2.workbench.edits.EditException; -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.icons.WorkbenchIcons; -import net.sf.taverna.t2.workbench.selection.SelectionManager; -import net.sf.taverna.t2.workflow.edits.AddWorkflowOutputPortEdit; - -import org.apache.log4j.Logger; - -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.port.OutputWorkflowPort; - -/** - * Action for adding an output port to the dataflow. - * - * @author David Withers - */ -@SuppressWarnings("serial") -public class AddDataflowOutputAction extends DataflowEditAction { - private static final Logger logger = Logger - .getLogger(AddDataflowOutputAction.class); - - public AddDataflowOutputAction(Workflow dataflow, Component component, - EditManager editManager, SelectionManager selectionManager) { - super(dataflow, component, editManager, selectionManager); - putValue(SMALL_ICON, WorkbenchIcons.outputIcon); - putValue(NAME, "Workflow output port"); - putValue(SHORT_DESCRIPTION, "Add workflow output port"); - } - - @Override - public void actionPerformed(ActionEvent event) { - try { - Set<String> usedOutputPorts = new HashSet<>(); - for (OutputWorkflowPort outputPort : dataflow.getOutputPorts()) - usedOutputPorts.add(outputPort.getName()); - - DataflowOutputPortPanel inputPanel = new DataflowOutputPortPanel(); - - ValidatingUserInputDialog vuid = new ValidatingUserInputDialog( - "Add Workflow Output Port", inputPanel); - vuid.addTextComponentValidation(inputPanel.getPortNameField(), - "Set the workflow output port name.", usedOutputPorts, - "Duplicate workflow output port name.", - "[\\p{L}\\p{Digit}_.]+", - "Invalid workflow output port name."); - vuid.setSize(new Dimension(400, 200)); - - if (vuid.show(component)) { - String portName = inputPanel.getPortName(); - OutputWorkflowPort dataflowOutputPort = new OutputWorkflowPort(); - dataflowOutputPort.setName(portName); - editManager.doDataflowEdit(dataflow.getParent(), - new AddWorkflowOutputPortEdit(dataflow, - dataflowOutputPort)); - } - } catch (EditException e) { - logger.debug("Create workflow output port failed", e); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/DataflowEditAction.java ---------------------------------------------------------------------- diff --git a/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/DataflowEditAction.java b/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/DataflowEditAction.java deleted file mode 100644 index dc6300d..0000000 --- a/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/DataflowEditAction.java +++ /dev/null @@ -1,57 +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.design.actions; - -import java.awt.Component; - -import javax.swing.AbstractAction; - -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.selection.DataflowSelectionModel; -import net.sf.taverna.t2.workbench.selection.SelectionManager; -import org.apache.taverna.scufl2.api.common.Scufl2Tools; -import org.apache.taverna.scufl2.api.core.Workflow; - -/** - * Abstract superclass of dataflow edit actions. - * - * @author David Withers - */ -public abstract class DataflowEditAction extends AbstractAction { - private static final long serialVersionUID = -1155192575675025091L; - - protected final SelectionManager selectionManager; - protected EditManager editManager; - protected DataflowSelectionModel dataflowSelectionModel; - protected Workflow dataflow; - protected Component component; - protected Scufl2Tools scufl2Tools = new Scufl2Tools(); - - public DataflowEditAction(Workflow dataflow, Component component, - EditManager editManager, SelectionManager selectionManager) { - this.dataflow = dataflow; - this.component = component; - this.editManager = editManager; - this.selectionManager = selectionManager; - dataflowSelectionModel = selectionManager - .getDataflowSelectionModel(dataflow.getParent()); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/EditDataflowInputPortAction.java ---------------------------------------------------------------------- diff --git a/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/EditDataflowInputPortAction.java b/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/EditDataflowInputPortAction.java deleted file mode 100644 index 77be3a3..0000000 --- a/taverna-design-ui/src/main/java/net/sf/taverna/t2/workbench/design/actions/EditDataflowInputPortAction.java +++ /dev/null @@ -1,115 +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.design.actions; - -import java.awt.Component; -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.sf.taverna.t2.lang.ui.ValidatingUserInputDialog; -import net.sf.taverna.t2.workbench.design.ui.DataflowInputPortPanel; -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 net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.icons.WorkbenchIcons; -import net.sf.taverna.t2.workbench.selection.SelectionManager; -import net.sf.taverna.t2.workflow.edits.ChangeDepthEdit; -import net.sf.taverna.t2.workflow.edits.RenameEdit; - -import org.apache.log4j.Logger; - -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.port.InputWorkflowPort; - -/** - * Action for editing a dataflow input port. - * - * @author David Withers - */ -@SuppressWarnings("serial") -public class EditDataflowInputPortAction extends DataflowEditAction { - private static Logger logger = Logger - .getLogger(EditDataflowInputPortAction.class); - - private InputWorkflowPort port; - - public EditDataflowInputPortAction(Workflow dataflow, - InputWorkflowPort port, Component component, - EditManager editManager, SelectionManager selectionManager) { - super(dataflow, component, editManager, selectionManager); - this.port = port; - putValue(SMALL_ICON, WorkbenchIcons.renameIcon); - putValue(NAME, "Edit workflow input port..."); - } - - @Override - public void actionPerformed(ActionEvent e) { - Set<String> usedInputPorts = new HashSet<>(); - for (InputWorkflowPort usedInputPort : dataflow.getInputPorts()) - if (!usedInputPort.getName().equals(port.getName())) - usedInputPorts.add(usedInputPort.getName()); - - DataflowInputPortPanel inputPanel = new DataflowInputPortPanel(); - - ValidatingUserInputDialog vuid = new ValidatingUserInputDialog( - "Edit Workflow Input Port", inputPanel); - vuid.addTextComponentValidation(inputPanel.getPortNameField(), - "Set the workflow input port name.", usedInputPorts, - "Duplicate workflow input port name.", "[\\p{L}\\p{Digit}_.]+", - "Invalid workflow input port name."); - vuid.addMessageComponent(inputPanel.getSingleValueButton(), - "Set the input port type."); - vuid.addMessageComponent(inputPanel.getListValueButton(), - "Set the input port list depth."); - vuid.setSize(new Dimension(400, 250)); - - inputPanel.setPortName(port.getName()); - inputPanel.setPortDepth(port.getDepth()); - - try { - if (vuid.show(component)) - changeInputPort(inputPanel); - } catch (EditException e1) { - logger.warn("Rename workflow input port failed", e1); - } - } - - private void changeInputPort(DataflowInputPortPanel inputPanel) - throws EditException { - List<Edit<?>> editList = new ArrayList<>(); - String portName = inputPanel.getPortName(); - if (!portName.equals(port.getName())) - editList.add(new RenameEdit<>(port, portName)); - int portDepth = inputPanel.getPortDepth(); - if (portDepth != port.getDepth()) - editList.add(new ChangeDepthEdit<>(port, portDepth)); - if (editList.size() == 1) - editManager.doDataflowEdit(dataflow.getParent(), editList.get(0)); - else if (editList.size() > 1) - editManager.doDataflowEdit(dataflow.getParent(), new CompoundEdit( - editList)); - } -}
