http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-edits-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
 
b/taverna-workbench-edits-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
deleted file mode 100644
index 6938308..0000000
--- 
a/taverna-workbench-edits-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
+++ /dev/null
@@ -1,6 +0,0 @@
-net.sf.taverna.t2.workbench.edits.impl.menu.UndoMenuSection
-net.sf.taverna.t2.workbench.edits.impl.menu.UndoMenuAction
-net.sf.taverna.t2.workbench.edits.impl.menu.RedoMenuAction
-net.sf.taverna.t2.workbench.edits.impl.toolbar.EditToolbarSection
-net.sf.taverna.t2.workbench.edits.impl.toolbar.UndoToolbarAction
-net.sf.taverna.t2.workbench.edits.impl.toolbar.RedoToolbarAction

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.edits.EditManager
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-edits-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.edits.EditManager
 
b/taverna-workbench-edits-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.edits.EditManager
deleted file mode 100644
index 92ee088..0000000
--- 
a/taverna-workbench-edits-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.edits.EditManager
+++ /dev/null
@@ -1 +0,0 @@
-net.sf.taverna.t2.workbench.edits.impl.EditManagerImpl

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/main/resources/META-INF/spring/edits-impl-context-osgi.xml
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-edits-impl/src/main/resources/META-INF/spring/edits-impl-context-osgi.xml
 
b/taverna-workbench-edits-impl/src/main/resources/META-INF/spring/edits-impl-context-osgi.xml
deleted file mode 100644
index 8eb7041..0000000
--- 
a/taverna-workbench-edits-impl/src/main/resources/META-INF/spring/edits-impl-context-osgi.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans:beans xmlns="http://www.springframework.org/schema/osgi"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xmlns:beans="http://www.springframework.org/schema/beans";
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      
http://www.springframework.org/schema/beans/spring-beans.xsd
-                      http://www.springframework.org/schema/osgi
-                      
http://www.springframework.org/schema/osgi/spring-osgi.xsd";>
-
-       <service ref="UndoMenuSection" auto-export="interfaces" />
-       <service ref="UndoMenuAction" auto-export="interfaces" />
-       <service ref="RedoMenuAction" auto-export="interfaces" />
-       <service ref="EditToolbarSection" auto-export="interfaces" />
-       <service ref="UndoToolbarAction" auto-export="interfaces" />
-       <service ref="RedoToolbarAction" auto-export="interfaces" />
-
-       <service ref="EditManagerImpl" 
interface="net.sf.taverna.t2.workbench.edits.EditManager" />
-
-       <reference id="selectionManager" 
interface="net.sf.taverna.t2.workbench.selection.SelectionManager" 
cardinality="0..1" />
-
-</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/main/resources/META-INF/spring/edits-impl-context.xml
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-edits-impl/src/main/resources/META-INF/spring/edits-impl-context.xml
 
b/taverna-workbench-edits-impl/src/main/resources/META-INF/spring/edits-impl-context.xml
deleted file mode 100644
index 33f0b7b..0000000
--- 
a/taverna-workbench-edits-impl/src/main/resources/META-INF/spring/edits-impl-context.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      
http://www.springframework.org/schema/beans/spring-beans.xsd";>
-
-       <bean id="UndoMenuSection" 
class="net.sf.taverna.t2.workbench.edits.impl.menu.UndoMenuSection" />
-       <bean id="UndoMenuAction" 
class="net.sf.taverna.t2.workbench.edits.impl.menu.UndoMenuAction">
-               <constructor-arg name="editManager">
-                       <ref local="EditManagerImpl" />
-               </constructor-arg>
-               <property name="selectionManager" ref="selectionManager" />
-       </bean>
-       <bean id="RedoMenuAction" 
class="net.sf.taverna.t2.workbench.edits.impl.menu.RedoMenuAction">
-               <constructor-arg name="editManager">
-                       <ref local="EditManagerImpl" />
-               </constructor-arg>
-               <property name="selectionManager" ref="selectionManager" />
-       </bean>
-       <bean id="EditToolbarSection" 
class="net.sf.taverna.t2.workbench.edits.impl.toolbar.EditToolbarSection" />
-       <bean id="UndoToolbarAction" 
class="net.sf.taverna.t2.workbench.edits.impl.toolbar.UndoToolbarAction">
-               <constructor-arg>
-                       <ref local="UndoMenuAction" />
-               </constructor-arg>
-       </bean>
-       <bean id="RedoToolbarAction" 
class="net.sf.taverna.t2.workbench.edits.impl.toolbar.RedoToolbarAction">
-               <constructor-arg>
-                       <ref local="RedoMenuAction" />
-               </constructor-arg>
-       </bean>
-
-       <bean id="EditManagerImpl" 
class="net.sf.taverna.t2.workbench.edits.impl.EditManagerImpl" />
-
-</beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-edits-impl/src/test/java/net/sf/taverna/t2/workbench/edits/impl/TestEditManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-edits-impl/src/test/java/net/sf/taverna/t2/workbench/edits/impl/TestEditManagerImpl.java
 
