You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/02/17 12:45:27 UTC

[03/52] [abbrv] incubator-taverna-workbench git commit: taverna-ui-impl/

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/WorkbenchPerspectives.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/WorkbenchPerspectives.java b/taverna-workbench-workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/WorkbenchPerspectives.java
new file mode 100644
index 0000000..921260a
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/WorkbenchPerspectives.java
@@ -0,0 +1,229 @@
+/*******************************************************************************
+ * 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.ui.impl;
+
+import static java.awt.Image.SCALE_SMOOTH;
+import static javax.swing.Action.NAME;
+import static javax.swing.Action.SMALL_ICON;
+import static javax.swing.SwingUtilities.invokeLater;
+
+import java.awt.CardLayout;
+import java.awt.Component;
+import java.awt.Image;
+import java.awt.event.ActionEvent;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.AbstractAction;
+import javax.swing.AbstractButton;
+import javax.swing.Action;
+import javax.swing.ButtonGroup;
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+import javax.swing.JToggleButton;
+import javax.swing.JToolBar;
+
+import net.sf.taverna.t2.lang.observer.Observable;
+import net.sf.taverna.t2.lang.observer.SwingAwareObserver;
+import net.sf.taverna.t2.workbench.selection.SelectionManager;
+import net.sf.taverna.t2.workbench.selection.events.PerspectiveSelectionEvent;
+import net.sf.taverna.t2.workbench.selection.events.SelectionManagerEvent;
+import net.sf.taverna.t2.workbench.ui.zaria.PerspectiveSPI;
+
+import org.apache.log4j.Logger;
+
+@SuppressWarnings("serial")
+public class WorkbenchPerspectives {
+	private static Logger logger = Logger
+			.getLogger(WorkbenchPerspectives.class);
+
+	private PerspectiveSPI currentPerspective;
+	private ButtonGroup perspectiveButtonGroup = new ButtonGroup();
+	private Map<String, JToggleButton> perspectiveButtonMap = new HashMap<>();
+	private JToolBar toolBar;
+	private JPanel panel;
+	private CardLayout cardLayout;
+	private List<PerspectiveSPI> perspectives = new ArrayList<>();
+	private boolean refreshing;
+	private final SelectionManager selectionManager;
+
+	public WorkbenchPerspectives(JToolBar toolBar, JPanel panel,
+			CardLayout cardLayout, SelectionManager selectionManager) {
+		this.panel = panel;
+		this.toolBar = toolBar;
+		this.cardLayout = cardLayout;
+		this.selectionManager = selectionManager;
+		refreshing = true;
+		selectionManager.addObserver(new SelectionManagerObserver());
+		refreshing = false;
+	}
+
+	public List<PerspectiveSPI> getPerspectives() {
+		return this.perspectives;
+	}
+
+	public void setPerspectives(List<PerspectiveSPI> perspectives) {
+		this.perspectives = perspectives;
+		initialisePerspectives();
+	}
+
+	private void initialisePerspectives() {
+		for (final PerspectiveSPI perspective : perspectives)
+			addPerspective(perspective, false);
+		selectFirstPerspective();
+	}
+
+	private void setPerspective(PerspectiveSPI perspective) {
+		if (perspective != currentPerspective) {
+			if (!perspectiveButtonMap.containsKey(perspective.getID()))
+				addPerspective(perspective, true);
+			if (!(perspective instanceof BlankPerspective))
+				perspectiveButtonMap.get(perspective.getID()).setSelected(true);
+			cardLayout.show(panel, perspective.getID());
+			currentPerspective = perspective;
+		}
+	}
+
+	private void addPerspective(final PerspectiveSPI perspective,
+			boolean makeActive) {
+		// ensure icon image is always 16x16
+		ImageIcon buttonIcon = null;
+		if (perspective.getButtonIcon() != null) {
+			Image buttonImage = perspective.getButtonIcon().getImage();
+			buttonIcon = new ImageIcon(buttonImage.getScaledInstance(16, 16,
+					SCALE_SMOOTH));
+		}
+
+		final JToggleButton toolbarButton = new JToggleButton(
+				perspective.getText(), buttonIcon);
+		toolbarButton.setToolTipText(perspective.getText() + " perspective");
+		Action action = new AbstractAction() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				selectionManager.setSelectedPerspective(perspective);
+			}
+		};
+		action.putValue(NAME, perspective.getText());
+		action.putValue(SMALL_ICON, buttonIcon);
+
+		toolbarButton.setAction(action);
+		toolBar.add(toolbarButton);
+		perspectiveButtonGroup.add(toolbarButton);
+		perspectiveButtonMap.put(perspective.getID(), toolbarButton);
+
+		panel.add(perspective.getPanel(), perspective.getID());
+		if (makeActive)
+			toolbarButton.doClick();
+	}
+
+	/**
+	 * Recreates the toolbar buttons. Useful if a perspective has been removed.
+	 */
+	public void refreshPerspectives() {
+		invokeLater(new RefreshRunner());
+	}
+
+	/** selects the first visible perspective by clicking on the toolbar button */
+	private void selectFirstPerspective() {
+		boolean set = false;
+		for (Component c : toolBar.getComponents())
+			if (c instanceof AbstractButton && c.isVisible()) {
+				((AbstractButton) c).doClick();
+				set = true;
+				break;
+			}
+
+		if (!set) {
+			// no visible perspectives were found
+			logger.info("No visible perspectives.");
+			selectionManager.setSelectedPerspective(new BlankPerspective());
+		}
+	}
+
+	private final class RefreshRunner implements Runnable {
+		@Override
+		public void run() {
+			synchronized (WorkbenchPerspectives.this) {
+				if (refreshing)
+					// We only need one run
+					return;
+				refreshing = true;
+			}
+			try {
+				toolBar.removeAll();
+				toolBar.repaint();
+				initialisePerspectives();
+			} finally {
+				synchronized (WorkbenchPerspectives.this) {
+					refreshing = false;
+				}
+			}
+		}
+	}
+
+	private final class SelectionManagerObserver extends
+			SwingAwareObserver<SelectionManagerEvent> {
+		@Override
+		public void notifySwing(Observable<SelectionManagerEvent> sender,
+				SelectionManagerEvent message) {
+			if (message instanceof PerspectiveSelectionEvent) {
+				PerspectiveSPI selectedPerspective = ((PerspectiveSelectionEvent) message)
+						.getSelectedPerspective();
+				setPerspective(selectedPerspective);
+			}
+		}
+	}
+
+	/**
+	 * A dummy blank perspective for when there are no visible perspectives
+	 * available
+	 *
+	 * @author Stuart Owen
+	 */
+	private class BlankPerspective implements PerspectiveSPI {
+		@Override
+		public String getID() {
+			return BlankPerspective.class.getName();
+		}
+
+		@Override
+		public JPanel getPanel() {
+			return new JPanel();
+		}
+
+		@Override
+		public ImageIcon getButtonIcon() {
+			return null;
+		}
+
+		@Override
+		public String getText() {
+			return null;
+		}
+
+		@Override
+		public int positionHint() {
+			return 0;
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/menu/ExitAction.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/menu/ExitAction.java b/taverna-workbench-workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/menu/ExitAction.java
new file mode 100644
index 0000000..d5573be
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/menu/ExitAction.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * 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.ui.impl.menu;
+
+import java.awt.event.ActionEvent;
+import java.net.URI;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+
+import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
+import net.sf.taverna.t2.workbench.ui.Workbench;
+
+/**
+ * Exit the workbench
+ * 
+ * @author Stian Soiland-Reyes
+ */
+public class ExitAction extends AbstractMenuAction {
+	private static final String EXIT_LABEL = "Exit";
+	private static final String MAC_OS_X = "Mac OS X";
+	private Workbench workbench;
+
+	public ExitAction() {
+		super(URI.create("http://taverna.sf.net/2008/t2workbench/menu#file"),
+				10000);
+	}
+
+	@SuppressWarnings("serial")
+	@Override
+	protected Action createAction() {
+		return new AbstractAction(EXIT_LABEL) {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				workbench.exit();
+			}
+		};
+	}
+
+	@Override
+	public boolean isEnabled() {
+		return !MAC_OS_X.equalsIgnoreCase(System.getProperty("os.name"));
+	}
+
+	public void setWorkbench(Workbench workbench) {
+		this.workbench = workbench;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.raven.launcher.Launchable
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.raven.launcher.Launchable b/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.raven.launcher.Launchable
new file mode 100644
index 0000000..a9fa855
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.raven.launcher.Launchable
@@ -0,0 +1 @@
+net.sf.taverna.t2.workbench.ui.impl.WorkbenchLauncher

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent b/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
new file mode 100644
index 0000000..0c43dec
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
@@ -0,0 +1,18 @@
+
+net.sf.taverna.t2.workbench.ui.impl.menu.FileMenu
+net.sf.taverna.t2.workbench.ui.impl.menu.ExitAction
+
+net.sf.taverna.t2.workbench.ui.impl.menu.EditMenu
+
+net.sf.taverna.t2.workbench.ui.impl.menu.AdvancedMenu
+net.sf.taverna.t2.workbench.ui.impl.menu.DisplayPerspectivesMenu
+net.sf.taverna.t2.workbench.ui.impl.menu.EditPerspectivesMenu
+
+net.sf.taverna.t2.workbench.ui.impl.menu.HelpMenu
+net.sf.taverna.t2.workbench.ui.impl.menu.OnlineHelpMenuAction
+net.sf.taverna.t2.workbench.ui.impl.menu.FeedbackMenuAction
+
+#net.sf.taverna.t2.workbench.ui.impl.menu.ViewShowMenuSection
+#net.sf.taverna.t2.workbench.ui.impl.menu.ChangePerspectiveMenuAction
+
+net.sf.taverna.t2.workbench.ui.impl.menu.ShowLogsAndDataMenuAction
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ShutdownSPI
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ShutdownSPI b/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ShutdownSPI
new file mode 100644
index 0000000..c022389
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ShutdownSPI
@@ -0,0 +1 @@
+net.sf.taverna.t2.workbench.ui.impl.StoreWindowStateOnShutdown
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.StartupSPI
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.StartupSPI b/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.StartupSPI
new file mode 100644
index 0000000..86349aa
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.StartupSPI
@@ -0,0 +1,2 @@
+net.sf.taverna.t2.workbench.ui.impl.UserRegistrationHook
+net.sf.taverna.t2.workbench.ui.impl.SetConsoleLoggerStartup

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/resources/META-INF/spring/workbench-impl-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/resources/META-INF/spring/workbench-impl-context-osgi.xml b/taverna-workbench-workbench-impl/src/main/resources/META-INF/spring/workbench-impl-context-osgi.xml
new file mode 100644
index 0000000..0dc7efc
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/resources/META-INF/spring/workbench-impl-context-osgi.xml
@@ -0,0 +1,38 @@
+<?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="UserRegistrationHook" interface="net.sf.taverna.t2.workbench.StartupSPI" />
+	<!-- <service ref="SetConsoleLoggerStartup" interface="net.sf.taverna.t2.workbench.StartupSPI" /> -->
+
+	<service ref="StoreWindowStateOnShutdown" interface="net.sf.taverna.t2.workbench.ShutdownSPI" />
+
+	<service ref="ExitAction" auto-export="interfaces">
+		<service-properties>
+			<beans:entry key="menu.action" value="file.exit" />
+		</service-properties>
+	</service>
+
+	<service ref="Workbench" interface="net.sf.taverna.t2.workbench.ui.Workbench" />
+
+	<reference id="editManager" interface="net.sf.taverna.t2.workbench.edits.EditManager" />
+	<reference id="fileManager" interface="net.sf.taverna.t2.workbench.file.FileManager" />
+	<reference id="menuManager" interface="net.sf.taverna.t2.ui.menu.MenuManager" />
+	<reference id="selectionManager" interface="net.sf.taverna.t2.workbench.selection.SelectionManager" />
+	<reference id="pluginManager" interface="uk.org.taverna.commons.plugin.PluginManager" />
+	<reference id="workbenchConfiguration" interface="net.sf.taverna.t2.workbench.configuration.workbench.WorkbenchConfiguration" />
+	<reference id="applicationConfiguration" interface="uk.org.taverna.configuration.app.ApplicationConfiguration" />
+	<reference id="t2ConfigurationFrame" interface="net.sf.taverna.t2.workbench.configuration.workbench.ui.T2ConfigurationFrame" />
+
+	<list id="perspectives" interface="net.sf.taverna.t2.workbench.ui.zaria.PerspectiveSPI" cardinality="0..N" comparator-ref="PerspectiveComparator" greedy-proxying="true">
+		<listener ref="Workbench" bind-method="refreshPerspectives" unbind-method="refreshPerspectives" />
+	</list>
+
+	<list id="startupHooks" interface="net.sf.taverna.t2.workbench.StartupSPI" cardinality="0..N" comparator-ref="StartupComparator"/>
+	<list id="shutdownHooks" interface="net.sf.taverna.t2.workbench.ShutdownSPI" cardinality="0..N" comparator-ref="ShutdownComparator"/>
+
+</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/resources/META-INF/spring/workbench-impl-context.xml
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/resources/META-INF/spring/workbench-impl-context.xml b/taverna-workbench-workbench-impl/src/main/resources/META-INF/spring/workbench-impl-context.xml
new file mode 100644
index 0000000..78c4eb2
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/resources/META-INF/spring/workbench-impl-context.xml
@@ -0,0 +1,43 @@
+<?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="UserRegistrationHook" class="net.sf.taverna.t2.workbench.ui.impl.UserRegistrationHook">
+		<property name="applicationConfiguration" ref="applicationConfiguration"/>
+	</bean>
+	<bean id="SetConsoleLoggerStartup" class="net.sf.taverna.t2.workbench.ui.impl.SetConsoleLoggerStartup">
+		<constructor-arg ref="workbenchConfiguration" />
+	</bean>
+
+	<bean id="StoreWindowStateOnShutdown" class="net.sf.taverna.t2.workbench.ui.impl.StoreWindowStateOnShutdown">
+		<property name="workbench">
+			<ref local="Workbench"/>
+		</property>
+	</bean>
+
+	<bean id="ExitAction" class="net.sf.taverna.t2.workbench.ui.impl.menu.ExitAction">
+		<property name="workbench">
+			<ref local ="Workbench"/>
+		</property>
+	</bean>
+
+	<bean id="Workbench" class="net.sf.taverna.t2.workbench.ui.impl.WorkbenchImpl" init-method="initialize">
+		<constructor-arg ref="startupHooks"/>
+		<constructor-arg ref="shutdownHooks"/>
+		<constructor-arg ref="perspectives"/>
+		<property name="editManager" ref="editManager"/>
+		<property name="fileManager" ref="fileManager"/>
+		<property name="menuManager" ref="menuManager"/>
+		<property name="t2ConfigurationFrame" ref="t2ConfigurationFrame"/>
+		<property name="workbenchConfiguration" ref="workbenchConfiguration"/>
+		<property name="applicationConfiguration" ref="applicationConfiguration"/>
+		<property name="selectionManager" ref="selectionManager"/>
+		<property name="pluginManager" ref="pluginManager"/>
+	</bean>
+
+	<bean id="PerspectiveComparator" class="net.sf.taverna.t2.workbench.ui.zaria.PerspectiveSPI$PerspectiveComparator" />
+	<bean id="StartupComparator" class="net.sf.taverna.t2.workbench.StartupSPI$StartupComparator" />
+	<bean id="ShutdownComparator" class="net.sf.taverna.t2.workbench.ShutdownSPI$ShutdownComparator" />
+
+</beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/resources/Map.jhm
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/resources/Map.jhm b/taverna-workbench-workbench-impl/src/main/resources/Map.jhm
new file mode 100644
index 0000000..ab5f560
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/resources/Map.jhm
@@ -0,0 +1,28 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>
+<!DOCTYPE map
+  PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN"
+         "http://java.sun.com/javase/technologies/desktop/javahelp/map_1_0.dtd">
+
+<map version="1.0">
+	<mapID target="toplevelfolder" url="images/toplevel.gif" />
+	<mapID target="top" url="help/welcome.html" />
+
+	<mapID target="intro" url="help/welcome.html" />
+	<mapID target="start" url="help/start.html" />
+	<mapID target="overview" url="help/welcome.html" />
+	<mapID target="one" url="help/start.html" />
+	<mapID target="two" url="help/start.html" />
+
+	<mapID target="bean.story" url="help/welcome.html" />
+	<mapID target="bean.story" url="help/start.html" />
+	<mapID target="bean.story" url="help/welcome.html" />
+	
+	<mapID target="http://taverna.sf.net/2008/t2workbench/menu#help"
+		url="http://www.google.com" />
+		
+	<mapID target="http://taverna.sf.net/2008/t2workbench/menu#fileOpen"
+		url="http://www.google.com" />
+
+		
+
+</map>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/resources/example-registration-form.xml
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/resources/example-registration-form.xml b/taverna-workbench-workbench-impl/src/main/resources/example-registration-form.xml
new file mode 100644
index 0000000..5d84369
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/resources/example-registration-form.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<registration_data>
+	<taverna_version>taverna-2.2.0</taverna_version>
+	<first_name>John</first_name>
+	<last_name>Doe</last_name>
+	<email_address>john.doe@jd-consulting.com</email_address>
+	<keep_me_informed>false</keep_me_informed>
+	<institution_or_company_name>JD Consulting</institution_or_company_name>
+	<industry_type>Industry - Pharmaceutical</industry_type>
+	<field_of_interest>bioinformatics</field_of_interest>
+	<purpose_of_using_taverna>pharmacogenomics</purpose_of_using_taverna>
+</registration_data>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/resources/registration-form.xsd
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/resources/registration-form.xsd b/taverna-workbench-workbench-impl/src/main/resources/registration-form.xsd
new file mode 100644
index 0000000..776f8e5
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/resources/registration-form.xsd
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+  <xs:element name="registration_data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="taverna_version"/>
+        <xs:element ref="first_name"/>
+        <xs:element ref="last_name"/>
+        <xs:element ref="email_address"/>
+        <xs:element ref="keep_me_informed"/>
+        <xs:element ref="institution_or_company_name"/>
+        <xs:element ref="industry_type"/>
+        <xs:element ref="field_of_interest"/>
+        <xs:element ref="purpose_of_using_taverna"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="taverna_version" type="xs:string"/>
+  <xs:element name="first_name" type="xs:string"/>
+  <xs:element name="last_name" type="xs:string"/>
+  <xs:element name="email_address" type="xs:string"/>
+  <xs:element name="keep_me_informed" type="xs:boolean"/>
+  <xs:element name="institution_or_company_name" type="xs:string"/>
+  <xs:element name="industry_type" type="xs:string"/>
+  <xs:element name="field_of_interest" type="xs:string"/>
+  <xs:element name="purpose_of_using_taverna" type="xs:string"/>
+</xs:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/resources/registration.php
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/resources/registration.php b/taverna-workbench-workbench-impl/src/main/resources/registration.php
new file mode 100644
index 0000000..902200b
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/resources/registration.php
@@ -0,0 +1,137 @@
+<?php
+
+/**
+ * A folder where to write the registrations
+ */
+
+$registrations_folder = "/var/taverna-registration";
+
+
+
+function xmlescape($string){
+          $res = str_replace("&", "&amp;",$string);
+          $res = str_replace("<", "&lt;",$res);
+          $res = str_replace(">", "&gt;",$res);
+          return $res;
+}
+
+
+
+/* From http://php.net/manual/en/function.uiqid.php 
+ * Requires yum install uuid-php
+   and in .htaccess / php.ini:
+     php_value allow_call_time_pass_reference true
+ */
+
+class uuid { 
+    /** 
+     * This class enables you to get real uuids using the OSSP library. 
+     * Note you need php-uuid installed. 
+     * On my system 1000 UUIDs are created in 0.0064 seconds. 
+     * 
+     * @author Marius Karthaus 
+     * 
+     */ 
+    
+    protected $uuidobject; 
+    
+    /** 
+     * On long running deamons i've seen a lost resource. This checks the resource and creates it if needed. 
+     * 
+     */ 
+    protected function create() { 
+        if (! is_resource ( $this->uuidobject )) { 
+            uuid_create ( &$this->uuidobject ); 
+        } 
+    } 
+    
+    /** 
+     * Return a type 1 (MAC address and time based) uuid 
+     * 
+     * @return String 
+     */ 
+    public function v1() { 
+        $this->create (); 
+        uuid_make ( $this->uuidobject, UUID_MAKE_V1 ); 
+        uuid_export ( $this->uuidobject, UUID_FMT_STR, &$uuidstring ); 
+        return trim ( $uuidstring ); 
+    } 
+    
+    /** 
+     * Return a type 4 (random) uuid 
+     * 
+     * @return String 
+     */ 
+    public function v4() { 
+        $this->create (); 
+        uuid_make ( $this->uuidobject, UUID_MAKE_V4 ); 
+        uuid_export ( $this->uuidobject, UUID_FMT_STR, &$uuidstring ); 
+        return trim ( $uuidstring ); 
+    } 
+    
+    /** 
+     * Return a type 5 (SHA-1 hash) uuid 
+     * 
+     * @return String 
+     */ 
+    public function v5() { 
+        $this->create (); 
+        uuid_make ( $this->uuidobject, UUID_MAKE_V5 ); 
+        uuid_export ( $this->uuidobject, UUID_FMT_STR, $uuidstring ); 
+        return trim ( $uuidstring ); 
+    } 
+} 
+
+	if(isset($_POST['taverna_registration'])){
+		
+		$taverna_version   = $_POST['taverna_version'];
+		$first_name   = $_POST['first_name'];
+		$last_name   = $_POST['last_name'];
+		$email   = $_POST['email'];
+		$keep_me_informed   = $_POST['keep_me_informed'];
+		$institution_or_company   = $_POST['institution_or_company'];
+		$industry   = $_POST['industry_type'];
+		$field   = $_POST['field'];
+		$purpose   = $_POST['purpose'];
+		
+		$uuid=new uuid(); 
+         
+		
+		// Generate user registration data file name with a random identifier
+		$random_id = $uuid->v4();
+		$user_registration_file_name = $registrations_folder . "/user_registration_" . $random_id . ".xml";
+		$user_registration_file = fopen($user_registration_file_name,'w') or die ("Could not open file ". $user_registration_file_name . " for writing." );
+		
+		// Save this to a file
+		/*
+		 $registration_data = "";
+		$registration_data .= "Taverna version=" . $taverna_version . "\n";
+		$registration_data .= "First name=" . $first_name . "\n";
+		$registration_data .= "Last name=" . $last_name . "\n";
+		$registration_data .= "Email address=" . $email . "\n";
+		$registration_data .= "Keep me informed by email=" . $keep_me_informed . "\n";
+		$registration_data .= "Institution or company=" . $institution_or_company . "\n";
+		$registration_data .= "Industry=" . $industry_type . "\n";
+		$registration_data .= "Field of interest=" . $field . "\n";
+		$registration_data .= "Purpose of using Taverna=" . $purpose;
+		 */
+		
+		$registration_data = "";
+		$registration_data .= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
+		$registration_data .= "<registration_data>\n";
+		$registration_data .= "\t<taverna_version>".xmlescape($taverna_version)."</taverna_version>\n";
+		$registration_data .= "\t<first_name>".xmlescape($first_name)."</first_name>\n";
+		$registration_data .= "\t<last_name>".xmlescape($last_name)."</last_name>\n";
+		$registration_data .= "\t<email_address>".xmlescape($email)."</email_address>\n";
+		$registration_data .= "\t<keep_me_informed>".xmlescape($keep_me_informed)."</keep_me_informed>\n";
+		$registration_data .= "\t<institution_or_company_name>".xmlescape($institution_or_company)."</institution_or_company_name>\n";
+		$registration_data .= "\t<industry_type>".xmlescape($industry)."</industry_type>\n";
+		$registration_data .= "\t<field_of_interest>".xmlescape($field)."</field_of_interest>\n";
+		$registration_data .= "\t<purpose_of_using_taverna>".xmlescape($purpose)."</purpose_of_using_taverna>\n";
+		$registration_data .= "</registration_data>\n";
+		
+		fwrite($user_registration_file, $registration_data) or die ("Could not write to file ". $user_registration_file_name );
+		fclose($user_registration_file);
+		echo "Registration successful!";
+	}
+?>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/main/resources/sample.hs
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/main/resources/sample.hs b/taverna-workbench-workbench-impl/src/main/resources/sample.hs
new file mode 100644
index 0000000..9b43dca
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/main/resources/sample.hs
@@ -0,0 +1,64 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>
+<!DOCTYPE helpset
+  PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 2.0//EN"
+         "../dtd/helpset_2_0.dtd">
+
+<helpset version="1.0">
+
+  <!-- title -->
+  <title>My Sample Help - Online</title>
+
+  <!-- maps -->
+  <maps>
+     <homeID>top</homeID>
+     <mapref location="Map.jhm"/>
+  </maps>
+
+  <!-- views -->
+  <view>
+    <name>TOC</name>
+    <label>Table Of Contents</label>
+    <type>javax.help.TOCView</type>
+    <data>SampleTOC.xml</data>
+  </view>
+
+  <view>
+    <name>Index</name>
+    <label>Index</label>
+    <type>javax.help.IndexView</type>
+    <data>SampleIndex.xml</data>
+  </view>
+
+  <view>
+    <name>Search</name>
+    <label>Search</label>
+    <type>javax.help.SearchView</type>
+    <data engine="com.sun.java.help.search.DefaultSearchEngine">
+      JavaHelpSearch
+    </data>
+  </view>
+
+  <presentation default="true" displayviewimages="false">
+     <name>main window</name>
+     <size width="700" height="400" />
+     <location x="200" y="200" />
+     <title>My Sample Help - Online</title>
+     <image>toplevelfolder</image>
+     <toolbar>
+	<helpaction>javax.help.BackAction</helpaction>
+	<helpaction>javax.help.ForwardAction</helpaction>
+	<helpaction>javax.help.SeparatorAction</helpaction>
+	<helpaction>javax.help.HomeAction</helpaction>
+	<helpaction>javax.help.ReloadAction</helpaction>
+	<helpaction>javax.help.SeparatorAction</helpaction>
+	<helpaction>javax.help.PrintAction</helpaction>
+	<helpaction>javax.help.PrintSetupAction</helpaction>
+     </toolbar>
+  </presentation>
+  <presentation>
+     <name>main</name>
+     <size width="400" height="400" />
+     <location x="200" y="200" />
+     <title>My Sample Help - Online</title>
+  </presentation>
+</helpset>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/test/java/net/sf/taverna/t2/workbench/ui/impl/UserRegistrationTest.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/test/java/net/sf/taverna/t2/workbench/ui/impl/UserRegistrationTest.java b/taverna-workbench-workbench-impl/src/test/java/net/sf/taverna/t2/workbench/ui/impl/UserRegistrationTest.java
new file mode 100644
index 0000000..4c64aa3
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/test/java/net/sf/taverna/t2/workbench/ui/impl/UserRegistrationTest.java
@@ -0,0 +1,190 @@
+/*******************************************************************************
+ * 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.ui.impl;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.ConnectException;
+import java.net.MalformedURLException;
+import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+
+import static org.junit.Assert.*;
+
+import net.sf.taverna.t2.workbench.ui.impl.UserRegistrationForm;
+
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class UserRegistrationTest {
+
+	@Ignore
+	@Test
+	public void postUserRegistrationDataToServer() {
+
+		String parameters = "";
+
+		// The 'submit' parameter - to let the server-side script know we are
+		// submitting
+		// the user's registration form - all other requests will be silently
+		// ignored
+		try {
+			parameters = URLEncoder
+					.encode(
+							UserRegistrationForm.TAVERNA_REGISTRATION_POST_PARAMETER_NAME,
+							"UTF-8")
+					+ "=" + URLEncoder.encode("submit", "UTF-8"); // value does
+																	// not
+																	// matter
+
+			parameters += "&"
+					+ URLEncoder
+							.encode(
+									UserRegistrationForm.TAVERNA_VERSION_POST_PARAMETER_NAME,
+									"UTF-8") + "="
+					+ URLEncoder.encode("snapshot", "UTF-8");
+			parameters += "&"
+					+ URLEncoder
+							.encode(
+									UserRegistrationForm.FIRST_NAME_POST_PARAMETER_NAME,
+									"UTF-8") + "="
+					+ URLEncoder.encode("Alex", "UTF-8");
+			parameters += "&"
+					+ URLEncoder.encode(
+							UserRegistrationForm.LAST_NAME_POST_PARAMETER_NAME,
+							"UTF-8") + "="
+					+ URLEncoder.encode("Nenadic", "UTF-8");
+			parameters += "&"
+					+ URLEncoder
+							.encode(
+									UserRegistrationForm.EMAIL_ADDRESS_POST_PARAMETER_NAME,
+									"UTF-8") + "="
+					+ URLEncoder.encode("alex@alex.com", "UTF-8");
+			parameters += "&"
+					+ URLEncoder
+							.encode(
+									UserRegistrationForm.KEEP_ME_INFORMED_POST_PARAMETER_PROPERTY_NAME,
+									"UTF-8") + "="
+					+ URLEncoder.encode("true", "UTF-8");
+			parameters += "&"
+					+ URLEncoder
+							.encode(
+									UserRegistrationForm.INSTITUTION_OR_COMPANY_POST_PARAMETER_NAME,
+									"UTF-8") + "="
+					+ URLEncoder.encode("Uni of Manchester", "UTF-8");
+			parameters += "&"
+					+ URLEncoder
+							.encode(
+									UserRegistrationForm.INDUSTRY_TYPE_POST_PARAMETER_NAME,
+									"UTF-8") + "="
+					+ URLEncoder.encode("Academia", "UTF-8");
+			parameters += "&"
+					+ URLEncoder.encode(
+							UserRegistrationForm.FIELD_POST_PARAMETER_NAME,
+							"UTF-8") + "="
+					+ URLEncoder.encode("Research", "UTF-8");
+			parameters += "&"
+					+ URLEncoder.encode(
+							UserRegistrationForm.PURPOSE_POST_PARAMETER_NAME,
+							"UTF-8") + "=" + URLEncoder.encode("None", "UTF-8");
+		} catch (UnsupportedEncodingException ueex) {
+			System.out
+					.println("Failed to url encode post parameters when sending user registration data.");
+		}
+		String server = "http://cactus.cs.man.ac.uk/~alex/taverna_registration/registration.php";
+		server = "http://localhost/~alex/taverna_registration/registration.php";
+		// server = "https://somehost.co.uk";
+
+		System.out.println("Posting user registartion to " + server
+				+ " with parameters: " + parameters);
+		String response = "";
+		try {
+			URL url = new URL(server);
+			URLConnection conn = url.openConnection();
+			System.out.println("Opened a connection");
+			// Set timeout for connection, otherwise we might hang too long
+			// if server is not responding and it will block Taverna
+			conn.setConnectTimeout(7000);
+			// Set connection parameters
+			conn.setDoInput(true);
+			conn.setDoOutput(true);
+			conn.setUseCaches(false);
+			// Make server believe we are HTML form data...
+			conn.setRequestProperty("Content-Type",
+					"application/x-www-form-urlencoded");
+			System.out
+					.println("Trying to get an output stream from the connection");
+			DataOutputStream out = new DataOutputStream(conn.getOutputStream());
+			// Write out the bytes of the content string to the stream.
+			out.writeBytes(parameters);
+			out.flush();
+			out.close();
+			// Read response from the input stream.
+			BufferedReader in = new BufferedReader(new InputStreamReader(conn
+					.getInputStream()));
+			String temp;
+			while ((temp = in.readLine()) != null) {
+				response += temp + "\n";
+			}
+			// Remove the last \n character
+			if (!response.equals("")) {
+				response = response.substring(0, response.length() - 1);
+			}
+			in.close();
+			System.out.println(response);
+			if (!response.equals("Registration successful!")) {
+				System.out
+						.println("Registration failed. Response form server was: "
+								+ response);
+			}
+			assertTrue(response.equals("Registration successful!"));
+		}
+		// Catch some runtime exceptions
+		catch (ConnectException ceex) { // the connection was refused remotely
+										// (e.g. no process is listening on the
+										// remote address/port).
+			System.out
+					.println("User registration failed: Registration server is not listening of the specified url.");
+			ceex.printStackTrace();
+		}
+		// Catch some runtime exceptions
+		catch (SocketTimeoutException stex) { // timeout has occurred on a
+												// socket read or accept.
+			System.out
+					.println("User registration failed: Socket timeout occurred.");
+			stex.printStackTrace();
+		} catch (MalformedURLException muex) {
+			System.out
+					.println("User registration failed: Registartion server's url is malformed.");
+			muex.printStackTrace();
+		} catch (IOException ioex) {
+			System.out
+					.println("User registration failed: Failed to open url connection to registration server or writing to it or reading from it.");
+			ioex.printStackTrace();
+		}
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/taverna-workbench-workbench-impl/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/taverna-workbench-workbench-impl/src/test/resources/log4j.properties b/taverna-workbench-workbench-impl/src/test/resources/log4j.properties
new file mode 100644
index 0000000..fa27070
--- /dev/null
+++ b/taverna-workbench-workbench-impl/src/test/resources/log4j.properties
@@ -0,0 +1,10 @@
+log4j.rootLogger=WARN, CONSOLE
+log4j.logger.net.sf.taverna.t2.workbench=INFO
+log4j.logger.net.sf.taverna.t2.ui=DEBUG
+
+#log4j.logger.org.apache.commons.httpclient=ERROR
+
+# Default output to console
+log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONSOLE.layout.ConversionPattern=%-5p %d{ISO8601} (%c:%L) - %m%n
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/update-manager/pom.xml
----------------------------------------------------------------------
diff --git a/update-manager/pom.xml b/update-manager/pom.xml
deleted file mode 100644
index c2f2003..0000000
--- a/update-manager/pom.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>net.sf.taverna.t2</groupId>
-		<artifactId>ui-impl</artifactId>
-		<version>2.0-SNAPSHOT</version>
-	</parent>
-	<groupId>net.sf.taverna.t2.ui-impl</groupId>
-	<artifactId>update-manager</artifactId>
-	<version>2.0.1-SNAPSHOT</version>
-	<packaging>bundle</packaging>
-	<name>Taverna Workbench Update Manager</name>
-	<dependencies>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>menu-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>uk.org.taverna.commons</groupId>
-			<artifactId>taverna-update-api</artifactId>
-			<version>${taverna.commons.version}</version>
-		</dependency>
-	</dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/update-manager/src/main/java/net/sf/taverna/t2/workbench/update/impl/UpdateManagerView.java
----------------------------------------------------------------------
diff --git a/update-manager/src/main/java/net/sf/taverna/t2/workbench/update/impl/UpdateManagerView.java b/update-manager/src/main/java/net/sf/taverna/t2/workbench/update/impl/UpdateManagerView.java
deleted file mode 100644
index 6b70101..0000000
--- a/update-manager/src/main/java/net/sf/taverna/t2/workbench/update/impl/UpdateManagerView.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2013 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workbench.update.impl;
-
-import java.awt.GridBagLayout;
-
-import javax.swing.JPanel;
-
-import uk.org.taverna.commons.update.UpdateManager;
-
-/**
- * @author David Withers
- */
-@SuppressWarnings({ "serial", "unused" })
-public class UpdateManagerView extends JPanel {
-
-	private UpdateManager updateManager;
-
-	public UpdateManagerView(UpdateManager updateManager) {
-		this.updateManager = updateManager;
-		initialize();
-	}
-
-	private void initialize() {
-		setLayout(new GridBagLayout());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/update-manager/src/main/java/net/sf/taverna/t2/workbench/update/impl/menu/UpdateMenuAction.java
----------------------------------------------------------------------
diff --git a/update-manager/src/main/java/net/sf/taverna/t2/workbench/update/impl/menu/UpdateMenuAction.java b/update-manager/src/main/java/net/sf/taverna/t2/workbench/update/impl/menu/UpdateMenuAction.java
deleted file mode 100644
index 2c1459b..0000000
--- a/update-manager/src/main/java/net/sf/taverna/t2/workbench/update/impl/menu/UpdateMenuAction.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2013 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workbench.update.impl.menu;
-
-import static javax.swing.JOptionPane.YES_OPTION;
-import static javax.swing.JOptionPane.showConfirmDialog;
-import static javax.swing.JOptionPane.showMessageDialog;
-
-import java.awt.Component;
-import java.awt.event.ActionEvent;
-import java.net.URI;
-
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
-
-import org.apache.log4j.Logger;
-
-import uk.org.taverna.commons.update.UpdateException;
-import uk.org.taverna.commons.update.UpdateManager;
-
-public class UpdateMenuAction extends AbstractMenuAction {
-	private static final Logger logger = Logger.getLogger(UpdateMenuAction.class);
-	private static final URI ADVANCED_MENU_URI = URI
-			.create("http://taverna.sf.net/2008/t2workbench/menu#advanced");
-
-	private UpdateManager updateManager;
-
-	public UpdateMenuAction() {
-		super(ADVANCED_MENU_URI, 1000);
-	}
-
-	@SuppressWarnings("serial")
-	@Override
-	protected Action createAction() {
-		return new AbstractAction("Check for updates") {
-			@Override
-			public void actionPerformed(ActionEvent e) {
-				findUpdates();
-			}
-		};
-	}
-
-	public void setUpdateManager(UpdateManager updateManager) {
-		this.updateManager = updateManager;
-	}
-
-	private void findUpdates() {
-		Component parent = null;
-		try {
-			if (!areUpdatesAvailable()) {
-				showMessageDialog(null, "No update available");
-				return;
-			}
-			if (showConfirmDialog(parent, "Update available. Update Now?") != YES_OPTION)
-				return;
-			applyUpdates();
-			showMessageDialog(parent,
-					"Update complete. Restart Taverna to apply update.");
-		} catch (UpdateException ex) {
-			showMessageDialog(parent, "Update failed: " + ex.getMessage());
-			logger.warn("Update failed", ex);
-		}
-	}
-
-	protected boolean areUpdatesAvailable() throws UpdateException {
-		return updateManager.checkForUpdates();
-	}
-
-	protected void applyUpdates() throws UpdateException {
-		updateManager.update();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/update-manager/src/main/java/net/sf/taverna/t2/workbench/updatemanager/PluginMenuAction.java
----------------------------------------------------------------------
diff --git a/update-manager/src/main/java/net/sf/taverna/t2/workbench/updatemanager/PluginMenuAction.java b/update-manager/src/main/java/net/sf/taverna/t2/workbench/updatemanager/PluginMenuAction.java
deleted file mode 100644
index e6b4695..0000000
--- a/update-manager/src/main/java/net/sf/taverna/t2/workbench/updatemanager/PluginMenuAction.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package net.sf.taverna.t2.workbench.updatemanager;
-
-import static java.awt.event.KeyEvent.VK_F12;
-import static javax.swing.KeyStroke.getKeyStroke;
-
-import java.awt.Component;
-import java.awt.event.ActionEvent;
-import java.net.URI;
-
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
-
-public class PluginMenuAction extends AbstractMenuAction {
-	private static final String UPDATES_AND_PLUGINS = "Updates and plugins";
-
-	@SuppressWarnings("serial")
-	protected class SoftwareUpdates extends AbstractAction {
-		public SoftwareUpdates() {
-			super(UPDATES_AND_PLUGINS, null/*UpdatesAvailableIcon.updateRecommendedIcon*/);
-			putValue(ACCELERATOR_KEY, getKeyStroke(VK_F12, 0));
-		}
-
-		@Override
-		public void actionPerformed(ActionEvent e) {
-			@SuppressWarnings("unused")
-			Component parent = null;
-			if (e.getSource() instanceof Component) {
-				parent = (Component) e.getSource();
-			}
-			//FIXME this does nothing!
-			//final PluginManagerFrame pluginManagerUI = new PluginManagerFrame(
-			//		PluginManager.getInstance());
-			//if (parent != null) {
-			//	pluginManagerUI.setLocationRelativeTo(parent);
-			//}
-			//pluginManagerUI.setVisible(true);
-		}
-	}
-
-	public PluginMenuAction() {
-		super(URI.create("http://taverna.sf.net/2008/t2workbench/menu#advanced"),
-				100);
-	}
-
-	@Override
-	protected Action createAction() {
-		//return new SoftwareUpdates();
-		return null;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/update-manager/src/main/java/net/sf/taverna/t2/workbench/updatemanager/UpdatesAvailableMenuAction.java
----------------------------------------------------------------------
diff --git a/update-manager/src/main/java/net/sf/taverna/t2/workbench/updatemanager/UpdatesAvailableMenuAction.java b/update-manager/src/main/java/net/sf/taverna/t2/workbench/updatemanager/UpdatesAvailableMenuAction.java
deleted file mode 100644
index e2611be..0000000
--- a/update-manager/src/main/java/net/sf/taverna/t2/workbench/updatemanager/UpdatesAvailableMenuAction.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package net.sf.taverna.t2.workbench.updatemanager;
-
-import static net.sf.taverna.t2.workbench.updatemanager.UpdatesToolbarSection.UPDATES_SECTION;
-
-import java.awt.Component;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuCustom;
-
-public class UpdatesAvailableMenuAction extends AbstractMenuCustom {
-	public UpdatesAvailableMenuAction() {
-		super(UPDATES_SECTION, 10);
-	}
-
-	@Override
-	protected Component createCustomComponent() {
-		//return new UpdatesAvailableIcon();
-		return null;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/update-manager/src/main/java/net/sf/taverna/t2/workbench/updatemanager/UpdatesToolbarSection.java
----------------------------------------------------------------------
diff --git a/update-manager/src/main/java/net/sf/taverna/t2/workbench/updatemanager/UpdatesToolbarSection.java b/update-manager/src/main/java/net/sf/taverna/t2/workbench/updatemanager/UpdatesToolbarSection.java
deleted file mode 100644
index b16d614..0000000
--- a/update-manager/src/main/java/net/sf/taverna/t2/workbench/updatemanager/UpdatesToolbarSection.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package net.sf.taverna.t2.workbench.updatemanager;
-
-import static net.sf.taverna.t2.ui.menu.DefaultToolBar.DEFAULT_TOOL_BAR;
-
-import java.net.URI;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuSection;
-
-public class UpdatesToolbarSection extends AbstractMenuSection {
-	public static final URI UPDATES_SECTION = URI
-			.create("http://taverna.sf.net/2008/t2workbench/toolbar#updatesSection");
-
-	public UpdatesToolbarSection() {
-		super(DEFAULT_TOOL_BAR, 10000, UPDATES_SECTION);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/update-manager/src/main/resources/META-INF/spring/update-manager-context-osgi.xml
----------------------------------------------------------------------
diff --git a/update-manager/src/main/resources/META-INF/spring/update-manager-context-osgi.xml b/update-manager/src/main/resources/META-INF/spring/update-manager-context-osgi.xml
deleted file mode 100644
index ea637dd..0000000
--- a/update-manager/src/main/resources/META-INF/spring/update-manager-context-osgi.xml
+++ /dev/null
@@ -1,13 +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="UpdateMenuAction" auto-export="interfaces" />
-
-	<reference id="updateManager" interface="uk.org.taverna.commons.update.UpdateManager" />
-
-</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/update-manager/src/main/resources/META-INF/spring/update-manager-context.xml
----------------------------------------------------------------------
diff --git a/update-manager/src/main/resources/META-INF/spring/update-manager-context.xml b/update-manager/src/main/resources/META-INF/spring/update-manager-context.xml
deleted file mode 100644
index c3adf1f..0000000
--- a/update-manager/src/main/resources/META-INF/spring/update-manager-context.xml
+++ /dev/null
@@ -1,12 +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="UpdateMenuAction"
-		class="net.sf.taverna.t2.workbench.update.impl.menu.UpdateMenuAction">
-		<property name="updateManager" ref="updateManager" />
-	</bean>
-
-</beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/workbench-impl/pom.xml
----------------------------------------------------------------------
diff --git a/workbench-impl/pom.xml b/workbench-impl/pom.xml
deleted file mode 100644
index 5b52d3a..0000000
--- a/workbench-impl/pom.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>net.sf.taverna.t2</groupId>
-		<artifactId>ui-impl</artifactId>
-		<version>2.0-SNAPSHOT</version>
-	</parent>
-	<groupId>net.sf.taverna.t2.ui-impl</groupId>
-	<artifactId>workbench-impl</artifactId>
-	<packaging>bundle</packaging>
-	<name>Workbench UI implementation</name>
-	<description>The main workbench ui</description>
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-bundle-plugin</artifactId>
-				<configuration>
-					<instructions>
-						<Embed-Dependency>osxapplication</Embed-Dependency>
-						<Import-Package>com.apple.eawt;resolution:=optional,*</Import-Package>
-					</instructions>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-	<dependencies>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>workbench-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>edits-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>configuration-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>file-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>helper-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>menu-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>selection-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.lang</groupId>
-			<artifactId>observer</artifactId>
-			<version>${t2.lang.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.lang</groupId>
-			<artifactId>ui</artifactId>
-			<version>${t2.lang.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>uk.org.taverna.commons</groupId>
-			<artifactId>taverna-plugin-api</artifactId>
-			<version>${taverna.commons.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>uk.org.taverna.configuration</groupId>
-			<artifactId>taverna-configuration-api</artifactId>
-			<version>${taverna.configuration.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>uk.org.taverna.configuration</groupId>
-			<artifactId>taverna-app-configuration-api</artifactId>
-			<version>${taverna.configuration.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>uk.org.taverna.scufl2</groupId>
-			<artifactId>scufl2-api</artifactId>
-			<version>${scufl2.version}</version>
-		</dependency>
-
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.simplericity.macify</groupId>
-			<artifactId>macify</artifactId>
-			<version>1.6</version>
-		</dependency>
-	</dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/DataflowEditsListener.java
----------------------------------------------------------------------
diff --git a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/DataflowEditsListener.java b/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/DataflowEditsListener.java
deleted file mode 100644
index 4c493d1..0000000
--- a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/DataflowEditsListener.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package net.sf.taverna.t2.workbench.ui.impl;
-
-import static uk.org.taverna.scufl2.api.container.WorkflowBundle.generateIdentifier;
-
-import java.net.URI;
-import java.util.HashMap;
-import java.util.Map;
-
-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.AbstractDataflowEditEvent;
-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.UpdateDataflowInternalIdentifierEdit;
-
-import org.apache.log4j.Logger;
-
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-/**
- * Listens out for any edits on a dataflow and changes its internal id (or back
- * to the old one in the case of redo/undo). Is first created when the workbench
- * is initialised.
- * 
- * @author Ian Dunlop
- */
-public class DataflowEditsListener implements Observer<EditManagerEvent> {
-	private static Logger logger = Logger
-			.getLogger(DataflowEditsListener.class);
-
-	private Map<Edit<?>, URI> dataflowEditMap;
-
-	public DataflowEditsListener() {
-		super();
-		dataflowEditMap = new HashMap<>();
-	}
-
-	/**
-	 * Receives {@link EditManagerEvent}s from the {@link EditManager} and
-	 * changes the id of the {@link Dataflow} to a new one or back to its old
-	 * one depending on whether it is a do/undo/redo event. Stores the actual
-	 * edit and the pre-edit dataflow id in a Map and changes the id when it
-	 * gets further actions against this same edit
-	 */
-	@Override
-	public void notify(Observable<EditManagerEvent> observable,
-			EditManagerEvent event) throws Exception {
-		Edit<?> edit = event.getEdit();
-		WorkflowBundle dataFlow = ((AbstractDataflowEditEvent) event)
-				.getDataFlow();
-
-		if (event instanceof DataflowEditEvent) {
-			/*
-			 * the dataflow has been edited in some way so change its internal
-			 * id and store the old one against the edit that is changing
-			 * 'something'
-			 */
-			URI internalIdentifier = dataFlow.getGlobalBaseURI();
-			dataflowEditMap.put(edit, internalIdentifier);
-			URI newIdentifier = generateIdentifier();
-			new UpdateDataflowInternalIdentifierEdit(dataFlow, newIdentifier)
-					.doEdit();
-			logger.debug("Workflow edit, id changed from: "
-					+ internalIdentifier + " to " + newIdentifier);
-		} else if (event instanceof DataFlowRedoEvent) {
-			/*
-			 * change the id back to the old one and store the new one in case
-			 * we want to change it back
-			 */
-			URI newId = dataFlow.getGlobalBaseURI();
-			URI oldId = dataflowEditMap.get(edit);
-			dataflowEditMap.put(edit, newId);
-			new UpdateDataflowInternalIdentifierEdit(dataFlow, oldId).doEdit();
-			logger.debug("Workflow edit, id changed from: " + newId + " to "
-					+ oldId);
-		} else if (event instanceof DataFlowUndoEvent) {
-			/*
-			 * change the id back to the old one and store the new one in case
-			 * we want to change it back
-			 */
-			URI newId = dataFlow.getGlobalBaseURI();
-			URI oldId = dataflowEditMap.get(edit);
-			dataflowEditMap.put(edit, newId);
-			new UpdateDataflowInternalIdentifierEdit(dataFlow, oldId).doEdit();
-			logger.debug("Workflow edit, id changed from: " + newId + " to "
-					+ oldId);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/LoggerStream.java
----------------------------------------------------------------------
diff --git a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/LoggerStream.java b/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/LoggerStream.java
deleted file mode 100644
index fe13d4d..0000000
--- a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/LoggerStream.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/***************************************
- *                                     *
- *  JBoss: The OpenSource J2EE WebOS   *
- *                                     *
- *  Distributable under LGPL license.  *
- *  See terms of license at gnu.org.   *
- *                                     *
- *  Modified by Stian Soiland-Reyes    *
- *                                     *
- ***************************************/
-package net.sf.taverna.t2.workbench.ui.impl;
-
-import java.io.IOException;
-import java.io.PrintStream;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.Level;
-
-/**
- * A subclass of PrintStream that redirects its output to a log4j Logger.
- *
- * <p>This class is used to map PrintStream/PrintWriter oriented logging onto
- *    the log4j Categories. Examples include capturing System.out/System.err
- *
- * @version <tt>$Revision: 1.1.1.1 $</tt>
- * @author <a href="mailto:Scott.Stark@jboss.org">Scott Stark</a>.
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
- */
-//FIXME Replace this class entirely
-class LoggerStream extends PrintStream {
-	/**
-	 * Default flag to enable/disable tracing println calls. from the system
-	 * property <tt>net.sf.taverna.t2.workbench.ui.impl.LoggerStream.trace</tt>
-	 * or if not set defaults to <tt>false</tt>.
-	 */
-   public static final boolean TRACE =
-		   getBoolean(LoggerStream.class.getName() + ".trace", false);
-
-	/**
-	 * Helper to get boolean value from system property or use default if not
-	 * set.
-	 */
-	private static boolean getBoolean(String name, boolean defaultValue) {
-		String value = System.getProperty(name, null);
-		if (value == null)
-			return defaultValue;
-		return new Boolean(value).booleanValue();
-	}
-
-	private Logger logger;
-	private Level level;
-	private boolean issuedWarning;
-
-	/**
-	 * Redirect logging to the indicated logger using Level.INFO
-	 */
-	public LoggerStream(Logger logger) {
-		this(logger, Level.INFO, System.out);
-	}
-
-	/**
-	 * Redirect logging to the indicated logger using the given level. The ps is
-	 * simply passed to super but is not used.
-	 */
-	public LoggerStream(Logger logger, Level level, PrintStream ps) {
-		super(ps);
-		this.logger = logger;
-		this.level = level;
-	}
-
-	@Override
-	public void println(String msg) {
-		if (msg == null)
-			msg = "null";
-		byte[] bytes = msg.getBytes();
-		write(bytes, 0, bytes.length);
-	}
-
-	@Override
-	public void println(Object msg) {
-		if (msg == null)
-			msg = "null";
-		byte[] bytes = msg.toString().getBytes();
-		write(bytes, 0, bytes.length);
-	}
-
-	public void write(byte b) {
-		byte[] bytes = { b };
-		write(bytes, 0, 1);
-	}
-
-	private ThreadLocal<Boolean> recursiveCheck = new ThreadLocal<>();
-
-	@Override
-	public void write(byte[] b, int off, int len) {
-		Boolean recursed = recursiveCheck.get();
-		if (recursed != null && recursed) {
-			/*
-			 * There is a configuration error that is causing looping. Most
-			 * likely there are two console appenders so just return to prevent
-			 * spinning.
-			 */
-			if (issuedWarning == false) {
-				String msg = "ERROR: invalid log settings detected, console capturing is looping";
-				// out.write(msg.getBytes());
-				new Exception(msg).printStackTrace((PrintStream) out);
-				issuedWarning = true;
-			}
-			try {
-				out.write(b, off, len);
-			} catch (IOException e) {
-			}
-			return;
-		}
-
-		// Remove the end of line chars
-		while (len > 0 && (b[len - 1] == '\n' || b[len - 1] == '\r')
-				&& len > off)
-			len--;
-
-		/*
-		 * HACK, something is logging exceptions line by line (including
-		 * blanks), but I can't seem to find it, so for now just ignore empty
-		 * lines... they aren't very useful.
-		 */
-		if (len != 0) {
-			String msg = new String(b, off, len);
-			recursiveCheck.set(true);
-			if (TRACE)
-				logger.log(level, msg, new Throwable());
-			else
-				logger.log(level, msg);
-			recursiveCheck.set(false);
-		}
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/SetConsoleLoggerStartup.java
----------------------------------------------------------------------
diff --git a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/SetConsoleLoggerStartup.java b/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/SetConsoleLoggerStartup.java
deleted file mode 100644
index a8bdfdd..0000000
--- a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/SetConsoleLoggerStartup.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package net.sf.taverna.t2.workbench.ui.impl;
-
-import static org.apache.log4j.Level.ERROR;
-import static org.apache.log4j.Level.WARN;
-
-import java.io.PrintStream;
-
-import net.sf.taverna.t2.workbench.StartupSPI;
-import net.sf.taverna.t2.workbench.configuration.workbench.WorkbenchConfiguration;
-
-import org.apache.log4j.ConsoleAppender;
-import org.apache.log4j.Logger;
-
-public class SetConsoleLoggerStartup implements StartupSPI {
-	private static final PrintStream originalErr = System.err;
-	private static final PrintStream originalOut = System.out;
-
-	private final WorkbenchConfiguration workbenchConfiguration;
-
-	public SetConsoleLoggerStartup(WorkbenchConfiguration workbenchConfiguration) {
-		this.workbenchConfiguration = workbenchConfiguration;
-	}
-
-	@Override
-	public int positionHint() {
-		/*
-		 * Must be <b>after</b> PrepareLoggerStarup in file-translator --
-		 * otherwise Taverna 1 libraries will cause double logging
-		 */
-		return 10;
-	}
-
-	@Override
-	public boolean startup() {
-		setSystemOutCapture();
-		return true;
-	}
-
-	public void setSystemOutCapture() {
-		if (!workbenchConfiguration.getCaptureConsole()) {
-			System.setOut(originalOut);
-			System.setErr(originalErr);
-			return;
-		}
-		Logger systemOutLogger = Logger.getLogger("System.out");
-		Logger systemErrLogger = Logger.getLogger("System.err");
-
-		try {
-			/*
-			 * This logger stream not loop with log4j > 1.2.13, which has
-			 * getFollow method
-			 */
-			ConsoleAppender.class.getMethod("getFollow");
-			System.setOut(new LoggerStream(systemOutLogger, WARN, originalOut));
-		} catch (SecurityException e) {
-		} catch (NoSuchMethodException e) {
-			System.err.println("Not capturing System.out, use log4j >= 1.2.13");
-		}
-
-		System.setErr(new LoggerStream(systemErrLogger, ERROR, originalErr));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/StoreWindowStateOnShutdown.java
----------------------------------------------------------------------
diff --git a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/StoreWindowStateOnShutdown.java b/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/StoreWindowStateOnShutdown.java
deleted file mode 100644
index 2537f0b..0000000
--- a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/StoreWindowStateOnShutdown.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2008-2010 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.ui.impl;
-
-import org.apache.log4j.Logger;
-
-import net.sf.taverna.t2.workbench.ShutdownSPI;
-import net.sf.taverna.t2.workbench.ui.Workbench;
-
-/**
- * Store Workbench window size and perspectives, so that settings can be used on
- * next startup.
- * 
- * @author Stian Soiland-Reyes
- */
-public class StoreWindowStateOnShutdown implements ShutdownSPI {
-	private static Logger logger = Logger
-			.getLogger(StoreWindowStateOnShutdown.class);
-
-	private Workbench workbench;
-
-	@Override
-	public int positionHint() {
-		return 1000;
-	}
-
-	@Override
-	public boolean shutdown() {
-		try {
-			workbench.storeSizeAndLocationPrefs();
-		} catch (Exception ex) {
-			logger.error("Error saving the Workbench size and position", ex);
-		}
-		return true;
-	}
-
-	public void setWorkbench(Workbench workbench) {
-		this.workbench = workbench;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/72850d5a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/UserRegistrationData.java
----------------------------------------------------------------------
diff --git a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/UserRegistrationData.java b/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/UserRegistrationData.java
deleted file mode 100644
index 3e32f7b..0000000
--- a/workbench-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/UserRegistrationData.java
+++ /dev/null
@@ -1,105 +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.ui.impl;
-
-public class UserRegistrationData {
-	private String tavernaVersion = "";
-	private String firstName = "";
-	private String lastName = "";
-	private String emailAddress = "";
-	private String institutionOrCompanyName = "";
-	private String industry = "";
-	private String field = "";
-	private String purposeOfUsingTaverna = "";
-	private boolean keepMeInformed = false;
-
-	public void setTavernaVersion(String tavernaVersion) {
-		this.tavernaVersion = tavernaVersion;
-	}
-
-	public String getTavernaVersion() {
-		return tavernaVersion;
-	}
-
-	public void setFirstName(String firstName) {
-		this.firstName = firstName;
-	}
-
-	public String getFirstName() {
-		return firstName;
-	}
-
-	public void setLastName(String lastName) {
-		this.lastName = lastName;
-	}
-
-	public String getLastName() {
-		return lastName;
-	}
-
-	public void setEmailAddress(String emailAddress) {
-		this.emailAddress = emailAddress;
-	}
-
-	public String getEmailAddress() {
-		return emailAddress;
-	}
-
-	public void setInstitutionOrCompanyName(String institutionOrCompanyName) {
-		this.institutionOrCompanyName = institutionOrCompanyName;
-	}
-
-	public String getInstitutionOrCompanyName() {
-		return institutionOrCompanyName;
-	}
-
-	public void setIndustry(String industry) {
-		this.industry = industry;
-	}
-
-	public String getIndustry() {
-		return industry;
-	}
-
-	public void setField(String field) {
-		this.field = field;
-	}
-
-	public String getField() {
-		return field;
-	}
-
-	public void setPurposeOfUsingTaverna(String purposeOfUsingTaverna) {
-		this.purposeOfUsingTaverna = purposeOfUsingTaverna;
-	}
-
-	public String getPurposeOfUsingTaverna() {
-		return purposeOfUsingTaverna;
-	}
-
-	public void setKeepMeInformed(boolean keepMeInformed) {
-		this.keepMeInformed = keepMeInformed;
-	}
-
-	public boolean getKeepMeInformed() {
-		return keepMeInformed;
-	}
-}