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:48:54 UTC

[35/50] [abbrv] incubator-taverna-workbench-common-activities git commit: taverna-spreadsheet-import-activity-ui/

taverna-spreadsheet-import-activity-ui/


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/commit/fa8b5b3d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/tree/fa8b5b3d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/diff/fa8b5b3d

Branch: refs/heads/master
Commit: fa8b5b3d5ab9a53aa980ce77a83d2c8879a79d06
Parents: 4091a90
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Mon Feb 9 17:27:31 2015 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Mon Feb 9 17:27:31 2015 +0000

----------------------------------------------------------------------
 .gitignore                                      |   24 -
 .travis.yml                                     |    1 -
 README.md                                       |    5 -
 pom.xml                                         |  107 --
 ...dsheetImportActivityConfigurationAction.java |   72 --
 .../il8n/SpreadsheetImportUIText.java           |   46 -
 .../SpreadsheetImportAddTemplateAction.java     |  110 --
 .../SpreadsheetImportAddTemplateMenuAction.java |  124 --
 .../SpreadsheetImportConfigureMenuAction.java   |   84 --
 .../SpreadsheetImportActivityIcon.java          |   71 --
 .../SpreadsheetImportTemplateService.java       |   95 --
 .../SpreadsheetImportConfigTableModel.java      |  190 ---
 .../views/SpreadsheetImportConfigView.java      | 1082 ------------------
 .../views/SpreadsheetImportContextualView.java  |  121 --
 .../SpreadsheetImportContextualViewFactory.java |   87 --
 ...rvicedescriptions.ServiceDescriptionProvider |    1 -
 .../net.sf.taverna.t2.ui.menu.MenuComponent     |    3 -
 ...a.t2.workbench.activityicons.ActivityIconSPI |    1 -
 ...ntextualviews.activity.ContextualViewFactory |    1 -
 ...eadsheet-import-activity-ui-context-osgi.xml |   28 -
 .../spreadsheet-import-activity-ui-context.xml  |   45 -
 .../spreadsheet/iln8/ui-text.properties         |   43 -
 src/main/resources/spreadsheet-import.png       |  Bin 4610 -> 0 bytes
 taverna-spreadsheet-import-activity-ui/pom.xml  |  107 ++
 ...dsheetImportActivityConfigurationAction.java |   72 ++
 .../il8n/SpreadsheetImportUIText.java           |   46 +
 .../SpreadsheetImportAddTemplateAction.java     |  110 ++
 .../SpreadsheetImportAddTemplateMenuAction.java |  124 ++
 .../SpreadsheetImportConfigureMenuAction.java   |   84 ++
 .../SpreadsheetImportActivityIcon.java          |   71 ++
 .../SpreadsheetImportTemplateService.java       |   95 ++
 .../SpreadsheetImportConfigTableModel.java      |  190 +++
 .../views/SpreadsheetImportConfigView.java      | 1082 ++++++++++++++++++
 .../views/SpreadsheetImportContextualView.java  |  121 ++
 .../SpreadsheetImportContextualViewFactory.java |   87 ++
 ...rvicedescriptions.ServiceDescriptionProvider |    1 +
 .../net.sf.taverna.t2.ui.menu.MenuComponent     |    3 +
 ...a.t2.workbench.activityicons.ActivityIconSPI |    1 +
 ...ntextualviews.activity.ContextualViewFactory |    1 +
 ...eadsheet-import-activity-ui-context-osgi.xml |   28 +
 .../spreadsheet-import-activity-ui-context.xml  |   45 +
 .../spreadsheet/iln8/ui-text.properties         |   43 +
 .../src/main/resources/spreadsheet-import.png   |  Bin 0 -> 4610 bytes
 43 files changed, 2311 insertions(+), 2341 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index ebe0e5b..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,24 +0,0 @@