b/taverna-workbench-edits-impl/src/test/java/net/sf/taverna/t2/workbench/edits/impl/TestEditManagerImpl.java
deleted file mode 100644
index 9123671..0000000
--- 
a/taverna-workbench-edits-impl/src/test/java/net/sf/taverna/t2/workbench/edits/impl/TestEditManagerImpl.java
+++ /dev/null
@@ -1,258 +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 static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import net.sf.taverna.t2.lang.observer.Observable;
-import net.sf.taverna.t2.lang.observer.Observer;
-import net.sf.taverna.t2.workbench.edits.Edit;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.edits.EditManager.DataFlowRedoEvent;
-import net.sf.taverna.t2.workbench.edits.EditManager.DataFlowUndoEvent;
-import net.sf.taverna.t2.workbench.edits.EditManager.DataflowEditEvent;
-import net.sf.taverna.t2.workbench.edits.EditManager.EditManagerEvent;
-import net.sf.taverna.t2.workflow.edits.AddProcessorEdit;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-import uk.org.taverna.scufl2.api.core.Processor;
-import uk.org.taverna.scufl2.api.core.Workflow;
-
-public class TestEditManagerImpl {
-
-       private Workflow dataflow;
-
-       private EditManagerObserver editManagerObserver = new 
EditManagerObserver();
-
-       private Processor processor;
-
-       @Test
-       public void addProcessor() throws Exception {
-               EditManager editManager = new EditManagerImpl();
-               editManager.addObserver(editManagerObserver);
-
-               Edit<Workflow> edit = new AddProcessorEdit(dataflow, processor);
-               assertFalse("Edit was already applied", edit.isApplied());
-               assertTrue("Did already add processor", dataflow.getProcessors()
-                               .isEmpty());
-
-               editManager.doDataflowEdit(dataflow.getParent(), edit);
-               assertTrue("Edit was not applied", edit.isApplied());
-               assertEquals("Did not add processor", processor, 
dataflow.getProcessors().first());
-
-               // Should have received the edit event
-               assertEquals("Incorrect number of events", 1,
-                               editManagerObserver.events.size());
-               EditManagerEvent event = editManagerObserver.events.get(0);
-               assertTrue("Event was not a DataflowEditEvent",
-                               event instanceof DataflowEditEvent);
-               DataflowEditEvent dataEditEvent = (DataflowEditEvent) event;
-               assertEquals("Event did not have correct workflow", dataflow,
-                               
dataEditEvent.getDataFlow().getWorkflows().first());
-               assertEquals("Event did not have correct edit", edit, 
dataEditEvent
-                               .getEdit());
-
-       }
-
-       @Test
-       public void undoAddProcessor() throws Exception {
-               EditManager editManager = new EditManagerImpl();
-               editManager.addObserver(editManagerObserver);
-
-               Edit<Workflow> edit = new AddProcessorEdit(dataflow, processor);
-               editManager.doDataflowEdit(dataflow.getParent(), edit);
-
-               assertFalse("Did not add processor", 
dataflow.getProcessors().isEmpty());
-               editManager.undoDataflowEdit(dataflow.getParent());
-               assertTrue("Did not undo add processor", 
dataflow.getProcessors()
-                               .isEmpty());
-
-               // Should have received the undo event
-               assertEquals("Incorrect number of events", 2,
-                               editManagerObserver.events.size());
-               EditManagerEvent event = editManagerObserver.events.get(1);
-               assertTrue("Event was not a DataflowEditEvent",
-                               event instanceof DataFlowUndoEvent);
-               DataFlowUndoEvent dataEditEvent = (DataFlowUndoEvent) event;
-               assertEquals("Event did not have correct workflow", dataflow,
-                               
dataEditEvent.getDataFlow().getWorkflows().first());
-               assertEquals("Event did not have correct edit", edit, 
dataEditEvent
-                               .getEdit());
-               assertFalse("Edit was still applied", edit.isApplied());
-       }
-
-       @Test
-       public void multipleUndoesRedoes() throws Exception {
-               EditManager editManager = new EditManagerImpl();
-               editManager.addObserver(editManagerObserver);
-
-               Workflow dataflowA = createDataflow();
-               Workflow dataflowB = createDataflow();
-               Workflow dataflowC = createDataflow();
-
-               Processor processorA1 = createProcessor();
-               Processor processorA2 = createProcessor();
-               Processor processorA3 = createProcessor();
-               Processor processorB1 = createProcessor();
-               Processor processorC1 = createProcessor();
-
-               Edit<Workflow> edit = new AddProcessorEdit(dataflowA, 
processorA1);
-               editManager.doDataflowEdit(dataflowA.getParent(), edit);
-
-               edit = new AddProcessorEdit(dataflowB, processorB1);
-               editManager.doDataflowEdit(dataflowB.getParent(), edit);
-
-               edit = new AddProcessorEdit(dataflowA, processorA2);
-               editManager.doDataflowEdit(dataflowA.getParent(), edit);
-
-               edit = new AddProcessorEdit(dataflowC, processorC1);
-               editManager.doDataflowEdit(dataflowC.getParent(), edit);
-
-               edit = new AddProcessorEdit(dataflowA, processorA3);
-               editManager.doDataflowEdit(dataflowA.getParent(), edit);
-
-
-
-               assertFalse("Did not add processors", 
dataflowA.getProcessors().isEmpty());
-               assertEquals(3, dataflowA.getProcessors().size());
-               editManager.undoDataflowEdit(dataflowA.getParent());
-               assertEquals(2, dataflowA.getProcessors().size());
-               editManager.undoDataflowEdit(dataflowA.getParent());
-               assertEquals(1, dataflowA.getProcessors().size());
-               editManager.undoDataflowEdit(dataflowA.getParent());
-               assertEquals(0, dataflowA.getProcessors().size());
-
-               assertEquals(1, dataflowB.getProcessors().size());
-               assertEquals(1, dataflowC.getProcessors().size());
-
-               
assertTrue(editManager.canUndoDataflowEdit(dataflowC.getParent()));
-               editManager.undoDataflowEdit(dataflowC.getParent());
-               
assertFalse(editManager.canUndoDataflowEdit(dataflowC.getParent()));
-               editManager.undoDataflowEdit(dataflowC.getParent()); // extra 
one
-               
assertFalse(editManager.canUndoDataflowEdit(dataflowC.getParent()));
-
-
-               assertEquals(1, dataflowB.getProcessors().size());
-               assertEquals(0, dataflowC.getProcessors().size());
-
-               editManager.undoDataflowEdit(dataflowB.getParent());
-               assertEquals(0, dataflowA.getProcessors().size());
-               assertEquals(0, dataflowB.getProcessors().size());
-               assertEquals(0, dataflowC.getProcessors().size());
-
-               editManager.redoDataflowEdit(dataflowA.getParent());
-               assertEquals(1, dataflowA.getProcessors().size());
-
-               editManager.redoDataflowEdit(dataflowA.getParent());
-               assertEquals(2, dataflowA.getProcessors().size());
-
-               editManager.redoDataflowEdit(dataflowA.getParent());
-               assertEquals(3, dataflowA.getProcessors().size());
-
-               // does not affect it
-               editManager.redoDataflowEdit(dataflowA.getParent());
-               assertEquals(3, dataflowA.getProcessors().size());
-               assertEquals(0, dataflowB.getProcessors().size());
-               assertEquals(0, dataflowC.getProcessors().size());
-       }
-
-       @Test
-       public void emptyUndoDoesNotFail() throws Exception {
-               EditManager editManager = new EditManagerImpl();
-               editManager.addObserver(editManagerObserver);
-               editManager.undoDataflowEdit(dataflow.getParent());
-       }
-
-       @Test
-       public void extraUndoesDoesNotFail() throws Exception {
-               EditManager editManager = new EditManagerImpl();
-               editManager.addObserver(editManagerObserver);
-
-               Edit<Workflow> edit = new AddProcessorEdit(dataflow, processor);
-               editManager.doDataflowEdit(dataflow.getParent(), edit);
-
-               assertFalse("Did not add processor", 
dataflow.getProcessors().isEmpty());
-               editManager.undoDataflowEdit(dataflow.getParent());
-               assertTrue("Did not undo add processor", 
dataflow.getProcessors()
-                               .isEmpty());
-               editManager.undoDataflowEdit(dataflow.getParent());
-       }
-
-       @Before
-       public void makeDataflow() {
-               dataflow = createDataflow();
-       }
-
-       protected Workflow createDataflow() {
-               WorkflowBundle workflowBundle = new WorkflowBundle();
-               Workflow workflow = new Workflow();
-               workflow.setParent(workflowBundle);
-               return workflow;
-       }
-
-       protected Processor createProcessor() {
-               Processor processor = new Processor();
-               processor.setName("proc-" + UUID.randomUUID());
-               return processor;
-       }
-
-       @Before
-       public void makeProcessor() {
-               processor = createProcessor();
-       }
-
-       private class EditManagerObserver implements Observer<EditManagerEvent> 
{
-
-               public List<EditManagerEvent> events = new ArrayList<>();
-
-               @Override
-               public void notify(Observable<EditManagerEvent> sender,
-                               EditManagerEvent message) throws Exception {
-                       events.add(message);
-                       if (message instanceof DataflowEditEvent) {
-                               DataflowEditEvent dataflowEdit = 
(DataflowEditEvent) message;
-                               assertTrue("Edit was not applied on edit 
event", dataflowEdit
-                                               .getEdit().isApplied());
-                       } else if (message instanceof DataFlowUndoEvent) {
-                               DataFlowUndoEvent dataflowUndo = 
(DataFlowUndoEvent) message;
-                               assertFalse("Edit was applied on undo event", 
dataflowUndo
-                                               .getEdit().isApplied());
-                       } else if (message instanceof DataFlowRedoEvent) {
-                               DataFlowRedoEvent dataflowEdit = 
(DataFlowRedoEvent) message;
-                               assertTrue("Edit was not applied on edit 
event", dataflowEdit
-                                               .getEdit().isApplied());
-                       } else {
-                               fail("Unknown event: " + message);
-                       }
-               }
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-workbench-file-api/pom.xml 
b/taverna-workbench-file-api/pom.xml
deleted file mode 100644
index 2b6205d..0000000
--- a/taverna-workbench-file-api/pom.xml
+++ /dev/null
@@ -1,31 +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-api</artifactId>
-               <version>2.0-SNAPSHOT</version>
-       </parent>
-       <groupId>net.sf.taverna.t2.ui-api</groupId>
-       <artifactId>file-api</artifactId>
-       <packaging>bundle</packaging>
-       <name>File opening API</name>
-       <description>
-               API for doing file (ie. workflow) open/save in the workbench.
-       </description>
-
-       <dependencies>
-               <dependency>
-                       <groupId>net.sf.taverna.t2.lang</groupId>
-                       <artifactId>ui</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>net.sf.taverna.t2.lang</groupId>
-                       <artifactId>observer</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>uk.org.taverna.scufl2</groupId>
-                       <artifactId>scufl2-api</artifactId>
-               </dependency>
-       </dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/AbstractDataflowPersistenceHandler.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/AbstractDataflowPersistenceHandler.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/AbstractDataflowPersistenceHandler.java
deleted file mode 100644
index 8dc34e8..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/AbstractDataflowPersistenceHandler.java
+++ /dev/null
@@ -1,69 +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.file;
-
-import java.util.Collections;
-import java.util.List;
-
-import net.sf.taverna.t2.workbench.file.exceptions.OpenException;
-import net.sf.taverna.t2.workbench.file.exceptions.SaveException;
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-public abstract class AbstractDataflowPersistenceHandler implements
-               DataflowPersistenceHandler {
-       @Override
-       public List<FileType> getOpenFileTypes() {
-               return Collections.emptyList();
-       }
-
-       @Override
-       public List<FileType> getSaveFileTypes() {
-               return Collections.emptyList();
-       }
-
-       @Override
-       public List<Class<?>> getOpenSourceTypes() {
-               return Collections.emptyList();
-       }
-
-       @Override
-       public List<Class<?>> getSaveDestinationTypes() {
-               return Collections.emptyList();
-       }
-
-       @Override
-       public DataflowInfo openDataflow(FileType fileType, Object source)
-                       throws OpenException {
-               throw new UnsupportedOperationException();
-       }
-
-       @Override
-       public DataflowInfo saveDataflow(WorkflowBundle workflowBundle, 
FileType fileType,
-                       Object destination) throws SaveException {
-               throw new UnsupportedOperationException();
-       }
-
-       @Override
-       public boolean wouldOverwriteDataflow(WorkflowBundle workflowBundle, 
FileType fileType,
-                       Object destination, DataflowInfo lastDataflowInfo) {
-               throw new UnsupportedOperationException();
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/DataflowInfo.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/DataflowInfo.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/DataflowInfo.java
deleted file mode 100644
index c5eaa26..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/DataflowInfo.java
+++ /dev/null
@@ -1,108 +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.file;
-
-import java.util.Date;
-
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-/**
- * Information about a WorkflowBundle that has been opened by the
- * {@link FileManager}.
- * <p>
- * This class, or a subclass of it, is used by
- * {@link DataflowPersistenceHandler}s to keep information about where a
- * {@link WorkflowBundle} came from or where it was saved to.
- * 
- * @author Stian Soiland-Reyes
- */
-public class DataflowInfo {
-       private final FileType fileType;
-       private final WorkflowBundle worflowBundle;
-       private final Date lastModified;
-       private final Object canonicalSource;
-
-       public DataflowInfo(FileType fileType, Object canonicalSource,
-                       WorkflowBundle worflowBundle, Date lastModified) {
-               this.fileType = fileType;
-               this.canonicalSource = canonicalSource;
-               this.worflowBundle = worflowBundle;
-               this.lastModified = lastModified;
-       }
-
-       public DataflowInfo(FileType fileType, Object canonicalSource,
-                       WorkflowBundle worflowBundle) {
-               this(fileType, canonicalSource, worflowBundle, null);
-       }
-
-       /**
-        * Return the canonical source of where the WorkflowBundle was opened 
from
-        * or saved to.
-        * <p>
-        * This is not necessarily the source provided to
-        * {@link FileManager#openDataflow(FileType, Object)} or
-        * {@link FileManager#saveDataflow(WorkflowBundle, FileType, Object, 
boolean)}
-        * , but it's canonical version.
-        * <p>
-        * For instance, if a WorkflowBundle was opened from a
-        * File("relative/something.wfbundle) this canonical source would 
resolve
-        * the relative path.
-        * 
-        * @return
-        */
-       public Object getCanonicalSource() {
-               return canonicalSource;
-       }
-
-       /**
-        * Return the WorkflowBundle that is open.
-        * 
-        * @return The open WorkflowBundle
-        */
-       public WorkflowBundle getDataflow() {
-               return worflowBundle;
-       }
-
-       /**
-        * Get the last modified {@link Date} of the source at the time when it 
was
-        * opened/saved.
-        * <p>
-        * It is important that this value is checked on creation time, and not 
on
-        * demand.
-        * 
-        * @return The {@link Date} of the source/destination's last modified
-        *         timestamp, or <code>null</code> if unknown.
-        */
-       public Date getLastModified() {
-               return lastModified;
-       }
-
-       /**
-        * The {@link FileType} of this {@link WorkflowBundle} serialisation 
used
-        * for opening/saving.
-        * 
-        * @return The {@link FileType}, for instance
-        *         {@link 
net.sf.taverna.t2.workbench.file.impl.WorkflowBundleFileType}
-        */
-       public FileType getFileType() {
-               return fileType;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/DataflowPersistenceHandler.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/DataflowPersistenceHandler.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/DataflowPersistenceHandler.java
deleted file mode 100644
index f8d2ddb..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/DataflowPersistenceHandler.java
+++ /dev/null
@@ -1,152 +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.file;
-
-import java.io.File;
-import java.net.URL;
-import java.util.Collection;
-
-import net.sf.taverna.t2.workbench.file.exceptions.OpenException;
-import net.sf.taverna.t2.workbench.file.exceptions.SaveException;
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-/**
- * A handler for opening or saving {@link WorkflowBundle} from the
- * {@link FileManager}.
- * 
- * @author Stian Soiland-Reyes
- */
-public interface DataflowPersistenceHandler {
-       /**
-        * A collection of supported file types for
-        * {@link #openDataflow(FileType, Object)}, or an empty collection if
-        * opening is not supported by this handler.
-        * 
-        * @return A collection of supported {@link FileType}s for opening.
-        */
-       Collection<FileType> getOpenFileTypes();
-
-       /**
-        * A collection of supported source classes for
-        * {@link #openDataflow(FileType, Object)}, or an empty collection if
-        * opening is not supported by this handler.
-        * <p>
-        * For example, a handler that supports sources opened from a {@link 
File}
-        * and {@link URL} could return
-        * <code>Arrays.asList(File.class, URL.class)</code>
-        * 
-        * @return A collection of supported {@link Class}es of the open source
-        *         types.
-        */
-       Collection<Class<?>> getOpenSourceTypes();
-
-       /**
-        * A collection of supported destination classes for
-        * {@link #saveDataflow(Dataflow, FileType, Object)}, or an empty 
collection
-        * if saving is not supported by this handler.
-        * <p>
-        * For example, a handler that supports saving to destinations that are
-        * instances of a {@link File} could return
-        * <code>Arrays.asList(File.class)</code>
-        * 
-        * @return A collection of supported {{@link Class}es of the save
-        *         destination types.
-        */
-       Collection<Class<?>> getSaveDestinationTypes();
-
-       /**
-        * A collection of supported file types for
-        * {@link #saveDataflow(WorkflowBundle, FileType, Object)}, or an empty
-        * collection if saving is not supported by this handler.
-        * 
-        * @return A collection of supported {@link FileType}s for saving.
-        */
-       Collection<FileType> getSaveFileTypes();
-
-       /**
-        * Open a dataflow from a source containing a dataflow of the given
-        * {@link FileType}.
-        * <p>
-        * The {@link FileType} will be equal to one of the types from
-        * {@link #getOpenFileTypes()}, and the source class will be one that is
-        * assignable to one of the classes from {@link #getOpenSourceTypes()}.
-        * 
-        * @param fileType
-        *            {@link FileType} determining which serialisation method 
has
-        *            been used
-        * @param source
-        *            Source for reading the WorkflowBundle
-        * @return {@link DataflowInfo} describing the opened WorkflowBundle,
-        *         including the WorkflowBundle itself
-        * @throws OpenException
-        *             If the WorkflowBundle could not be read, parsed or 
opened for
-        *             any reason.
-        */
-       DataflowInfo openDataflow(FileType fileType, Object source)
-                       throws OpenException;
-
-       /**
-        * Save a WorkflowBundle to a destination of the given {@link FileType}.
-        * <p>
-        * The {@link FileType} will be equal to one of the types from
-        * {@link #getSaveFileTypes()}, and the destination class will be one 
that
-        * is assignable to one of the classes from
-        * {@link #getSaveDestinationTypes()}.
-        * 
-        * @param dataflow
-        *            {@link WorkflowBundle} to be saved
-        * @param fileType
-        *            {@link FileType} determining which serialisation method 
to use
-        * @param destination
-        *            Destination for writing the WorkflowBundle
-        * @return {@link DataflowInfo} describing the saved WorkflowBundle,
-        *         including the WorkflowBundle itself
-        * @throws OpenException
-        *             If the WorkflowBundle could not be read, parsed or 
opened for
-        *             any reason.
-        */
-       DataflowInfo saveDataflow(WorkflowBundle dataflow, FileType fileType,
-                       Object destination) throws SaveException;
-
-       /**
-        * Return <code>true</code> if a call to
-        * {@link #saveDataflow(WorkflowBundle, FileType, Object)} would 
overwrite
-        * the destination, and the destination is different from last
-        * {@link #openDataflow(FileType, Object)} or
-        * {@link #saveDataflow(WorkflowBundle, FileType, Object)} of the given
-        * dataflow.
-        * 
-        * @param dataflow
-        *            {@link WorkflowBundle} that is to be saved
-        * @param fileType
-        *            {@link FileType} for saving WorkflowBundle
-        * @param destination
-        *            destination for writing WorkflowBundle
-        * @param lastDataflowInfo
-        *            last provided {@link DataflowInfo} returned by
-        *            {@link #openDataflow(FileType, Object)} or
-        *            {@link #saveDataflow(WorkflowBundle, FileType, Object)}. 
(but
-        *            not necessarily from this handler)
-        * @return <code>true</code> if the save would overwrite
-        */
-       boolean wouldOverwriteDataflow(WorkflowBundle dataflow, FileType 
fileType,
-                       Object destination, DataflowInfo lastDataflowInfo);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/FileManager.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/FileManager.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/FileManager.java
deleted file mode 100644
index f449bb5..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/FileManager.java
+++ /dev/null
@@ -1,573 +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.file;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.List;
-
-import javax.swing.filechooser.FileFilter;
-
-import net.sf.taverna.t2.lang.observer.Observable;
-import net.sf.taverna.t2.lang.observer.Observer;
-import net.sf.taverna.t2.workbench.file.events.ClosedDataflowEvent;
-import net.sf.taverna.t2.workbench.file.events.FileManagerEvent;
-import net.sf.taverna.t2.workbench.file.events.OpenedDataflowEvent;
-import net.sf.taverna.t2.workbench.file.events.SavedDataflowEvent;
-import net.sf.taverna.t2.workbench.file.exceptions.OpenException;
-import net.sf.taverna.t2.workbench.file.exceptions.OverwriteException;
-import net.sf.taverna.t2.workbench.file.exceptions.SaveException;
-import net.sf.taverna.t2.workbench.file.exceptions.UnsavedException;
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-/**
- * Manager of open files (WorkflowBundleBundles) in the workbench.
- * <p>
- * A {@link WorkflowBundle} can be opened for the workbench using
- * {@link #openDataflow(FileType, Object)} or {@link 
#openDataflow(WorkflowBundle)}.
- * {@link Observer}s of the FileManager gets notified with an
- * {@link OpenedDataflowEvent}. The opened workflow is also
- * {@link #setCurrentDataflow(WorkflowBundle) made the current dataflow}, 
available
- * through {@link #getCurrentDataflow()} or by observing the
- * {@link net.sf.taverna.t2.lang.ui.ModelMap} for the model name
- * {@link net.sf.taverna.t2.workbench.ModelMapConstants#CURRENT_DATAFLOW}.
- * <p>
- * A dataflow can be saved using
- * {@link #saveDataflow(WorkflowBundle, FileType, Object, boolean)}. Observers 
will be
- * presented a {@link SavedDataflowEvent}.
- * <p>
- * If a dataflow was previously opened from a saveable destination or 
previously
- * saved using {@link #saveDataflow(WorkflowBundle, FileType, Object, 
boolean)},
- * {@link #saveDataflow(WorkflowBundle, boolean)} can be used to resave to that
- * destination.
- * <p>
- * You can get the last opened/saved source and type using
- * {@link #getDataflowSource(WorkflowBundle)} and {@link 
#getDataflowType(WorkflowBundle)}.
- * <p>
- * If the save methods are used with failOnOverwrite=true, an
- * {@link OverwriteException} will be thrown if the destination file already
- * exists and was not last written by a previous save on that dataflow. (This 
is
- * typically checked using timestamps on the file).
- * <p>
- * A dataflow can be closed using {@link #closeDataflow(WorkflowBundle, 
boolean)}. A
- * closed dataflow is no longer monitored for changes and can no longer be used
- * with the other operations, except {@link #openDataflow(WorkflowBundle)}.
- * <p>
- * If a dataflow has been changed using the {@link EditManager},
- * {@link #isDataflowChanged(WorkflowBundle)} will return true until the next 
save. If
- * the close methods are used with failOnUnsaved=true, an
- * {@link UnsavedException} will be thrown if the dataflow has been changed.
- * <p>
- * The implementation of this interface is an OSGi Service.
- *
- * @author Stian Soiland-Reyes
- */
-public interface FileManager extends Observable<FileManagerEvent> {
-       /**
-        * True if {@link #saveDataflow(WorkflowBundle, boolean)} can save the
-        * workflow, i.e., that there exists an SPI implementation of
-        * {@link DataflowPersistenceHandler} that can save to
-        * {@link #getDataflowSource(WorkflowBundle)} using
-        * {@link #getDataflowType(WorkflowBundle)}.
-        * 
-        * @see #saveDataflow(WorkflowBundle, boolean)
-        * @param dataflow
-        *            The dataflow to check
-        * @return <code>true</code> if the given dataflow can be saved without
-        *         providing a destination and filetype
-        */
-       boolean canSaveWithoutDestination(WorkflowBundle dataflow);
-
-       /**
-        * Close the specified dataflow.
-        * <p>
-        * A closed dataflow can no longer be used with the save methods, and 
will
-        * disappear from the UI's list of open dataflows.
-        * <p>
-        * If no more dataflows would be open after the close, a new empty 
dataflow
-        * is opened as through {@link #newDataflow()}.
-        * <p>
-        * If the failOnUnsaved parameters is <code>true</code>, and
-        * {@link #isDataflowChanged(WorkflowBundle)} is <code>true</code>, an
-        * {@link UnsavedException} will be thrown, typically because the 
workflow
-        * has been changed using the {@link EditManager} since the last change.
-        * <p>
-        * Listeners registered using {@link Observable#addObserver(Observer)} 
will
-        * be notified with an {@link ClosedDataflowEvent}.
-        *
-        * @param dataflow
-        *            {@link WorkflowBundle} to close
-        * @param failOnUnsaved
-        *            If <code>true</code>, fail on unsaved changes
-        * @throws UnsavedException
-        *             If failOnUnsaved was <code>true</code> and there has been
-        *             changes to the dataflow since the last save
-        */
-       boolean closeDataflow(WorkflowBundle dataflow, boolean failOnUnsaved)
-                       throws UnsavedException;
-
-       /**
-        * Get the current dataflow.
-        * <p>
-        * The current workflow is typically the one currently showed on the 
screen,
-        * and is also in {@link #getOpenDataflows()}.
-        * <p>
-        * The current dataflow is set through {@link 
#setCurrentDataflow(WorkflowBundle)}
-        * or the {@link net.sf.taverna.t2.lang.ui.ModelMap} using the key
-        * {@link 
net.sf.taverna.t2.workbench.ModelMapConstants#CURRENT_DATAFLOW}.
-        *
-        * @return The current dataflow, or <code>null</code> if no dataflow is
-        *         current
-        */
-       WorkflowBundle getCurrentDataflow();
-
-       /**
-        * Get the dataflow that was opened from or last saved to the given 
source.
-        *
-        * @param source
-        *            The source as opened with or saved to
-        *            {@link #openDataflow(FileType, Object)}
-        * @return The opened {@link WorkflowBundle} or <code>null</code> if no 
matching
-        *         dataflow found.
-        */
-       WorkflowBundle getDataflowBySource(Object source);
-
-       /**
-        * Get a name to represent this dataflow.
-        * <p>
-        * The name will primarily be deduced from the source of where the 
workflow
-        * is opened from, unless {@link Object#toString()} is not overridden 
(for
-        * instance opened from an InputStream) or if the source is unknown, in
-        * which case the dataflow's internal name {@link 
WorkflowBundle#getName()}
-        * is returned.
-        * <p>
-        * The returned name can be used in listings like the WorkflowBundles 
menu, but is
-        * not guaranteed to be unique. (For instance a workflow could be opened
-        * twice from the same source).
-        *
-        * @param dataflow
-        *            WorkflowBundle to get the name for
-        * @return The deduced workflow name
-        */
-       String getDataflowName(WorkflowBundle dataflow);
-
-       /**
-        * Returns the default name to use when creating new workflows.
-        *
-        * @return the default name to use when creating new workflows
-        */
-       String getDefaultWorkflowName();
-
-       /**
-        * Get the last opened/saved source/destination for the given dataflow.
-        * <p>
-        * The source is the last source used with
-        * {@link #saveDataflow(WorkflowBundle, FileType, Object, boolean)} for 
the given
-        * dataflow, or {@link #openDataflow(FileType, Object)} if it has not 
yet
-        * been saved.
-        * <p>
-        * If the given dataflow's last opened/saved location was unknown 
(opened
-        * with {@link #newDataflow()} or {@link 
#openDataflow(WorkflowBundle)}), return
-        * <code>null</code>.
-        *
-        * @param dataflow
-        *            {@link WorkflowBundle} which file is to be returned
-        * @return The last opened/saved source for the given dataflow, or
-        *         <code>null</code> if unknown.
-        */
-       Object getDataflowSource(WorkflowBundle dataflow);
-
-       /**
-        * Get the last opened/saved source/destination FileType for the given
-        * dataflow.
-        * <p>
-        * The type is the last {@link FileType} used with
-        * {@link #saveDataflow(WorkflowBundle, FileType, Object, boolean)} for 
the given
-        * dataflow, or {@link #openDataflow(FileType, Object)} if it has not 
yet
-        * been saved.
-        * <p>
-        * If the given dataflow's last opened/saved file type was unknown 
(opened
-        * with {@link #newDataflow()} or {@link 
#openDataflow(WorkflowBundle)}), return
-        * <code>null</code>.
-        *
-        * @param dataflow
-        *            {@link WorkflowBundle} which file is to be returned
-        * @return The last opened/saved {@link FileType} for the given 
dataflow, or
-        *         <code>null</code> if unknown.
-        */
-       FileType getDataflowType(WorkflowBundle dataflow);
-
-       /**
-        * Get the list of currently open dataflows. This list of dataflows are
-        * typically displayed in the UI in the "WorkflowBundles" menu to allow 
switching
-        * the {@link #getCurrentDataflow() current dataflow}.
-        *
-        * @return A copy of the {@link List} of open {@link WorkflowBundle}s
-        */
-       List<WorkflowBundle> getOpenDataflows();
-
-       /**
-        * Get a list of {@link FileFilter}s for supported {@link FileType}s 
that
-        * can be opened with any source class.
-        *
-        * @return A {@link List} of {@link FileFilter}s supported by
-        *         {@link #openDataflow(FileType, Object)}
-        */
-       List<FileFilter> getOpenFileFilters();
-
-       /**
-        * Get a list of {@link FileFilter}s for supported {@link FileType}s 
that
-        * can be opened with given source class.
-        *
-        * @param sourceClass
-        *            Source class that can be opened from
-        * @return A {@link List} of {@link FileFilter}s supported by
-        *         {@link #openDataflow(FileType, Object)}
-        */
-       List<FileFilter> getOpenFileFilters(Class<?> sourceClass);
-
-       /**
-        * Get a list of {@link FileFilter}s for supported {@link FileType}s 
that
-        * can be saved to any destination class.
-        *
-        * @return A {@link List} of {@link FileFilter}s supported by
-        *         {@link #saveDataflow(WorkflowBundle, FileType, Object, 
boolean)}
-        */
-       List<FileFilter> getSaveFileFilters();
-
-       /**
-        * Get a list of {@link FileFilter}s for supported {@link FileType}s 
that
-        * can be saved to the given destination class.
-        *
-        * @param destinationClass
-        *            Destination class that can be saved to
-        * @return A {@link List} of {@link FileFilter}s supported by
-        *         {@link #saveDataflow(WorkflowBundle, FileType, Object, 
boolean)}
-        */
-       List<FileFilter> getSaveFileFilters(Class<?> destinationClass);
-
-       /**
-        * Return <code>true</code> if the dataflow has been changed (through 
the
-        * {@link EditManager} or {@link #setDataflowChanged(WorkflowBundle, 
boolean)})
-        * since last save.
-        *
-        * @param dataflow
-        *            WorkflowBundle which changed status is to be checked
-        * @return <code>true</code> if the dataflow has been changed since last
-        *         save.
-        */
-       boolean isDataflowChanged(WorkflowBundle dataflow);
-
-       /**
-        * True if the given dataflow has been opened and is in
-        * {@link #getOpenDataflows()}.
-        *
-        * @param dataflow
-        *            Dataflow to check
-        * @return <code>true</code> if dataflow is open
-        */
-       boolean isDataflowOpen(WorkflowBundle dataflow);
-
-       /**
-        * Create and open a new, blank dataflow. The dataflow will not 
initially be
-        * marked as changed.
-        * <p>
-        * Listeners registered using {@link Observable#addObserver(Observer)} 
will
-        * be notified with an {@link OpenedDataflowEvent}.
-        * <p>
-        * Note, if the dataflow is later changed, it will not be possible to 
save
-        * it to any original location using
-        * {@link #saveDataflow(WorkflowBundle, boolean)}, only
-        * {@link #saveDataflow(WorkflowBundle, FileType, Object, boolean)}.
-        *
-        * @return The newly opened blank {@link WorkflowBundle}
-        */
-       WorkflowBundle newDataflow();
-
-       /**
-        * Open a {@link WorkflowBundle} instance that has been created outside 
the
-        * {@link FileManager}. The dataflow will not initially be marked as
-        * changed.
-        * <p>
-        * Listeners registered using {@link Observable#addObserver(Observer)} 
will
-        * be notified with an {@link OpenedDataflowEvent}.
-        * <p>
-        * Note, if the dataflow is later changed, it will not be possible to 
save
-        * it to its original location using
-        * {@link #saveDataflow(WorkflowBundle, boolean)}, only
-        * {@link #saveDataflow(WorkflowBundle, FileType, Object, boolean)}.
-        * <p>
-        * Instead of using this option it is recommended to create your own
-        * {@link FileType} and/or source type and a
-        * {@link DataflowPersistenceHandler} to implement save and/or reopen
-        * (revert).
-        * <p>
-        * If there is only one workflow open before opening this workflow, and 
it
-        * is an unchanged blank workflow, the blank workflow will be closed.
-        *
-        * @param dataflow
-        *            {@link WorkflowBundle} instance that is to be added as an 
open
-        *            dataflow
-        */
-       void openDataflow(WorkflowBundle dataflow);
-
-       /**
-        * Open a dataflow from a source. The dataflow will not initially be 
marked
-        * as changed, and will be set as the new current workflow.
-        * <p>
-        * The file manager will find implementations of the SPI
-        * {@link DataflowPersistenceHandler} to perform the opening for the 
given file
-        * type and destination class.
-        * <p>
-        * Listeners registered using {@link Observable#addObserver(Observer)} 
will
-        * be notified with an {@link OpenedDataflowEvent}.
-        * <p>
-        * If there is only one workflow open before opening this workflow, and 
it
-        * is an unchanged blank workflow, the blank workflow will be closed.
-        *
-        * @param fileType
-        *            The filetype, for instance
-        *            {@link 
net.sf.taverna.t2.workbench.file.impl.T2FlowFileType}.
-        *            The file type must be supported by an implementation of 
the
-        *            SPI DataflowPersistenceHandler.
-        * @param source
-        *            The source, for instance a {@link File} or {@link URL}. 
The
-        *            source type must be supported by an implementation of
-        *            DataflowPersistenceHandler.
-        * @return The opened {@link WorkflowBundle}.
-        * @throws OpenException
-        *             If there was no matching DataflowPersistenceHandler 
found or
-        *             the source could not be opened for any other reason, 
such as
-        *             IO errors or syntax errors.
-        */
-       WorkflowBundle openDataflow(FileType fileType, Object source)
-                       throws OpenException;
-
-       /**
-        * Open a dataflow from a source silently. The dataflow will not be 
listed
-        * as open, and will not be made the current workflow.
-        * <p>
-        * The file manager will find implementations of the SPI
-        * {@link DataflowPersistenceHandler} to perform the opening for the 
given file
-        * type and destination class.
-        * <p>
-        * Listeners will <strong>not</strong> be notified.
-        *
-        * @param fileType
-        *            The filetype, for instance
-        *            {@link 
net.sf.taverna.t2.workbench.file.impl.T2FlowFileType}.
-        *            The file type must be supported by an implementation of 
the
-        *            SPI DataflowPersistenceHandler.
-        * @param source
-        *            The source, for instance a {@link File} or {@link URL}. 
The
-        *            source type must be supported by an implementation of
-        *            DataflowPersistenceHandler.
-        * @return The {@link DataflowInfo} describing the opened dataflow.
-        * @throws OpenException
-        *             If there was no matching DataflowPersistenceHandler 
found or
-        *             the source could not be opened for any other reason, 
such as
-        *             IO errors or syntax errors.
-        */
-       DataflowInfo openDataflowSilently(FileType fileType, Object source)
-                       throws OpenException;
-
-       /**
-        * Save the dataflow to the last saved destination and FileType from
-        * {@link #saveDataflow(WorkflowBundle, FileType, Object, boolean)} or 
the last
-        * opened source and FileType from {@link #openDataflow(FileType, 
Object)}.
-        * <p>
-        * Listeners registered using {@link Observable#addObserver(Observer)} 
will
-        * be notified with an {@link SavedDataflowEvent}.
-        *
-        * @param dataflow
-        *            Dataflow to save. Dataflow must have been opened with
-        *            {@link #openDataflow(FileType, Object)} or saved using
-        *            {@link #saveDataflow(WorkflowBundle, FileType, Object, 
boolean)}.
-        * @param failOnOverwrite
-        *            If <code>true</code>, an {@link OverwriteException} is 
thrown
-        *            if a save would overwrite the destination because it has 
been
-        *            changed since last open/save.
-        * @throws OverwriteException
-        *             if failOnOverwrite was true, and a save would overwrite 
the
-        *             destination because it has been changed since last 
open/save.
-        *             The save was not performed.
-        * @throws SaveException
-        *             If any other error occurs during saving, including the 
case
-        *             that a dataflow is not connected to a source or 
destination,
-        *             that there are no handlers (some source types can't be 
saved
-        *             to, such as HTTP URLs), or any other IO error occurring 
while
-        *             saving.
-        */
-       void saveDataflow(WorkflowBundle dataflow, boolean failOnOverwrite)
-                       throws SaveException, OverwriteException;
-
-       /**
-        * Save the dataflow to the given destination using the given filetype.
-        * <p>
-        * The file manager will find implementations of the SPI
-        * {@link DataflowPersistenceHandler} to perform the save for the given 
file
-        * type and destination class.
-        * <p>
-        * Listeners registered using {@link Observable#addObserver(Observer)} 
will
-        * be notified with an {@link SavedDataflowEvent}.
-        *
-        * @param dataflow
-        *            {@link Dataflow} to be saved
-        * @param fileType
-        *            {@link FileType} to save dataflow as, for instance
-        *            {@link 
net.sf.taverna.t2.workbench.file.impl.T2FlowFileType}.
-        *            The file type must be supported by an SPI implementation 
of
-        *            {@link DataflowPersistenceHandler}.
-        * @param destination
-        *            Destination to save dataflow to, for instance a {@link 
File}
-        * @param failOnOverwrite
-        *            If <code>true</code>, an {@link OverwriteException} is 
thrown
-        *            if a save would overwrite the destination because it 
already
-        *            exists, but was not opened or save to using the file 
manager
-        *            for the given dataflow. (ie. a repeated call to this 
function
-        *            should not throw an OverwriteException unless someone 
outside
-        *            has modified the file)
-        * @throws OverwriteException
-        *             if failOnOverwrite was true, and a save would overwrite 
the
-        *             destination because it already existed, and was not last
-        *             written to by a previous save. The save was not 
performed.
-        * @throws SaveException
-        *             If any other error occurs during saving, including the 
case
-        *             that a dataflow is not connected to a source or 
destination,
-        *             that there are no handlers (some source types can't be 
saved
-        *             to, such as HTTP URLs), or any other IO error occurring 
while
-        *             saving.
-        */
-       void saveDataflow(WorkflowBundle dataflow, FileType fileType,
-                       Object destination, boolean failOnOverwrite) throws 
SaveException,
-                       OverwriteException;
-
-       /**
-        * Silently save the dataflow to the given destination using the given
-        * filetype.
-        * <p>
-        * The file manager will find implementations of the SPI
-        * {@link DataflowPersistenceHandler} to perform the save for the given 
file
-        * type and destination class.
-        * <p>
-        * Listeners will <strong>not</strong> be notified, and the dataflow 
does
-        * not previously have to be opened. getDataflowSource(),
-        * isDataflowChanged() etc will not be affected - as if the silent save
-        * never happened.
-        * 
-        * @param dataflow
-        *            {@link WorkflowBundle} to be saved
-        * @param fileType
-        *            {@link FileType} to save dataflow as, for instance
-        *            {@link 
net.sf.taverna.t2.workbench.file.impl.T2FlowFileType}.
-        *            The file type must be supported by an SPI implementation 
of
-        *            {@link DataflowPersistenceHandler}.
-        * @param destination
-        *            Destination to save dataflow to, for instance a {@link 
File}
-        * @param failOnOverwrite
-        *            If <code>true</code>, an {@link OverwriteException} is 
thrown
-        *            if a save would overwrite the destination because it 
already
-        *            exists, but was not opened or save to using the file 
manager
-        *            for the given dataflow. (ie. a repeated call to this 
function
-        *            should not throw an OverwriteException unless someone 
outside
-        *            has modified the file)
-        * @return The {@link DataflowInfo} describing where the workflow was 
saved
-        * @throws OverwriteException
-        *             if failOnOverwrite was true, and a save would overwrite 
the
-        *             destination because it already existed, and was not last
-        *             written to by a previous save. The save was not 
performed.
-        * @throws SaveException
-        *             If any other error occurs during saving, including the 
case
-        *             that a dataflow is not connected to a source or 
destination,
-        *             that there are no handlers (some source types can't be 
saved
-        *             to, such as HTTP URLs), or any other IO error occurring 
while
-        *             saving.
-        */
-       DataflowInfo saveDataflowSilently(WorkflowBundle dataflow, FileType 
fileType,
-                       Object destination, boolean failOnOverwrite) throws 
SaveException,
-                       OverwriteException;
-
-       /**
-        * Set the current dataflow to the one provided.
-        * <p>
-        * The current dataflow can be retrieved using {@link 
#getCurrentDataflow()}
-        * . Note that opening a dataflow will normally also set it as the 
current
-        * dataflow.
-        * <p>
-        * Listeners registered using {@link Observable#addObserver(Observer)} 
will
-        * be notified with an {@link SetCurrentDataflowEvent}.
-        * <p>
-        * Note, the dataflow must already be open. If this is not the case, 
use one
-        * of the openDataflow() methods or
-        * {@link #setCurrentDataflow(WorkflowBundle, boolean)}.
-        *
-        * @see #setCurrentDataflow(WorkflowBundle, boolean)
-        * @param dataflow
-        *            {@link WorkflowBundle} to be made current
-        */
-       void setCurrentDataflow(WorkflowBundle dataflow);
-
-       /**
-        * Set the current dataflow to the one provided.
-        * <p>
-        * The current dataflow can be retrieved using {@link 
#getCurrentDataflow()}
-        * . Note that opening a dataflow will normally also set it as the 
current
-        * dataflow.
-        * <p>
-        * Listeners registered using {@link Observable#addObserver(Observer)} 
will
-        * be notified with an {@link SetCurrentDataflowEvent}.
-        * <p>
-        * Unless <code>openIfNeeded</code> is <code>true</code>, the dataflow 
must
-        * already be open.
-        *
-        * @see #setCurrentDataflow(WorkflowBundle, boolean)
-        * @param dataflow
-        *            {@link WorkflowBundle} to be made current
-        * @param openIfNeeded
-        *            If <code>true</code>, open the dataflow if needed
-        */
-       void setCurrentDataflow(WorkflowBundle dataflow, boolean openIfNeeded);
-
-       /**
-        * Set a dataflow as changed or not. This changes the value returned by
-        * {@link #isDataflowChanged(WorkflowBundle)}.
-        * <p>
-        * This method can be used if the dataflow has been changed outside the
-        * {@link EditManager}.
-        *
-        * @param dataflow
-        *            Dataflow which is to be marked
-        * @param isChanged
-        *            <code>true</code> if the dataflow is to be marked as 
changed,
-        *            <code>false</code> if it is to be marked as not changed.
-        */
-       void setDataflowChanged(WorkflowBundle dataflow, boolean isChanged);
-
-       /**
-        * Returns the canonical form of the source where the dataflow was 
opened
-        * from or saved to. The code for this method was devised based on
-        * {@link 
net.sf.taverna.t2.workbench.file.impl.T2DataflowOpener#openDataflow(FileType 
fileType, Object source)}.
-        */
-       Object getCanonical(Object source) throws IllegalArgumentException,
-                       URISyntaxException, IOException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/FileType.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/FileType.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/FileType.java
deleted file mode 100644
index 001d82c..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/FileType.java
+++ /dev/null
@@ -1,67 +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.file;
-
-/**
- * A filetype to identify a way to (de)serialise a {@link WorkflowBundle} with
- * the {@link FileManager}.
- * <p>
- * Two filetypes are considered equal if they share an extension or mime type 
or
- * are the same instance.
- * 
- * @see net.sf.taverna.t2.workbench.file.impl.WorkflowBundleFileType
- * @author Stian Soiland-Reyes
- */
-public abstract class FileType {
-       public abstract String getExtension();
-
-       public abstract String getMimeType();
-
-       public abstract String getDescription();
-
-       /**
-        * {@inheritDoc}
-        */
-       @Override
-       public boolean equals(Object obj) {
-               if (obj == this)
-                       return true;
-               if (!(obj instanceof FileType))
-                       return false;
-               FileType other = (FileType) obj;
-               if (getMimeType() != null && other.getMimeType() != null)
-                       return 
getMimeType().equalsIgnoreCase(other.getMimeType());
-               if (getExtension() != null && other.getExtension() != null)
-                       return 
getExtension().equalsIgnoreCase(other.getExtension());
-               return false;
-       }
-
-       /**
-        * {@inheritDoc}
-        */
-       @Override
-       public int hashCode() {
-               int hash = 7;
-               hash = 31 * hash + getExtension().hashCode();
-               hash = 31 * hash + getMimeType().hashCode();
-               return hash;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/AbstractDataflowEvent.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/AbstractDataflowEvent.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/AbstractDataflowEvent.java
deleted file mode 100644
index 942e097..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/AbstractDataflowEvent.java
+++ /dev/null
@@ -1,45 +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.file.events;
-
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-/**
- * Abstract FileManagerEvent that relates to a {@link WorkflowBundle}
- * 
- * @see AbstractDataflowEvent
- * @see ClosedDataflowEvent
- * @see OpenedDataflowEvent
- * @see SavedDataflowEvent
- * @see SetCurrentDataflowEvent
- * @author Stian Soiland-Reyes
- */
-public abstract class AbstractDataflowEvent extends FileManagerEvent {
-       private final WorkflowBundle workflowBundle;
-
-       public AbstractDataflowEvent(WorkflowBundle workflowBundle) {
-               this.workflowBundle = workflowBundle;
-       }
-
-       public WorkflowBundle getDataflow() {
-               return workflowBundle;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/ClosedDataflowEvent.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/ClosedDataflowEvent.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/ClosedDataflowEvent.java
deleted file mode 100644
index 5e7e884..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/ClosedDataflowEvent.java
+++ /dev/null
@@ -1,34 +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.file.events;
-
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-/**
- * {@link FileManagerEvent} that means a {@link WorkflowBundle} has been 
closed.
- * 
- * @author Stian Soiland-Reyes
- */
-public class ClosedDataflowEvent extends AbstractDataflowEvent {
-       public ClosedDataflowEvent(WorkflowBundle workflowBundle) {
-               super(workflowBundle);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/ClosingDataflowEvent.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/ClosingDataflowEvent.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/ClosingDataflowEvent.java
deleted file mode 100644
index 094ea10..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/ClosingDataflowEvent.java
+++ /dev/null
@@ -1,45 +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.file.events;
-
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-/**
- * {@link FileManagerEvent} that means a {@link WorkflowBundle} is being 
closed.
- * <i>This event is abortable;</i> if aborted, the close will not occur.
- * 
- * @author Alan R Williams
- */
-public class ClosingDataflowEvent extends AbstractDataflowEvent {
-       private boolean abortClose = false;
-
-       public boolean isAbortClose() {
-               return abortClose;
-       }
-
-       public void setAbortClose(boolean abortClose) {
-               this.abortClose = abortClose;
-       }
-
-       public ClosingDataflowEvent(WorkflowBundle workflowBundle) {
-               super(workflowBundle);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/FileManagerEvent.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/FileManagerEvent.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/FileManagerEvent.java
deleted file mode 100644
index 84c3886..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/FileManagerEvent.java
+++ /dev/null
@@ -1,39 +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.file.events;
-
-import net.sf.taverna.t2.lang.observer.Observable;
-import net.sf.taverna.t2.workbench.file.FileManager;
-
-/**
- * An event given to {@link FileManager} observers registered using
- * {@link Observable#addObserver(net.sf.taverna.t2.lang.observer.Observer)}.
- * 
- * @see AbstractDataflowEvent
- * @see ClosedDataflowEvent
- * @see OpenedDataflowEvent
- * @see SavedDataflowEvent
- * @see SetCurrentDataflowEvent
- * @author Stian Soiland-Reyes
- */
-public class FileManagerEvent {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/OpenedDataflowEvent.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/OpenedDataflowEvent.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/OpenedDataflowEvent.java
deleted file mode 100644
index b479a83..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/OpenedDataflowEvent.java
+++ /dev/null
@@ -1,34 +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.file.events;
-
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-/**
- * {@link FileManagerEvent} that means a dataflow has been opened
- * 
- * @author Stian Soiland-Reyes
- */
-public class OpenedDataflowEvent extends AbstractDataflowEvent {
-       public OpenedDataflowEvent(WorkflowBundle workflowBundle) {
-               super(workflowBundle);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/SavedDataflowEvent.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/SavedDataflowEvent.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/SavedDataflowEvent.java
deleted file mode 100644
index f0f22ae..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/SavedDataflowEvent.java
+++ /dev/null
@@ -1,34 +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.file.events;
-
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-/**
- * {@link FileManagerEvent} that means a {@link WorkflowBundle} has been saved.
- * 
- * @author Stian Soiland-Reyes
- */
-public class SavedDataflowEvent extends AbstractDataflowEvent {
-       public SavedDataflowEvent(WorkflowBundle workflowBundle) {
-               super(workflowBundle);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/SetCurrentDataflowEvent.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/SetCurrentDataflowEvent.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/SetCurrentDataflowEvent.java
deleted file mode 100644
index ff44cf2..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/events/SetCurrentDataflowEvent.java
+++ /dev/null
@@ -1,35 +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.file.events;
-
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-/**
- * {@link FileManagerEvent} that means a {@link WorkflowBundle} has been made
- * current.
- * 
- * @author Stian Soiland-Reyes
- */
-public class SetCurrentDataflowEvent extends AbstractDataflowEvent {
-       public SetCurrentDataflowEvent(WorkflowBundle workflowBundle) {
-               super(workflowBundle);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/FileException.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/FileException.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/FileException.java
deleted file mode 100644
index a2cb9ce..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/FileException.java
+++ /dev/null
@@ -1,44 +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.file.exceptions;
-
-import net.sf.taverna.t2.workbench.file.FileManager;
-
-/**
- * Superclass of exceptions thrown by the {@link FileManager}.
- */
-@SuppressWarnings("serial")
-public class FileException extends Exception {
-       public FileException() {
-       }
-
-       public FileException(String message) {
-               super(message);
-       }
-
-       public FileException(Throwable cause) {
-               super(cause);
-       }
-
-       public FileException(String message, Throwable cause) {
-               super(message, cause);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/OpenException.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/OpenException.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/OpenException.java
deleted file mode 100644
index 057679b..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/OpenException.java
+++ /dev/null
@@ -1,40 +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.file.exceptions;
-
-/** Indicate that something went wrong during opening a file */
-@SuppressWarnings("serial")
-public class OpenException extends FileException {
-       public OpenException() {
-       }
-
-       public OpenException(String message) {
-               super(message);
-       }
-
-       public OpenException(Throwable cause) {
-               super(cause);
-       }
-
-       public OpenException(String message, Throwable cause) {
-               super(message, cause);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/OverwriteException.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/OverwriteException.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/OverwriteException.java
deleted file mode 100644
index 6d410a3..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/OverwriteException.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.file.exceptions;
-
-/** Indicate that something could not be overwritten. */
-@SuppressWarnings("serial")
-public class OverwriteException extends SaveException {
-       private final Object destination;
-
-       public OverwriteException(Object destination) {
-               super("Save would overwrite existing destination " + 
destination);
-               this.destination = destination;
-       }
-
-       public Object getDestination() {
-               return destination;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/SaveException.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/SaveException.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/SaveException.java
deleted file mode 100644
index 8c4266f..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/SaveException.java
+++ /dev/null
@@ -1,40 +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.file.exceptions;
-
-/** Indicate that a workflow could not be saved. */
-@SuppressWarnings("serial")
-public class SaveException extends FileException {
-       public SaveException() {
-       }
-
-       public SaveException(String message) {
-               super(message);
-       }
-
-       public SaveException(Throwable cause) {
-               super(cause);
-       }
-
-       public SaveException(String message, Throwable cause) {
-               super(message, cause);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/UnsavedException.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/UnsavedException.java
 
b/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/UnsavedException.java
deleted file mode 100644
index 41c01f8..0000000
--- 
a/taverna-workbench-file-api/src/main/java/net/sf/taverna/t2/workbench/file/exceptions/UnsavedException.java
+++ /dev/null
@@ -1,38 +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.file.exceptions;
-
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-/** Indicate that a workflow bundle is not saved. */
-@SuppressWarnings("serial")
-public class UnsavedException extends FileException {
-       private final WorkflowBundle workflowBundle;
-
-       public UnsavedException(WorkflowBundle workflowBundle) {
-               super("WorkflowBundle was not saved: " + workflowBundle);
-               this.workflowBundle = workflowBundle;
-       }
-
-       public WorkflowBundle getDataflow() {
-               return workflowBundle;
-       }
-}

Reply via email to