-# ignore project files #
-.classpath
-.project
-.settings/
-catalog-v001.xml
-
-# ignore target files #
-target/
-bin/
-build/
-dist/
-apidoc/
-*.swp
-
-# ignore svn files if there
-.svn
-
-# ignore log files #
-*.log
-/logs/*
-*/logs/*
-
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index dff5f3a..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1 +0,0 @@
-language: java

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
deleted file mode 100644
index f856dbb..0000000
--- a/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-Taverna Workflow system Spreadsheet Import Activity: data model and execution implementation
-
-Extends https://github.com/taverna/taverna-spreadsheet-import-activity
-
-This code was previously hosted at http://taverna.googlecode.com/svn/taverna/ui/net.sf.taverna.t2.ui-activities/
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 1672ebf..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<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</groupId>
-		<artifactId>taverna-parent</artifactId>
-		<version>3.0.1-SNAPSHOT</version>
-	</parent>
-	<groupId>net.sf.taverna.t2.ui-activities</groupId>
-	<artifactId>spreadsheet-import-activity-ui</artifactId>
-        <version>2.0-SNAPSHOT</version>
-	<packaging>bundle</packaging>
-	<name>Taverna 2 Spreadsheet Import Activity UI</name>
-	<dependencies>
-		<dependency>
-			<groupId>net.sf.taverna.t2.activities</groupId>
-			<artifactId>spreadsheet-import-activity</artifactId>
-			<version>${t2.activities.version}</version>
-		</dependency>
-		<!-- taverna lang -->
-		<dependency>
-			<groupId>net.sf.taverna.t2.lang</groupId>
-			<artifactId>ui</artifactId>
-			<version>${t2.lang.version}</version>
-		</dependency>
-		<!-- taverna ui-api -->
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>activity-icons-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>activity-palette-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>contextual-views-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>menu-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>activity-tools</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<!-- taverna ui-components -->
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-components</groupId>
-			<artifactId>workflow-view</artifactId>
-			<version>${t2.ui.components.version}
-			</version>
-		</dependency>
-		<dependency>
-			<groupId>uk.org.taverna.scufl2</groupId>
-			<artifactId>scufl2-api</artifactId>
-			<version>${scufl2.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>com.fasterxml.jackson.core</groupId>
-			<artifactId>jackson-databind</artifactId>
-			<version>${jackson-databind.version}</version>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.commons</groupId>
-			<artifactId>com.springsource.org.apache.commons.lang</artifactId>
-			<version>${commons.lang.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.log4j</groupId>
-			<artifactId>com.springsource.org.apache.log4j</artifactId>
-			<version>${log4j.version}</version>
-		</dependency>
-	</dependencies>
-	<repositories>
-		<repository>
-			<releases />
-			<snapshots>
-				<enabled>false</enabled>
-			</snapshots>
-			<id>mygrid-repository</id>
-			<name>myGrid Repository</name>
-			<url>http://www.mygrid.org.uk/maven/repository
-			</url>
-		</repository>
-		<repository>
-			<releases>
-				<enabled>false</enabled>
-			</releases>
-			<snapshots />
-			<id>mygrid-snapshot-repository</id>
-			<name>myGrid Snapshot Repository</name>
-			<url>http://www.mygrid.org.uk/maven/snapshot-repository</url>
-		</repository>
-	</repositories>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/src/main/java/net/sf/taverna/t2/activities/spreadsheet/actions/SpreadsheetImportActivityConfigurationAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/actions/SpreadsheetImportActivityConfigurationAction.java b/src/main/java/net/sf/taverna/t2/activities/spreadsheet/actions/SpreadsheetImportActivityConfigurationAction.java
deleted file mode 100644
index 0a70680..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/actions/SpreadsheetImportActivityConfigurationAction.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 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.activities.spreadsheet.actions;
-
-import java.awt.Frame;
-import java.awt.event.ActionEvent;
-
-import net.sf.taverna.t2.activities.spreadsheet.views.SpreadsheetImportConfigView;
-import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry;
-import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.ui.actions.activity.ActivityConfigurationAction;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationDialog;
-import uk.org.taverna.commons.services.ServiceRegistry;
-import uk.org.taverna.scufl2.api.activity.Activity;
-
-/**
- * The configuration action for a SpreadsheetImport activity.
- *
- * @author David Withers
- */
-@SuppressWarnings("serial")
-public class SpreadsheetImportActivityConfigurationAction extends ActivityConfigurationAction {
-
-	private static final String CONFIGURE = "Configure";
-
-	private final EditManager editManager;
-
-	private final FileManager fileManager;
-
-	private final ServiceRegistry serviceRegistry;
-
-	public SpreadsheetImportActivityConfigurationAction(Activity activity,
-			Frame owner, EditManager editManager, FileManager fileManager,
-			ActivityIconManager activityIconManager,
-			ServiceDescriptionRegistry serviceDescriptionRegistry, ServiceRegistry serviceRegistry) {
-		super(activity, activityIconManager, serviceDescriptionRegistry);
-		this.editManager = editManager;
-		this.fileManager = fileManager;
-		this.serviceRegistry = serviceRegistry;
-		putValue(NAME, CONFIGURE);
-	}
-
-	public void actionPerformed(ActionEvent e) {
-		final SpreadsheetImportConfigView spreadsheetConfigView = new SpreadsheetImportConfigView(
-				getActivity(), serviceRegistry);
-		final ActivityConfigurationDialog dialog = new ActivityConfigurationDialog(getActivity(),
-				spreadsheetConfigView, editManager);
-
-		ActivityConfigurationAction.setDialog(getActivity(), dialog, fileManager);
-
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/src/main/java/net/sf/taverna/t2/activities/spreadsheet/il8n/SpreadsheetImportUIText.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/il8n/SpreadsheetImportUIText.java b/src/main/java/net/sf/taverna/t2/activities/spreadsheet/il8n/SpreadsheetImportUIText.java
deleted file mode 100644
index 82f8436..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/il8n/SpreadsheetImportUIText.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 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.activities.spreadsheet.il8n;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Access to a resource bundle containing UI text.
- *
- * @author David Withers
- */
-public class SpreadsheetImportUIText {
-	private static final String BUNDLE_NAME = "net.sf.taverna.t2.activities.spreadsheet.iln8.ui-text";
-
-	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
-
-	private SpreadsheetImportUIText() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return RESOURCE_BUNDLE.getString(key);
-		} catch (MissingResourceException e) {
-			return '!' + key + '!';
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/src/main/java/net/sf/taverna/t2/activities/spreadsheet/menu/SpreadsheetImportAddTemplateAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/menu/SpreadsheetImportAddTemplateAction.java b/src/main/java/net/sf/taverna/t2/activities/spreadsheet/menu/SpreadsheetImportAddTemplateAction.java
deleted file mode 100644
index 3073acb..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/menu/SpreadsheetImportAddTemplateAction.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 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.activities.spreadsheet.menu;
-
-import java.awt.event.ActionEvent;
-import java.net.URI;
-
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-
-import net.sf.taverna.t2.activities.spreadsheet.il8n.SpreadsheetImportUIText;
-import net.sf.taverna.t2.activities.spreadsheet.servicedescriptions.SpreadsheetImportTemplateService;
-import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry;
-import net.sf.taverna.t2.ui.menu.AbstractContextualMenuAction;
-import net.sf.taverna.t2.ui.menu.MenuManager;
-import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.selection.SelectionManager;
-import net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView;
-import uk.org.taverna.commons.services.ServiceRegistry;
-import uk.org.taverna.scufl2.api.core.Workflow;
-
-/**
- * An action to add a spreadsheet import activity + a wrapping processor to the workflow.
- *
- * @author David Withers
- */
-@SuppressWarnings("serial")
-public class SpreadsheetImportAddTemplateAction extends AbstractContextualMenuAction {
-
-	private static final URI insertSection = URI
-			.create("http://taverna.sf.net/2009/contextMenu/insert");
-
-	private EditManager editManager;
-	private MenuManager menuManager;
-	private SelectionManager selectionManager;
-	private ActivityIconManager activityIconManager;
-	private ServiceDescriptionRegistry serviceDescriptionRegistry;
-	private ServiceRegistry serviceRegistry;
-
-	public SpreadsheetImportAddTemplateAction() {
-		super(insertSection, 700);
-	}
-
-	@Override
-	public boolean isEnabled() {
-		return super.isEnabled() && getContextualSelection().getSelection() instanceof Workflow;
-	}
-
-	@Override
-	protected Action createAction() {
-
-		AbstractAction action = new AbstractAction(
-				SpreadsheetImportUIText.getString("SpreadsheetImportAddTemplateAction.addMenu"),
-				activityIconManager.iconForActivity(SpreadsheetImportTemplateService.ACTIVITY_TYPE)) {
-
-			public void actionPerformed(ActionEvent e) {
-				WorkflowView.importServiceDescription(serviceDescriptionRegistry
-						.getServiceDescription(SpreadsheetImportTemplateService.ACTIVITY_TYPE), false,
-						editManager, menuManager, selectionManager, serviceRegistry);
-			}
-
-		};
-
-		return action;
-	}
-
-	public void setEditManager(EditManager editManager) {
-		this.editManager = editManager;
-	}
-
-	public void setMenuManager(MenuManager menuManager) {
-		this.menuManager = menuManager;
-	}
-
-	public void setSelectionManager(SelectionManager selectionManager) {
-		this.selectionManager = selectionManager;
-	}
-
-	public void setActivityIconManager(ActivityIconManager activityIconManager) {
-		this.activityIconManager = activityIconManager;
-	}
-
-	public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) {
-		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
-	}
-
-	public void setServiceRegistry(ServiceRegistry serviceRegistry) {
-		this.serviceRegistry = serviceRegistry;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/src/main/java/net/sf/taverna/t2/activities/spreadsheet/menu/SpreadsheetImportAddTemplateMenuAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/menu/SpreadsheetImportAddTemplateMenuAction.java b/src/main/java/net/sf/taverna/t2/activities/spreadsheet/menu/SpreadsheetImportAddTemplateMenuAction.java
deleted file mode 100644
index 048073a..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/menu/SpreadsheetImportAddTemplateMenuAction.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007-2009 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.activities.spreadsheet.menu;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.InputEvent;
-import java.awt.event.KeyEvent;
-import java.net.URI;
-
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.KeyStroke;
-
-import net.sf.taverna.t2.activities.spreadsheet.il8n.SpreadsheetImportUIText;
-import net.sf.taverna.t2.activities.spreadsheet.servicedescriptions.SpreadsheetImportTemplateService;
-import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry;
-import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
-import net.sf.taverna.t2.ui.menu.DesignOnlyAction;
-import net.sf.taverna.t2.ui.menu.MenuManager;
-import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.selection.SelectionManager;
-import net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView;
-import uk.org.taverna.commons.services.ServiceRegistry;
-
-/**
- * An action to add a spreadsheet import activity + a wrapping processor to the workflow.
- *
- * @author Alan R Williams
- */
-@SuppressWarnings("serial")
-public class SpreadsheetImportAddTemplateMenuAction extends AbstractMenuAction {
-
-	private static final URI ADD_SPREADSHEET_IMPORT_URI = URI
-			.create("http://taverna.sf.net/2008/t2workbench/menu#graphMenuAddSpreadsheetImport");
-
-	private static final URI INSERT = URI
-			.create("http://taverna.sf.net/2008/t2workbench/menu#insert");
-
-	private static String ADD_SPREADSHEET_IMPORT = SpreadsheetImportUIText
-			.getString("SpreadsheetImportAddTemplateAction.addMenu");
-
-	private EditManager editManager;
-	private MenuManager menuManager;
-	private SelectionManager selectionManager;
-	private ActivityIconManager activityIconManager;
-	private ServiceDescriptionRegistry serviceDescriptionRegistry;
-	private ServiceRegistry serviceRegistry;
-
-	public SpreadsheetImportAddTemplateMenuAction() {
-		super(INSERT, 700, ADD_SPREADSHEET_IMPORT_URI);
-	}
-
-	@Override
-	protected Action createAction() {
-		return new AddSpreadsheetImportMenuAction();
-	}
-
-	protected class AddSpreadsheetImportMenuAction extends AbstractAction implements
-			DesignOnlyAction {
-		AddSpreadsheetImportMenuAction() {
-			super();
-			putValue(SMALL_ICON,
-					activityIconManager
-							.iconForActivity(SpreadsheetImportTemplateService.ACTIVITY_TYPE));
-			putValue(NAME, ADD_SPREADSHEET_IMPORT);
-			putValue(SHORT_DESCRIPTION, ADD_SPREADSHEET_IMPORT);
-			putValue(
-					Action.ACCELERATOR_KEY,
-					KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.SHIFT_DOWN_MASK
-							| InputEvent.ALT_DOWN_MASK));
-
-		}
-
-		public void actionPerformed(ActionEvent e) {
-			WorkflowView.importServiceDescription(serviceDescriptionRegistry
-					.getServiceDescription(SpreadsheetImportTemplateService.ACTIVITY_TYPE), false,
-					editManager, menuManager, selectionManager, serviceRegistry);
-		}
-	}
-
-	public void setEditManager(EditManager editManager) {
-		this.editManager = editManager;
-	}
-
-	public void setMenuManager(MenuManager menuManager) {
-		this.menuManager = menuManager;
-	}
-
-	public void setSelectionManager(SelectionManager selectionManager) {
-		this.selectionManager = selectionManager;
-	}
-
-	public void setActivityIconManager(ActivityIconManager activityIconManager) {
-		this.activityIconManager = activityIconManager;
-	}
-
-	public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) {
-		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
-	}
-
-	public void setServiceRegistry(ServiceRegistry serviceRegistry) {
-		this.serviceRegistry = serviceRegistry;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/src/main/java/net/sf/taverna/t2/activities/spreadsheet/menu/SpreadsheetImportConfigureMenuAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/menu/SpreadsheetImportConfigureMenuAction.java b/src/main/java/net/sf/taverna/t2/activities/spreadsheet/menu/SpreadsheetImportConfigureMenuAction.java
deleted file mode 100644
index 7d1fa0a..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/menu/SpreadsheetImportConfigureMenuAction.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 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.activities.spreadsheet.menu;
-
-import javax.swing.Action;
-
-import uk.org.taverna.commons.services.ServiceRegistry;
-
-import net.sf.taverna.t2.activities.spreadsheet.actions.SpreadsheetImportActivityConfigurationAction;
-import net.sf.taverna.t2.activities.spreadsheet.il8n.SpreadsheetImportUIText;
-import net.sf.taverna.t2.activities.spreadsheet.servicedescriptions.SpreadsheetImportTemplateService;
-import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry;
-import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager;
-import net.sf.taverna.t2.workbench.activitytools.AbstractConfigureActivityMenuAction;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.file.FileManager;
-
-/**
- * Menu action for SpreadsheetImport activity configuration.
- *
- * @author David Withers
- */
-public class SpreadsheetImportConfigureMenuAction extends AbstractConfigureActivityMenuAction {
-
-	private EditManager editManager;
-	private FileManager fileManager;
-	private ActivityIconManager activityIconManager;
-	private ServiceDescriptionRegistry serviceDescriptionRegistry;
-	private ServiceRegistry serviceRegistry;
-
-	public SpreadsheetImportConfigureMenuAction() {
-		super(SpreadsheetImportTemplateService.ACTIVITY_TYPE);
-	}
-
-	@Override
-	protected Action createAction() {
-		Action result = new SpreadsheetImportActivityConfigurationAction(findActivity(),
-				getParentFrame(), editManager, fileManager, activityIconManager,
-				serviceDescriptionRegistry, serviceRegistry);
-		result.putValue(Action.NAME, SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigureMenuAction.configureMenu"));
-		addMenuDots(result);
-		return result;
-	}
-
-	public void setEditManager(EditManager editManager) {
-		this.editManager = editManager;
-	}
-
-	public void setFileManager(FileManager fileManager) {
-		this.fileManager = fileManager;
-	}
-
-	public void setActivityIconManager(ActivityIconManager activityIconManager) {
-		this.activityIconManager = activityIconManager;
-	}
-
-	public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) {
-		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
-	}
-
-	public void setServiceRegistry(ServiceRegistry serviceRegistry) {
-		this.serviceRegistry = serviceRegistry;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/src/main/java/net/sf/taverna/t2/activities/spreadsheet/servicedescriptions/SpreadsheetImportActivityIcon.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/servicedescriptions/SpreadsheetImportActivityIcon.java b/src/main/java/net/sf/taverna/t2/activities/spreadsheet/servicedescriptions/SpreadsheetImportActivityIcon.java
deleted file mode 100644
index 1987364..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/servicedescriptions/SpreadsheetImportActivityIcon.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 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.activities.spreadsheet.servicedescriptions;
-
-import java.awt.Color;
-import java.net.URI;
-
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-import net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI;
-import net.sf.taverna.t2.workbench.configuration.colour.ColourManager;
-
-/**
- * UI icon for the SpreadsheetImport Activity.
- *
- * @author David Withers
- */
-public class SpreadsheetImportActivityIcon implements ActivityIconSPI {
-
-	public static final String SPREADSHEET_COLOUR_HTML = "#40e0d0";
-	public static final Color SPREADSHEET_COLOUR = Color.decode(SPREADSHEET_COLOUR_HTML);
-
-	private static Icon icon = null;
-
-	@Override
-	public int canProvideIconScore(URI activityType) {
-		if (SpreadsheetImportTemplateService.ACTIVITY_TYPE.equals(activityType))
-			return DEFAULT_ICON + 1;
-		else
-			return NO_ICON;
-	}
-
-	@Override
-	public Icon getIcon(URI activityType) {
-		return getSpreadsheetImportIcon();
-	}
-
-	public static Icon getSpreadsheetImportIcon() {
-		if (icon == null) {
-			icon = new ImageIcon(
-					SpreadsheetImportActivityIcon.class.getResource("/spreadsheet-import.png"));
-		}
-		return icon;
-	}
-
-	public void setColourManager(ColourManager colourManager) {
-		colourManager.setPreferredColour(
-				"http://ns.taverna.org.uk/2010/activity/spreadsheet-import",
-				SPREADSHEET_COLOUR);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/src/main/java/net/sf/taverna/t2/activities/spreadsheet/servicedescriptions/SpreadsheetImportTemplateService.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/servicedescriptions/SpreadsheetImportTemplateService.java b/src/main/java/net/sf/taverna/t2/activities/spreadsheet/servicedescriptions/SpreadsheetImportTemplateService.java
deleted file mode 100644
index 8057f2d..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/servicedescriptions/SpreadsheetImportTemplateService.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 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.activities.spreadsheet.servicedescriptions;
-
-import java.net.URI;
-
-import javax.swing.Icon;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-import net.sf.taverna.t2.activities.spreadsheet.il8n.SpreadsheetImportUIText;
-import net.sf.taverna.t2.servicedescriptions.AbstractTemplateService;
-import net.sf.taverna.t2.servicedescriptions.ServiceDescription;
-import uk.org.taverna.scufl2.api.configurations.Configuration;
-
-/**
- * Definition of the SpreadsheetImport spreadsheet import template service.
- *
- * @author David Withers
- */
-public class SpreadsheetImportTemplateService extends AbstractTemplateService {
-
-	public static final URI ACTIVITY_TYPE = URI
-			.create("http://ns.taverna.org.uk/2010/activity/spreadsheet-import");
-
-	private static final String SERVICE_NAME = SpreadsheetImportUIText
-			.getString("SpreadsheetImportTemplateService.serviceName");
-
-	private static final URI providerId = URI
-			.create("http://taverna.sf.net/2010/service-provider/spreadsheet");
-
-	public String getName() {
-		return SERVICE_NAME;
-	}
-
-	@Override
-	public URI getActivityType() {
-		return ACTIVITY_TYPE;
-	}
-
-	@Override
-	public Configuration getActivityConfiguration() {
-		Configuration configuration = new Configuration();
-		configuration.setType(ACTIVITY_TYPE.resolve("#Config"));
-		ObjectNode json = (ObjectNode) configuration.getJson();
-		json.put("columnRange", json.objectNode().put("start", 0).put("end", 1));
-		json.put("rowRange", json.objectNode().put("start", 0).put("end", -1));
-		json.put("emptyCellValue", "");
-		json.put("allRows", true);
-		json.put("excludeFirstRow", false);
-		json.put("ignoreBlankRows", false);
-		json.put("emptyCellPolicy", "EMPTY_STRING");
-		json.put("outputFormat", "PORT_PER_COLUMN");
-		json.put("csvDelimiter", ",");
-		return configuration;
-	}
-
-	@Override
-	public Icon getIcon() {
-		return SpreadsheetImportActivityIcon.getSpreadsheetImportIcon();
-	}
-
-	@Override
-	public String getDescription() {
-		return SpreadsheetImportUIText
-				.getString("SpreadsheetImportTemplateService.serviceDescription");
-	}
-
-	public static ServiceDescription getServiceDescription() {
-		SpreadsheetImportTemplateService bts = new SpreadsheetImportTemplateService();
-		return bts.templateService;
-	}
-
-	public String getId() {
-		return providerId.toString();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/src/main/java/net/sf/taverna/t2/activities/spreadsheet/views/SpreadsheetImportConfigTableModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/views/SpreadsheetImportConfigTableModel.java b/src/main/java/net/sf/taverna/t2/activities/spreadsheet/views/SpreadsheetImportConfigTableModel.java
deleted file mode 100644
index 0409b8e..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/views/SpreadsheetImportConfigTableModel.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 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.activities.spreadsheet.views;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.swing.table.AbstractTableModel;
-
-import net.sf.taverna.t2.activities.spreadsheet.SpreadsheetUtils;
-import net.sf.taverna.t2.activities.spreadsheet.il8n.SpreadsheetImportUIText;
-
-/**
- * TableModel for mapping column labels to port names.
- * <p>
- * The default mapping is for the port name to be the same as the column label. The
- * columnToPortMapping only contains entries for port names that are not the same as the column
- * label.
- *
- * @author David Withers
- */
-@SuppressWarnings("serial")
-public class SpreadsheetImportConfigTableModel extends AbstractTableModel {
-
-	private Map<String, String> columnToPortMapping;
-
-	private int fromColumn, toColumn;
-
-	/**
-	 * Constructs a TableModel that maps column labels to port names for the specified range of
-	 * columns.
-	 *
-	 * @param fromColumn
-	 *            the start of the column range
-	 * @param toColumn
-	 *            the end of the column range
-	 * @param columnToPortMapping
-	 *            existing column to port mappings (can be null)
-	 */
-	public SpreadsheetImportConfigTableModel(String fromColumn, String toColumn,
-			Map<String, String> columnToPortMapping) {
-		if (columnToPortMapping == null) {
-			this.columnToPortMapping = new HashMap<String, String>();
-		} else {
-			this.columnToPortMapping = new HashMap<String, String>(columnToPortMapping);
-		}
-		this.fromColumn = SpreadsheetUtils.getColumnIndex(fromColumn);
-		this.toColumn = SpreadsheetUtils.getColumnIndex(toColumn);
-	}
-
-	/**
-	 * Sets the start of the column range.
-	 *
-	 * @param fromColumn
-	 *            the start of the column range
-	 */
-	public void setFromColumn(int fromColumn) {
-		if (this.fromColumn != fromColumn) {
-			this.fromColumn = fromColumn;
-			fireTableStructureChanged();
-		}
-	}
-
-	/**
-	 * Sets the end of the column range.
-	 *
-	 * @param toColumn
-	 *            the end of the column range
-	 */
-	public void setToColumn(int toColumn) {
-		if (this.toColumn != toColumn) {
-			this.toColumn = toColumn;
-			fireTableStructureChanged();
-		}
-	}
-
-	/**
-	 * Returns the port name for the given column label.
-	 * <p>
-	 * If the columnLabel is the columnToPortMapping the value is returned; otherwise the
-	 * columnLabel is returned.
-	 *
-	 * @param columnLabel
-	 *            the column to find the port name for
-	 * @return the port name for the given column label
-	 */
-	public String getPortName(String columnLabel) {
-		String portName;
-		if (columnToPortMapping.containsKey(columnLabel)) {
-			portName = columnToPortMapping.get(columnLabel);
-		} else {
-			portName = columnLabel;
-		}
-		return portName;
-	}
-
-	/**
-	 * Sets the port name for the column label.
-	 * <p>
-	 * If the port name is not the same as the column label the port name is added the
-	 * columnToPortMapping.
-	 *
-	 * @param columnLabel
-	 * @param portName
-	 */
-	public void setPortName(String columnLabel, String portName) {
-		if (columnLabel.equals(portName)) {
-			columnToPortMapping.remove(columnLabel);
-		} else {
-			columnToPortMapping.put(columnLabel, portName);
-		}
-	}
-
-	/**
-	 * Returns the map of column labels to port names.
-	 * <p>
-	 * The map only contains entries for port names that are not the same as their corresponding
-	 * column label.
-	 *
-	 * @return the map of column labels to port names
-	 */
-	public Map<String, String> getColumnToPortMapping() {
-		return columnToPortMapping;
-	}
-
-	// TableModel methods
-
-	@Override
-	public Class<?> getColumnClass(int columnIndex) {
-		return String.class;
-	}
-
-	public int getColumnCount() {
-		return 2;
-	}
-
-	@Override
-	public String getColumnName(int columnIndex) {
-		if (columnIndex == 0) {
-			return SpreadsheetImportUIText.getString("SpreadsheetImportConfigTableModel.column");
-		} else {
-			return SpreadsheetImportUIText.getString("SpreadsheetImportConfigTableModel.portName");
-		}
-	}
-
-	public int getRowCount() {
-		return toColumn - fromColumn + 1;
-	}
-
-	public Object getValueAt(int rowIndex, int columnIndex) {
-		String columnLabel = SpreadsheetUtils.getColumnLabel(rowIndex + fromColumn);
-		if (columnIndex == 0) {
-			return columnLabel;
-		} else {
-			return getPortName(columnLabel);
-		}
-	}
-
-	@Override
-	public boolean isCellEditable(int rowIndex, int columnIndex) {
-		return columnIndex == 1;
-	}
-
-	@Override
-	public void setValueAt(Object value, int rowIndex, int columnIndex) {
-		if (columnIndex == 1) {
-			setPortName(SpreadsheetUtils.getColumnLabel(rowIndex + fromColumn), value.toString());
-		}
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/src/main/java/net/sf/taverna/t2/activities/spreadsheet/views/SpreadsheetImportConfigView.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/views/SpreadsheetImportConfigView.java b/src/main/java/net/sf/taverna/t2/activities/spreadsheet/views/SpreadsheetImportConfigView.java
deleted file mode 100644
index af57c44..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/views/SpreadsheetImportConfigView.java
+++ /dev/null
@@ -1,1082 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 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.activities.spreadsheet.views;
-
-import java.awt.BorderLayout;
-import java.awt.CardLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Font;
-import java.awt.Graphics;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.Stack;
-
-import javax.swing.ButtonGroup;
-import javax.swing.DefaultCellEditor;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JRadioButton;
-import javax.swing.JScrollPane;
-import javax.swing.JTable;
-import javax.swing.JTextField;
-import javax.swing.SwingConstants;
-import javax.swing.border.Border;
-import javax.swing.border.CompoundBorder;
-import javax.swing.border.EmptyBorder;
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
-import javax.swing.table.DefaultTableColumnModel;
-import javax.swing.table.TableCellEditor;
-import javax.swing.table.TableColumn;
-import javax.swing.text.AttributeSet;
-import javax.swing.text.BadLocationException;
-import javax.swing.text.JTextComponent;
-import javax.swing.text.PlainDocument;
-
-import net.sf.taverna.t2.activities.spreadsheet.Range;
-import net.sf.taverna.t2.activities.spreadsheet.SpreadsheetUtils;
-import net.sf.taverna.t2.activities.spreadsheet.il8n.SpreadsheetImportUIText;
-import net.sf.taverna.t2.lang.ui.DialogTextArea;
-import net.sf.taverna.t2.lang.ui.icons.Icons;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationPanel;
-
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.log4j.Logger;
-
-import uk.org.taverna.commons.services.ServiceRegistry;
-import uk.org.taverna.scufl2.api.activity.Activity;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-/**
- * Configuration panel for the spreadsheet import activity.
- *
- * @author David Withers
- */
-@SuppressWarnings("serial")
-public class SpreadsheetImportConfigView extends ActivityConfigurationPanel {
-
-	private static final String INCONSISTENT_ROW_MESSAGE = SpreadsheetImportUIText
-			.getString("SpreadsheetImportConfigView.INCONSISTENT_ROW_MESSAGE");
-
-	private static final String INCONSISTENT_COLUMN_MESSAGE = SpreadsheetImportUIText
-			.getString("SpreadsheetImportConfigView.INCONSISTENT_COLUMN_MESSAGE");
-
-	private static final String FROM_COLUMN_ERROR_MESSAGE = SpreadsheetImportUIText
-			.getString("SpreadsheetImportConfigView.FROM_COLUMN_ERROR_MESSAGE");
-
-	private static final String TO_COLUMN_ERROR_MESSAGE = SpreadsheetImportUIText
-			.getString("SpreadsheetImportConfigView.TO_COLUMN_ERROR_MESSAGE");
-
-	private static final String FROM_ROW_ERROR_MESSAGE = SpreadsheetImportUIText
-			.getString("SpreadsheetImportConfigView.FROM_ROW_ERROR_MESSAGE");
-
-	private static final String TO_ROW_ERROR_MESSAGE = SpreadsheetImportUIText
-			.getString("SpreadsheetImportConfigView.TO_ROW_ERROR_MESSAGE");
-
-	private static final String DEFAULT_MESSAGE = SpreadsheetImportUIText
-			.getString("SpreadsheetImportConfigView.DEFAULT_MESSAGE");
-
-	private static final String EMPTY_FROM_ROW_ERROR_MESSAGE = SpreadsheetImportUIText
-			.getString("SpreadsheetImportConfigView.EMPTY_FROM_ROW_ERROR_MESSAGE");
-
-	private static final String EMPTY_FROM_COLUMN_ERROR_MESSAGE = SpreadsheetImportUIText
-			.getString("SpreadsheetImportConfigView.EMPTY_FROM_COLUMN_ERROR_MESSAGE");
-
-	private static final String EMPTY_TO_COLUMN_ERROR_MESSAGE = SpreadsheetImportUIText
-			.getString("SpreadsheetImportConfigView.EMPTY_TO_COLUMN_ERROR_MESSAGE");
-
-	private static final String DUPLICATE_PORT_NAME_ERROR_MESSAGE = SpreadsheetImportUIText
-			.getString("SpreadsheetImportConfigView.DUPLICATE_PORT_NAME_ERROR_MESSAGE");
-
-	private static Logger logger = Logger.getLogger(SpreadsheetImportConfigView.class);
-
-	private JPanel titlePanel, contentPanel, buttonPanel, page1, page2;
-
-	private JLabel titleLabel, titleIcon, rowLabel, columnLabel;
-
-	private JLabel emptyCellLabel, outputFormatLabel, outputFormatDelimiterLabel, columnMappingLabel;
-
-	private DialogTextArea titleMessage;
-
-	private JTextField columnFromValue, columnToValue, rowFromValue, rowToValue;
-
-	private JTextField emptyCellUserDefinedValue, outputFormatDelimiter;
-
-	private JCheckBox rowSelectAllOption, rowExcludeFirstOption, rowIgnoreBlankRows;
-
-	private ButtonGroup emptyCellButtonGroup, outputFormatButtonGroup;
-
-	private JRadioButton emptyCellEmptyStringOption, emptyCellUserDefinedOption,
-	emptyCellErrorValueOption;
-
-	private JRadioButton outputFormatMultiplePort, outputFormatSinglePort;
-
-	private JTable columnMappingTable;
-
-	private SpreadsheetImportConfigTableModel columnMappingTableModel;
-
-	private JButton nextButton, backButton;
-
-	private CardLayout cardLayout = new CardLayout();
-
-	private Stack<String> warningMessages = new Stack<String>();
-
-	private Stack<String> errorMessages = new Stack<String>();
-
-	private ObjectNode newConfiguration;
-
-	private final ServiceRegistry serviceRegistry;
-
-	/**
-	 * Constructs a configuration view for an SpreadsheetImport Activity.
-	 *
-	 * @param activity
-	 */
-	public SpreadsheetImportConfigView(Activity activity, ServiceRegistry serviceRegistry) {
-		super(activity);
-		this.serviceRegistry = serviceRegistry;
-		initialise();
-	}
-
-	@Override
-	protected void initialise() {
-		super.initialise();
-		newConfiguration = getJson().deepCopy();
-
-		// title
-		titlePanel = new JPanel(new BorderLayout());
-		titlePanel.setBackground(Color.WHITE);
-		addDivider(titlePanel, SwingConstants.BOTTOM, true);
-
-		titleLabel = new JLabel(SpreadsheetImportUIText.getString("SpreadsheetImportConfigView.panelTitle"));
-		titleLabel.setFont(titleLabel.getFont().deriveFont(Font.BOLD, 13.5f));
-		titleIcon = new JLabel("");
-		titleMessage = new DialogTextArea(DEFAULT_MESSAGE);
-		titleMessage.setMargin(new Insets(5, 10, 10, 10));
-		// titleMessage.setMinimumSize(new Dimension(0, 30));
-		titleMessage.setFont(titleMessage.getFont().deriveFont(11f));
-		titleMessage.setEditable(false);
-		titleMessage.setFocusable(false);
-		// titleMessage.setFont(titleLabel.getFont().deriveFont(Font.PLAIN,
-		// 12f));
-
-		// column range
-		columnLabel = new JLabel(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.columnSectionLabel"));
-
-		JsonNode columnRange = newConfiguration.get("columnRange");
-		columnFromValue = new JTextField(new UpperCaseDocument(), SpreadsheetUtils.getColumnLabel(columnRange.get("start").intValue()), 4);
-		columnFromValue.setMinimumSize(columnFromValue.getPreferredSize());
-		columnToValue = new JTextField(new UpperCaseDocument(), SpreadsheetUtils.getColumnLabel(columnRange.get("end").intValue()), 4);
-		columnToValue.setMinimumSize(columnToValue.getPreferredSize());
-
-		columnFromValue.getDocument().addDocumentListener(new DocumentListener() {
-			public void changedUpdate(DocumentEvent e) {
-			}
-
-			public void insertUpdate(DocumentEvent e) {
-				checkValue(columnFromValue.getText());
-			}
-
-			public void removeUpdate(DocumentEvent e) {
-				checkValue(columnFromValue.getText());
-			}
-
-			private void checkValue(String text) {
-				if (text.trim().equals("")) {
-					addErrorMessage(EMPTY_FROM_COLUMN_ERROR_MESSAGE);
-				} else if (text.trim().matches("[A-Za-z]+")) {
-					String fromColumn = columnFromValue.getText().toUpperCase();
-					String toColumn = columnToValue.getText().toUpperCase();
-					int fromColumnIndex = SpreadsheetUtils.getColumnIndex(fromColumn);
-					int toColumnIndex = SpreadsheetUtils.getColumnIndex(toColumn);
-					if (checkColumnRange(fromColumnIndex, toColumnIndex)) {
-						columnMappingTableModel.setFromColumn(fromColumnIndex);
-						columnMappingTableModel.setToColumn(toColumnIndex);
-						newConfiguration.set("columnRange", newConfiguration.objectNode().put("start", fromColumnIndex).put("end", toColumnIndex));
-						validatePortNames();
-					}
-					removeErrorMessage(FROM_COLUMN_ERROR_MESSAGE);
-					removeErrorMessage(EMPTY_FROM_COLUMN_ERROR_MESSAGE);
-				} else {
-					addErrorMessage(FROM_COLUMN_ERROR_MESSAGE);
-					removeErrorMessage(EMPTY_FROM_COLUMN_ERROR_MESSAGE);
-				}
-			}
-
-		});
-
-		columnToValue.getDocument().addDocumentListener(new DocumentListener() {
-			public void changedUpdate(DocumentEvent e) {
-			}
-
-			public void insertUpdate(DocumentEvent e) {
-				checkValue(columnToValue.getText());
-			}
-
-			public void removeUpdate(DocumentEvent e) {
-				checkValue(columnToValue.getText());
-			}
-
-			private void checkValue(String text) {
-				if (text.trim().equals("")) {
-					addErrorMessage(EMPTY_TO_COLUMN_ERROR_MESSAGE);
-				} else if (text.trim().matches("[A-Za-z]+")) {
-					String fromColumn = columnFromValue.getText().toUpperCase();
-					String toColumn = columnToValue.getText().toUpperCase();
-					int fromColumnIndex = SpreadsheetUtils.getColumnIndex(fromColumn);
-					int toColumnIndex = SpreadsheetUtils.getColumnIndex(toColumn);
-					if (checkColumnRange(fromColumnIndex, toColumnIndex)) {
-						columnMappingTableModel.setFromColumn(fromColumnIndex);
-						columnMappingTableModel.setToColumn(toColumnIndex);
-						newConfiguration.set("columnRange", newConfiguration.objectNode().put("start", fromColumnIndex).put("end", toColumnIndex));
-						validatePortNames();
-					}
-					removeErrorMessage(TO_COLUMN_ERROR_MESSAGE);
-					removeErrorMessage(EMPTY_TO_COLUMN_ERROR_MESSAGE);
-
-				} else {
-					addErrorMessage(TO_COLUMN_ERROR_MESSAGE);
-					removeErrorMessage(EMPTY_TO_COLUMN_ERROR_MESSAGE);
-				}
-			}
-		});
-
-		// row range
-		rowLabel = new JLabel(SpreadsheetImportUIText.getString("SpreadsheetImportConfigView.rowSectionLabel"));
-		addDivider(rowLabel, SwingConstants.TOP, false);
-
-		rowSelectAllOption = new JCheckBox(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.selectAllRowsOption"));
-		rowExcludeFirstOption = new JCheckBox(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.excludeHeaderRowOption"));
-		rowIgnoreBlankRows = new JCheckBox(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.ignoreBlankRowsOption"));
-		rowSelectAllOption.setFocusable(false);
-		rowExcludeFirstOption.setFocusable(false);
-
-		JsonNode rowRange = newConfiguration.get("rowRange");
-		rowFromValue = new JTextField(new NumericDocument(), String.valueOf(rowRange.get("start").intValue() + 1), 4);
-		if (rowRange.get("end").intValue() == -1) {
-			rowToValue = new JTextField(new NumericDocument(), "", 4);
-		} else {
-			rowToValue = new JTextField(new NumericDocument(), String.valueOf(rowRange.get("end").intValue() + 1), 4);
-		}
-		rowFromValue.setMinimumSize(rowFromValue.getPreferredSize());
-		rowToValue.setMinimumSize(rowToValue.getPreferredSize());
-
-		if (newConfiguration.get("allRows").booleanValue()) {
-			rowSelectAllOption.setSelected(true);
-			rowFromValue.setEditable(false);
-			rowFromValue.setEnabled(false);
-			rowToValue.setEditable(false);
-			rowToValue.setEnabled(false);
-		} else {
-			rowExcludeFirstOption.setEnabled(false);
-		}
-		rowExcludeFirstOption.setSelected(newConfiguration.get("excludeFirstRow").booleanValue());
-		rowIgnoreBlankRows.setSelected(newConfiguration.get("ignoreBlankRows").booleanValue());
-
-		rowFromValue.getDocument().addDocumentListener(new DocumentListener() {
-			public void changedUpdate(DocumentEvent e) {
-			}
-
-			public void insertUpdate(DocumentEvent e) {
-				checkValue(rowFromValue.getText());
-			}
-
-			public void removeUpdate(DocumentEvent e) {
-				checkValue(rowFromValue.getText());
-			}
-
-			private void checkValue(String text) {
-				if (text.trim().equals("")) {
-					addErrorMessage(EMPTY_FROM_ROW_ERROR_MESSAGE);
-				} else if (text.trim().matches("[1-9][0-9]*")) {
-					checkRowRange(rowFromValue.getText(), rowToValue.getText());
-					int fromRow = Integer.parseInt(rowFromValue.getText());
-					((ObjectNode) newConfiguration.get("rowRange")).put("start", fromRow - 1);
-					removeErrorMessage(FROM_ROW_ERROR_MESSAGE);
-					removeErrorMessage(EMPTY_FROM_ROW_ERROR_MESSAGE);
-				} else {
-					addErrorMessage(FROM_ROW_ERROR_MESSAGE);
-					removeErrorMessage(EMPTY_FROM_ROW_ERROR_MESSAGE);
-				}
-			}
-		});
-
-		rowToValue.getDocument().addDocumentListener(new DocumentListener() {
-			public void changedUpdate(DocumentEvent e) {
-			}
-
-			public void insertUpdate(DocumentEvent e) {
-				checkValue(rowToValue.getText());
-			}
-
-			public void removeUpdate(DocumentEvent e) {
-				checkValue(rowToValue.getText());
-			}
-
-			private void checkValue(String text) {
-				if (text.trim().equals("")) {
-					((ObjectNode) newConfiguration.get("rowRange")).put("end", -1);
-					removeErrorMessage(TO_ROW_ERROR_MESSAGE);
-					removeErrorMessage(INCONSISTENT_ROW_MESSAGE);
-				} else if (text.trim().matches("[0-9]+")) {
-					checkRowRange(rowFromValue.getText(), rowToValue.getText());
-					int toRow = Integer.parseInt(rowToValue.getText());
-					((ObjectNode) newConfiguration.get("rowRange")).put("end", toRow - 1);
-					removeErrorMessage(TO_ROW_ERROR_MESSAGE);
-				} else {
-					addErrorMessage(TO_ROW_ERROR_MESSAGE);
-				}
-			}
-		});
-
-		rowSelectAllOption.addItemListener(new ItemListener() {
-			public void itemStateChanged(ItemEvent e) {
-				if (e.getStateChange() == ItemEvent.SELECTED) {
-					newConfiguration.put("allRows", true);
-					rowExcludeFirstOption.setEnabled(true);
-					if (rowExcludeFirstOption.isSelected()) {
-						rowFromValue.setText("2");
-					} else {
-						rowFromValue.setText("1");
-					}
-					rowToValue.setText("");
-					rowFromValue.setEditable(false);
-					rowFromValue.setEnabled(false);
-					rowToValue.setEditable(false);
-					rowToValue.setEnabled(false);
-				} else {
-					newConfiguration.put("allRows", false);
-					rowExcludeFirstOption.setEnabled(false);
-					rowFromValue.setEditable(true);
-					rowFromValue.setEnabled(true);
-					rowToValue.setEditable(true);
-					rowToValue.setEnabled(true);
-				}
-			}
-		});
-
-		rowExcludeFirstOption.addItemListener(new ItemListener() {
-			public void itemStateChanged(ItemEvent e) {
-				if (e.getStateChange() == ItemEvent.SELECTED) {
-					newConfiguration.put("excludeFirstRow", true);
-					rowFromValue.setText("2");
-					((ObjectNode) newConfiguration.get("rowRange")).put("start", 1);
-				} else {
-					newConfiguration.put("excludeFirstRow", false);
-					rowFromValue.setText("1");
-					((ObjectNode) newConfiguration.get("rowRange")).put("start", 0);
-				}
-			}
-		});
-
-		rowIgnoreBlankRows.addItemListener(new ItemListener() {
-			public void itemStateChanged(ItemEvent e) {
-				newConfiguration.put("ignoreBlankRows", e.getStateChange() == ItemEvent.SELECTED);
-			}
-		});
-
-		// empty cells
-		emptyCellLabel = new JLabel(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.emptyCellSectionLabel"));
-		addDivider(emptyCellLabel, SwingConstants.TOP, false);
-
-		emptyCellButtonGroup = new ButtonGroup();
-		emptyCellEmptyStringOption = new JRadioButton(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.emptyStringOption"));
-		emptyCellUserDefinedOption = new JRadioButton(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.userDefinedOption"));
-		emptyCellErrorValueOption = new JRadioButton(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.generateErrorOption"));
-		emptyCellEmptyStringOption.setFocusable(false);
-		emptyCellUserDefinedOption.setFocusable(false);
-		emptyCellErrorValueOption.setFocusable(false);
-
-		emptyCellUserDefinedValue = new JTextField(newConfiguration.get("emptyCellValue").textValue());
-
-		emptyCellButtonGroup.add(emptyCellEmptyStringOption);
-		emptyCellButtonGroup.add(emptyCellUserDefinedOption);
-		emptyCellButtonGroup.add(emptyCellErrorValueOption);
-
-		if (newConfiguration.get("emptyCellPolicy").textValue().equals("GENERATE_ERROR")) {
-			emptyCellErrorValueOption.setSelected(true);
-			emptyCellUserDefinedValue.setEnabled(false);
-			emptyCellUserDefinedValue.setEditable(false);
-		} else if (newConfiguration.get("emptyCellPolicy").textValue().equals("EMPTY_STRING")) {
-			emptyCellEmptyStringOption.setSelected(true);
-			emptyCellUserDefinedValue.setEnabled(false);
-			emptyCellUserDefinedValue.setEditable(false);
-		} else {
-			emptyCellUserDefinedOption.setSelected(true);
-			emptyCellUserDefinedValue.setText(newConfiguration.get("emptyCellValue").textValue());
-			emptyCellUserDefinedValue.setEnabled(true);
-			emptyCellUserDefinedValue.setEditable(true);
-		}
-
-		emptyCellEmptyStringOption.addActionListener(new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				newConfiguration.put("emptyCellPolicy", "EMPTY_STRING");
-				emptyCellUserDefinedValue.setEnabled(false);
-				emptyCellUserDefinedValue.setEditable(false);
-			}
-		});
-		emptyCellUserDefinedOption.addActionListener(new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				newConfiguration.put("emptyCellPolicy", "USER_DEFINED");
-				emptyCellUserDefinedValue.setEnabled(true);
-				emptyCellUserDefinedValue.setEditable(true);
-				emptyCellUserDefinedValue.requestFocusInWindow();
-			}
-		});
-		emptyCellErrorValueOption.addActionListener(new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				newConfiguration.put("emptyCellPolicy", "GENERATE_ERROR");
-				emptyCellUserDefinedValue.setEnabled(false);
-				emptyCellUserDefinedValue.setEditable(false);
-			}
-		});
-
-		emptyCellUserDefinedValue.getDocument().addDocumentListener(new DocumentListener() {
-			public void changedUpdate(DocumentEvent e) {
-				newConfiguration.put("emptyCellValue", emptyCellUserDefinedValue.getText());
-			}
-
-			public void insertUpdate(DocumentEvent e) {
-				newConfiguration.put("emptyCellValue", emptyCellUserDefinedValue.getText());
-			}
-
-			public void removeUpdate(DocumentEvent e) {
-				newConfiguration.put("emptyCellValue", emptyCellUserDefinedValue.getText());
-			}
-		});
-
-		// column mappings
-		columnMappingLabel = new JLabel(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.columnMappingSectionLabel"));
-		addDivider(columnMappingLabel, SwingConstants.TOP, false);
-
-		Map<String, String> columnToPortMapping = new HashMap<>();
-		if (newConfiguration.has("columnNames")) {
-			for (JsonNode columnName : newConfiguration.get("columnNames")) {
-				columnToPortMapping.put(columnName.get("column").textValue(), columnName.get("port").textValue());
-			}
-		}
-		columnMappingTableModel = new SpreadsheetImportConfigTableModel(columnFromValue.getText(),
-				columnToValue.getText(), columnToPortMapping);
-
-		columnMappingTable = new JTable();
-		columnMappingTable.setRowSelectionAllowed(false);
-		columnMappingTable.getTableHeader().setReorderingAllowed(false);
-		columnMappingTable.setGridColor(Color.LIGHT_GRAY);
-		// columnMappingTable.setFocusable(false);
-
-		columnMappingTable.setColumnModel(new DefaultTableColumnModel() {
-			public TableColumn getColumn(int columnIndex) {
-				TableColumn column = super.getColumn(columnIndex);
-				if (columnIndex == 0) {
-					column.setMaxWidth(100);
-				}
-				return column;
-			}
-		});
-
-		TableCellEditor defaultEditor = columnMappingTable.getDefaultEditor(String.class);
-		if (defaultEditor instanceof DefaultCellEditor) {
-			DefaultCellEditor defaultCellEditor = (DefaultCellEditor) defaultEditor;
-			defaultCellEditor.setClickCountToStart(1);
-			Component editorComponent = defaultCellEditor.getComponent();
-			if (editorComponent instanceof JTextComponent) {
-				final JTextComponent textField = (JTextComponent) editorComponent;
-				textField.getDocument().addDocumentListener(new DocumentListener() {
-					public void changedUpdate(DocumentEvent e) {
-						updateModel(textField.getText());
-					}
-
-					public void insertUpdate(DocumentEvent e) {
-						updateModel(textField.getText());
-					}
-
-					public void removeUpdate(DocumentEvent e) {
-						updateModel(textField.getText());
-					}
-
-					private void updateModel(String text) {
-						int row = columnMappingTable.getEditingRow();
-						int column = columnMappingTable.getEditingColumn();
-						columnMappingTableModel.setValueAt(text, row, column);
-
-						ArrayNode columnNames = newConfiguration.arrayNode();
-						Map<String, String> columnToPortMapping = columnMappingTableModel.getColumnToPortMapping();
-						for (Entry<String,String> entry : columnToPortMapping.entrySet()) {
-							columnNames.add(newConfiguration.objectNode().put("column", entry.getKey()).put("port", entry.getValue()));
-						}
-						newConfiguration.put("columnNames", columnNames);
-						validatePortNames();
-					}
-
-				});
-			}
-		}
-
-		columnMappingTable.setModel(columnMappingTableModel);
-
-		// output format
-		outputFormatLabel = new JLabel(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.outputFormatSectionLabel"));
-
-		outputFormatMultiplePort = new JRadioButton(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.multiplePortOption"));
-		outputFormatSinglePort = new JRadioButton(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.singlePortOption"));
-		outputFormatMultiplePort.setFocusable(false);
-		outputFormatSinglePort.setFocusable(false);
-
-		outputFormatDelimiterLabel = new JLabel(SpreadsheetImportUIText
-				.getString("SpreadsheetImportConfigView.userDefinedCsvDelimiter"));
-		outputFormatDelimiter = new JTextField(newConfiguration.get("csvDelimiter").textValue(), 5);
-
-		outputFormatButtonGroup = new ButtonGroup();
-		outputFormatButtonGroup.add(outputFormatMultiplePort);
-		outputFormatButtonGroup.add(outputFormatSinglePort);
-
-		if (newConfiguration.get("outputFormat").textValue().equals("PORT_PER_COLUMN")) {
-			outputFormatMultiplePort.setSelected(true);
-			outputFormatDelimiterLabel.setEnabled(false);
-			outputFormatDelimiter.setEnabled(false);
-		} else {
-			outputFormatSinglePort.setSelected(true);
-			columnMappingLabel.setEnabled(false);
-			enableTable(columnMappingTable, false);
-		}
-
-		outputFormatMultiplePort.addActionListener(new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				outputFormatDelimiterLabel.setEnabled(false);
-				outputFormatDelimiter.setEnabled(false);
-				columnMappingLabel.setEnabled(true);
-				enableTable(columnMappingTable, true);
-				newConfiguration.put("outputFormat", "PORT_PER_COLUMN");
-			}
-		});
-		outputFormatSinglePort.addActionListener(new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				outputFormatDelimiterLabel.setEnabled(true);
-				outputFormatDelimiter.setEnabled(true);
-				columnMappingLabel.setEnabled(false);
-				enableTable(columnMappingTable, false);
-				newConfiguration.put("outputFormat", "SINGLE_PORT");
-			}
-
-		});
-		outputFormatDelimiter.getDocument().addDocumentListener(new DocumentListener() {
-			public void changedUpdate(DocumentEvent e) {
-				handleUpdate();
-			}
-
-			public void insertUpdate(DocumentEvent e) {
-				handleUpdate();
-			}
-
-			public void removeUpdate(DocumentEvent e) {
-				handleUpdate();
-			}
-
-			private void handleUpdate() {
-				String text = null;
-				try {
-					text = StringEscapeUtils.unescapeJava(outputFormatDelimiter.getText());
-				} catch (RuntimeException re) {}
-				if (text == null || text.length() == 0) {
-					newConfiguration.put("csvDelimiter", ",");
-				} else {
-					newConfiguration.put("csvDelimiter", text.substring(0, 1));
-				}
-			}
-
-		});
-
-		// buttons
-		nextButton = new JButton(SpreadsheetImportUIText.getString("SpreadsheetImportConfigView.nextButton"));
-		nextButton.setFocusable(false);
-		nextButton.addActionListener(new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				backButton.setVisible(true);
-				nextButton.setVisible(false);
-				cardLayout.last(contentPanel);
-			}
-		});
-
-		backButton = new JButton(SpreadsheetImportUIText.getString("SpreadsheetImportConfigView.backButton"));
-		backButton.setFocusable(false);
-		backButton.setVisible(false);
-		backButton.addActionListener(new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				nextButton.setVisible(true);
-				backButton.setVisible(false);
-				cardLayout.first(contentPanel);
-			}
-		});
-
-		buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
-		addDivider(buttonPanel, SwingConstants.TOP, true);
-
-		removeAll();
-		layoutPanel();
-	}
-
-	@Override
-	public void noteConfiguration() {
-		setJson(newConfiguration);
-		configureInputPorts(serviceRegistry);
-		configureOutputPorts(serviceRegistry);
-	}
-
-	@Override
-	public boolean checkValues() {
-		return errorMessages.isEmpty();
-	}
-
-	private void layoutPanel() {
-		setPreferredSize(new Dimension(450, 400));
-		setLayout(new BorderLayout());
-
-		page1 = new JPanel(new GridBagLayout());
-		page2 = new JPanel(new GridBagLayout());
-
-		contentPanel = new JPanel(cardLayout);
-		contentPanel.add(page1, "page1");
-		contentPanel.add(page2, "page2");
-		add(contentPanel, BorderLayout.CENTER);
-
-		// title
-		titlePanel.setBorder(new CompoundBorder(titlePanel.getBorder(), new EmptyBorder(10, 10, 0, 10)));
-		add(titlePanel, BorderLayout.NORTH);
-		titlePanel.add(titleLabel, BorderLayout.NORTH);
-		titlePanel.add(titleIcon, BorderLayout.WEST);
-		titlePanel.add(titleMessage, BorderLayout.CENTER);
-
-		GridBagConstraints c = new GridBagConstraints();
-		c.anchor = GridBagConstraints.WEST;
-		c.fill = GridBagConstraints.HORIZONTAL;
-		c.weightx = 1;
-		c.gridx = 0;
-		c.gridwidth = GridBagConstraints.REMAINDER;
-
-		// column range
-		c.insets = new Insets(10, 10, 0, 10);
-		page1.add(columnLabel, c);
-
-		c.insets = new Insets(10, 25, 0, 0);
-		c.gridwidth = 1;
-		c.weightx = 0;
-		page1.add(new JLabel(SpreadsheetImportUIText.getString("SpreadsheetImportConfigView.from")), c);
-		c.insets = new Insets(10, 0, 0, 0);
-		c.gridx = 1;
-		page1.add(columnFromValue, c);
-		c.gridx = 2;
-		page1.add(new JLabel(SpreadsheetImportUIText.getString("SpreadsheetImportConfigView.to")), c);
-		c.gridx = 3;
-		page1.add(columnToValue, c);
-
-		c.gridx = 0;
-		c.weightx = 1;
-		c.insets = new Insets(10, 10, 0, 10);
-		c.gridwidth = GridBagConstraints.REMAINDER;
-
-		// row range
-		page1.add(rowLabel, c);
-
-		c.insets = new Insets(10, 25, 0, 0);
-		c.gridwidth = 1;
-		c.gridx = 0;
-		c.weightx = 0;
-		page1.add(new JLabel(SpreadsheetImportUIText.getString("SpreadsheetImportConfigView.from")), c);
-		c.insets = new Insets(10, 0, 0, 0);
-		c.gridx = 1;
-		page1.add(rowFromValue, c);
-		c.gridx = 2;
-		page1.add(new JLabel(SpreadsheetImportUIText.getString("SpreadsheetImportConfigView.to")), c);
-		c.gridx = 3;
-		page1.add(rowToValue, c);
-		c.gridx = 4;
-		page1.add(rowSelectAllOption, c);
-		c.gridx = 5;
-		c.gridwidth = GridBagConstraints.REMAINDER;
-		c.insets = new Insets(10, 0, 0, 10);
-		page1.add(rowExcludeFirstOption, c);
-		c.insets = new Insets(10, 25, 0, 0);
-		c.gridx = 0;
-		page1.add(rowIgnoreBlankRows, c);
-
-		c.gridx = 0;
-
-		// empty cells
-		c.insets = new Insets(10, 10, 10, 10);
-		page1.add(emptyCellLabel, c);
-
-		c.insets = new Insets(0, 25, 0, 10);
-		page1.add(emptyCellEmptyStringOption, c);
-		JPanel userDefinedPanel = new JPanel(new BorderLayout());
-		userDefinedPanel.add(emptyCellUserDefinedOption, BorderLayout.WEST);
-		userDefinedPanel.add(emptyCellUserDefinedValue, BorderLayout.CENTER);
-		page1.add(userDefinedPanel, c);
-		c.weighty = 1;
-		c.anchor = GridBagConstraints.NORTHWEST;
-		page1.add(emptyCellErrorValueOption, c);
-
-		// output format
-		c.insets = new Insets(10, 10, 10, 10);
-		c.weighty = 0;
-		c.weightx = 1;
-		page2.add(outputFormatLabel, c);
-
-		c.insets = new Insets(0, 25, 0, 10);
-		page2.add(outputFormatMultiplePort, c);
-		page2.add(outputFormatSinglePort, c);
-
-		c.insets = new Insets(0, 50, 0, 10);
-		JPanel outputFormatDelimiterPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
-		outputFormatDelimiterPanel.add(outputFormatDelimiterLabel);
-		outputFormatDelimiterPanel.add(outputFormatDelimiter);
-		page2.add(outputFormatDelimiterPanel, c);
-
-		// column mapping
-		c.insets = new Insets(10, 10, 0, 10);
-		page2.add(columnMappingLabel, c);
-
-		c.insets = new Insets(10, 10, 10, 10);
-		c.fill = GridBagConstraints.BOTH;
-		c.weighty = 1;
-		page2.add(new JScrollPane(columnMappingTable), c);
-
-		buttonPanel.add(backButton);
-		buttonPanel.add(nextButton);
-		add(buttonPanel, BorderLayout.SOUTH);
-	}
-
-	/**
-	 * Displays the message with no icon.
-	 *
-	 * @param message
-	 *            the message to display
-	 */
-	public void setMessage(String message) {
-		titleIcon.setIcon(null);
-		titleMessage.setText(message);
-	}
-
-	/**
-	 * Adds the message to the top of the warning message stack. If the message is already in the
-	 * stack it is moved to the top. If there are no error messages the message is displayed.
-	 *
-	 * @param message
-	 *            the warning message to add
-	 */
-	public void addWarningMessage(String message) {
-		if (warningMessages.contains(message)) {
-			warningMessages.remove(message);
-		}
-		warningMessages.push(message);
-		if (errorMessages.isEmpty()) {
-			setWarningMessage(message);
-		}
-	}
-
-	/**
-	 * Removes the message from the warning message stack. If there are no error messages the next
-	 * warning message is displayed. If there are no warning messages the default message is
-	 * displayed.
-	 *
-	 * @param message
-	 *            the warning message to remove
-	 */
-	public void removeWarningMessage(String message) {
-		warningMessages.remove(message);
-		if (errorMessages.isEmpty()) {
-			if (warningMessages.isEmpty()) {
-				setMessage(DEFAULT_MESSAGE);
-			} else {
-				setWarningMessage(warningMessages.peek());
-			}
-		}
-	}
-
-	/**
-	 * Displays the message and a warning icon.
-	 *
-	 * @param message
-	 *            the warning message to display
-	 */
-	public void setWarningMessage(String message) {
-		titleIcon.setIcon(Icons.warningIcon);
-		titleMessage.setText(message);
-	}
-
-	/**
-	 * Adds the message to the top of the error message stack. If the message is already in the
-	 * stack it is moved to the top. The message is then displayed.
-	 *
-	 * @param message
-	 *            the error message to add
-	 */
-	public void addErrorMessage(String message) {
-		if (errorMessages.contains(message)) {
-			errorMessages.remove(message);
-		}
-		errorMessages.push(message);
-		setErrorMessage(message);
-	}
-
-	/**
-	 * Removes the message from the error message stack and displays the next error message. If
-	 * there are no error messages the next warning message is displayed. If there are no warning
-	 * messages the default message is displayed.
-	 *
-	 * @param message
-	 *            the error message to remove
-	 */
-	public void removeErrorMessage(String message) {
-		errorMessages.remove(message);
-		if (errorMessages.isEmpty()) {
-			if (warningMessages.isEmpty()) {
-				setMessage(DEFAULT_MESSAGE);
-			} else {
-				setWarningMessage(warningMessages.peek());
-			}
-		} else {
-			setErrorMessage(errorMessages.peek());
-		}
-	}
-
-	/**
-	 * Displays the message and an error icon.
-	 *
-	 * @param message
-	 *            the error message to display
-	 */
-	public void setErrorMessage(String message) {
-		titleIcon.setIcon(Icons.severeIcon);
-		titleMessage.setText(message);
-	}
-
-	protected boolean validatePortNames() {
-		boolean isValid = true;
-		Range columnRange = SpreadsheetUtils.getRange(newConfiguration.get("columnRange"));
-		Map<String, String> mapping = new HashMap<>();
-		if (newConfiguration.has("columnNames")) {
-			for (JsonNode columnName : newConfiguration.get("columnNames")) {
-				mapping.put(columnName.get("column").textValue(), columnName.get("port").textValue());
-			}
-		}
-		Set<String> usedNames = new HashSet<String>();
-		for (Entry<String, String> entry : mapping.entrySet()) {
-			if (columnRange.contains(SpreadsheetUtils.getColumnIndex(entry.getKey()))) {
-				String portName = entry.getValue();
-				if (!usedNames.add(portName)) {
-					isValid = false;
-					break;
-				}
-				if (portName.matches("[A-Z]+")) {
-					if (!mapping.containsKey(portName)) {
-						int columnIndex = SpreadsheetUtils.getColumnIndex(portName);
-						if (columnRange.contains(columnIndex)) {
-							isValid = false;
-							break;
-						}
-					}
-				}
-			}
-		}
-		if (isValid) {
-			removeErrorMessage(DUPLICATE_PORT_NAME_ERROR_MESSAGE);
-		} else {
-			addErrorMessage(DUPLICATE_PORT_NAME_ERROR_MESSAGE);
-		}
-		return isValid;
-	}
-
-	protected boolean checkRowRange(String from, String to) {
-		boolean result = false;
-		try {
-			int fromRow = Integer.parseInt(from);
-			int toRow = Integer.parseInt(to);
-			if (toRow < fromRow) {
-				addErrorMessage(INCONSISTENT_ROW_MESSAGE);
-			} else {
-				removeErrorMessage(INCONSISTENT_ROW_MESSAGE);
-				result = true;
-			}
-		} catch (NumberFormatException e) {
-			logger.warn("Problem checking row range", e);
-		}
-		return result;
-	}
-
-	protected boolean checkColumnRange(int fromColumn, int toColumn) {
-		boolean result = false;
-		if (toColumn < fromColumn) {
-			addErrorMessage(INCONSISTENT_COLUMN_MESSAGE);
-		} else {
-			removeErrorMessage(INCONSISTENT_COLUMN_MESSAGE);
-			result = true;
-		}
-		return result;
-	}
-
-	/**
-	 * Adds a light gray or etched border to the top or bottom of a JComponent.
-	 *
-	 * @param component
-	 */
-	protected void addDivider(JComponent component, final int position, final boolean etched) {
-		component.setBorder(new Border() {
-			private final Color borderColor = new Color(.6f, .6f, .6f);
-
-			public Insets getBorderInsets(Component c) {
-				if (position == SwingConstants.TOP) {
-					return new Insets(5, 0, 0, 0);
-				} else {
-					return new Insets(0, 0, 5, 0);
-				}
-			}
-
-			public boolean isBorderOpaque() {
-				return false;
-			}
-
-			public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
-				if (position == SwingConstants.TOP) {
-					if (etched) {
-						g.setColor(borderColor);
-						g.drawLine(x, y, x + width, y);
-						g.setColor(Color.WHITE);
-						g.drawLine(x, y + 1, x + width, y + 1);
-					} else {
-						g.setColor(Color.LIGHT_GRAY);
-						g.drawLine(x, y, x + width, y);
-					}
-				} else {
-					if (etched) {
-						g.setColor(borderColor);
-						g.drawLine(x, y + height - 2, x + width, y + height - 2);
-						g.setColor(Color.WHITE);
-						g.drawLine(x, y + height - 1, x + width, y + height - 1);
-					} else {
-						g.setColor(Color.LIGHT_GRAY);
-						g.drawLine(x, y + height - 1, x + width, y + height - 1);
-					}
-				}
-			}
-
-		});
-	}
-
-	private void enableTable(JTable table, boolean enabled) {
-		table.setEnabled(enabled);
-		Component editor = table.getEditorComponent();
-		if (editor != null) {
-			editor.setEnabled(enabled);
-		}
-		if (enabled) {
-			table.setForeground(Color.BLACK);
-			table.getTableHeader().setForeground(Color.BLACK);
-		} else {
-			table.setForeground(Color.LIGHT_GRAY);
-			table.getTableHeader().setForeground(Color.LIGHT_GRAY);
-		}
-	}
-
-	static class UpperCaseDocument extends PlainDocument {
-        @Override
-        public void replace(int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
-        	if (text.matches("[A-Za-z]+")) {
-        		text = text.toUpperCase();
-        		super.replace(offset, length, text, attrs);
-        	}
-        }
-     }
-
-	static class NumericDocument extends PlainDocument {
-        @Override
-        public void replace(int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
-        	if (text.length() == 0 || text.matches("[0-9]+")) {
-        		text = text.toUpperCase();
-        		super.replace(offset, length, text, attrs);
-        	}
-        }
-     }
-
-	/**
-	 * Main method for testing the panel.
-	 *
-	 * @param args
-	 * @throws ActivityConfigurationException
-	 */
-//	public static void main(String[] args) throws ActivityConfigurationException {
-//		final JFrame frame = new JFrame();
-//		SpreadsheetImportActivity activity = new SpreadsheetImportActivity();
-//		activity.configure(new SpreadsheetImportConfiguration());
-//		final SpreadsheetImportConfigView config = new SpreadsheetImportConfigView(activity);
-//		config.setOkAction(new AbstractAction("Finish") {
-//			public void actionPerformed(ActionEvent arg0) {
-//				Range columnRange = config.getConfiguration().getColumnRange();
-//				String fromColumn = SpreadsheetUtils.getColumnLabel(columnRange.getStart());
-//				String toColumn = SpreadsheetUtils.getColumnLabel(columnRange.getEnd());
-//				System.out.printf("%s (%s) - %s (%s)", fromColumn, columnRange.getStart(),
-//						toColumn, columnRange.getEnd());
-//				frame.setVisible(false);
-//				frame.dispose();
-//			}
-//		});
-//		config.setCancelAction(new AbstractAction("Cancel") {
-//			public void actionPerformed(ActionEvent arg0) {
-//				frame.setVisible(false);
-//				frame.dispose();
-//			}
-//		});
-//		frame.add(config);
-//		frame.pack();
-//		frame.setVisible(true);
-//	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/fa8b5b3d/src/main/java/net/sf/taverna/t2/activities/spreadsheet/views/SpreadsheetImportContextualView.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/views/SpreadsheetImportContextualView.java b/src/main/java/net/sf/taverna/t2/activities/spreadsheet/views/SpreadsheetImportContextualView.java
deleted file mode 100644
index 2078faa..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/spreadsheet/views/SpreadsheetImportContextualView.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 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.activities.spreadsheet.views;
-
-import java.awt.Frame;
-
-import javax.swing.Action;
-
-import net.sf.taverna.t2.activities.spreadsheet.actions.SpreadsheetImportActivityConfigurationAction;
-import net.sf.taverna.t2.activities.spreadsheet.il8n.SpreadsheetImportUIText;
-import net.sf.taverna.t2.activities.spreadsheet.servicedescriptions.SpreadsheetImportActivityIcon;
-import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry;
-import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager;
-import net.sf.taverna.t2.workbench.configuration.colour.ColourManager;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.ui.actions.activity.HTMLBasedActivityContextualView;
-import uk.org.taverna.commons.services.ServiceRegistry;
-import uk.org.taverna.scufl2.api.activity.Activity;
-import uk.org.taverna.scufl2.api.port.InputActivityPort;
-import uk.org.taverna.scufl2.api.port.OutputActivityPort;
-
-/**
- * A simple non editable HTML table view over a {@link SpreadsheetImportActivity}. Clicking on the
- * configure button shows the editable {@link SpreadsheetImportConfigView}
- *
- * @author David Withers
- */
-public class SpreadsheetImportContextualView extends HTMLBasedActivityContextualView {
-
-	private static final long serialVersionUID = 1L;
-	private final EditManager editManager;
-	private final FileManager fileManager;
-	private final ActivityIconManager activityIconManager;
-	private final ServiceDescriptionRegistry serviceDescriptionRegistry;
-	private final ServiceRegistry serviceRegistry;
-
-	public SpreadsheetImportContextualView(Activity activity, EditManager editManager,
-			FileManager fileManager, ActivityIconManager activityIconManager,
-			ColourManager colourManager, ServiceDescriptionRegistry serviceDescriptionRegistry, ServiceRegistry serviceRegistry) {
-		super(activity, colourManager);
-		this.editManager = editManager;
-		this.fileManager = fileManager;
-		this.activityIconManager = activityIconManager;
-		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
-		this.serviceRegistry = serviceRegistry;
-	}
-
-	@Override
-	protected String getRawTableRowsHtml() {
-		StringBuilder html = new StringBuilder();
-		html.append("<tr><th>");
-		html.append(SpreadsheetImportUIText
-				.getString("SpreadsheetImportContextualView.inputPortName"));
-		html.append("</th><th>");
-		html.append(SpreadsheetImportUIText.getString("SpreadsheetImportContextualView.depth"));
-		html.append("</th></tr>");
-		for (InputActivityPort port : getActivity().getInputPorts()) {
-			html.append("<tr><td>");
-			html.append(port.getName());
-			html.append("</td><td>");
-			html.append(port.getDepth());
-			html.append("</td></tr>");
-		}
-		html.append("<tr><th>");
-		html.append(SpreadsheetImportUIText
-				.getString("SpreadsheetImportContextualView.outputPortName"));
-		html.append("</th><th>");
-		html.append(SpreadsheetImportUIText.getString("SpreadsheetImportContextualView.depth"));
-		html.append("</th></tr>");
-		for (OutputActivityPort port : getActivity().getOutputPorts()) {
-			html.append("<tr><td>");
-			html.append(port.getName());
-			html.append("</td><td>");
-			html.append(port.getDepth());
-			html.append("</td></tr>");
-		}
-		return html.toString();
-	}
-
-	@Override
-	public String getViewTitle() {
-		return SpreadsheetImportUIText.getString("SpreadsheetImportContextualView.activityName");
-	}
-
-	@Override
-	public Action getConfigureAction(Frame owner) {
-		return new SpreadsheetImportActivityConfigurationAction(
-				getActivity(), owner, editManager, fileManager,
-				activityIconManager, serviceDescriptionRegistry, serviceRegistry);
-	}
-
-	@Override
-	public String getBackgroundColour() {
-		return SpreadsheetImportActivityIcon.SPREADSHEET_COLOUR_HTML;
-	}
-
-	@Override
-	public int getPreferredPosition() {
-		return 100;
-	}
-
-}