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:46:07 UTC

[43/52] [abbrv] incubator-taverna-workbench git commit: taverna-disabled-activity-ui/

taverna-disabled-activity-ui/


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

Branch: refs/heads/master
Commit: ceb6e91f5c712fd4b81130d182bd6c7d94b8d223
Parents: 96e238e
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Feb 5 10:36:21 2015 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Feb 5 10:36:21 2015 +0000

----------------------------------------------------------------------
 pom.xml                                         |  94 -------------
 .../DisabledActivityConfigurationAction.java    | 118 ----------------
 .../menu/ConfigureDisabledMenuAction.java       |  52 -------
 .../views/DisabledActivityViewFactory.java      |  80 -----------
 .../disabled/views/DisabledConfigView.java      | 141 -------------------
 .../disabled/views/DisabledContextualView.java  | 128 -----------------
 .../net.sf.taverna.t2.ui.menu.MenuComponent     |   1 -
 ...ntextualviews.activity.ContextualViewFactory |   1 -
 .../disabled-activity-ui-context-osgi.xml       |  20 ---
 .../spring/disabled-activity-ui-context.xml     |  23 ---
 taverna-disabled-activity-ui/pom.xml            |  94 +++++++++++++
 .../DisabledActivityConfigurationAction.java    | 118 ++++++++++++++++
 .../menu/ConfigureDisabledMenuAction.java       |  52 +++++++
 .../views/DisabledActivityViewFactory.java      |  80 +++++++++++
 .../disabled/views/DisabledConfigView.java      | 141 +++++++++++++++++++
 .../disabled/views/DisabledContextualView.java  | 128 +++++++++++++++++
 .../net.sf.taverna.t2.ui.menu.MenuComponent     |   1 +
 ...ntextualviews.activity.ContextualViewFactory |   1 +
 .../disabled-activity-ui-context-osgi.xml       |  20 +++
 .../spring/disabled-activity-ui-context.xml     |  23 +++
 20 files changed, 658 insertions(+), 658 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index ddbaf29..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,94 +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</groupId>
-                <artifactId>taverna-parent</artifactId>
-                <version>3.0.1-SNAPSHOT</version>
-	</parent>
-	<groupId>net.sf.taverna.t2.ui-activities</groupId>
-	<artifactId>disabled-activity-ui</artifactId>
-	<version>2.0.1-SNAPSHOT</version>
-	<packaging>bundle</packaging>
-	<name>Taverna 2 Disabled Activity UI</name>
-	<dependencies>
-		<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>menu-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>report-api</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-impl</groupId>
-			<artifactId>contextual-views-impl</artifactId>
-			<version>${t2.ui.impl.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-api</groupId>
-			<artifactId>activity-tools</artifactId>
-			<version>${t2.ui.api.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-components</groupId>
-			<artifactId>workflow-view</artifactId>
-			<version>${t2.ui.components.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.activities</groupId>
-			<artifactId>beanshell-activity</artifactId>
-			<version>${t2.activities.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>javax.help</groupId>
-			<artifactId>javahelp</artifactId>
-			<version>${javahelp.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.lang</groupId>
-			<artifactId>uibuilder</artifactId>
-			<version>${t2.lang.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.taverna.t2.ui-impl</groupId>
-			<artifactId>helper</artifactId>
-			<version>${t2.ui.impl.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>
-        <scm>
-                <connection>scm:git:https://github.com/taverna/taverna-disabled-activity-ui.git</connection>
-                <developerConnection>scm:git:ssh://git@github.com/taverna/taverna-disabled-activity-ui.git</developerConnection>
-                <url>https://github.com/taverna/taverna-disabled-activity-ui/</url>
-                <tag>HEAD</tag>
-        </scm>
-</project>
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/src/main/java/net/sf/taverna/t2/activities/disabled/actions/DisabledActivityConfigurationAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/disabled/actions/DisabledActivityConfigurationAction.java b/src/main/java/net/sf/taverna/t2/activities/disabled/actions/DisabledActivityConfigurationAction.java
deleted file mode 100644
index c71d483..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/disabled/actions/DisabledActivityConfigurationAction.java
+++ /dev/null
@@ -1,118 +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.activities.disabled.actions;
-
-import java.awt.Component;
-import java.awt.Frame;
-import java.awt.event.ActionEvent;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.JOptionPane;
-
-import uk.org.taverna.scufl2.api.activity.Activity;
-
-import net.sf.taverna.t2.activities.disabled.views.DisabledConfigView;
-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.report.ReportManager;
-import net.sf.taverna.t2.workbench.ui.actions.activity.ActivityConfigurationAction;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationDialog;
-
-@SuppressWarnings("serial")
-public class DisabledActivityConfigurationAction extends ActivityConfigurationAction {
-
-	public static final String FIX_DISABLED = "Edit properties";
-	private final EditManager editManager;
-	private final FileManager fileManager;
-	private final ReportManager reportManager;
-
-	public DisabledActivityConfigurationAction(Activity activity, Frame owner,
-			EditManager editManager, FileManager fileManager, ReportManager reportManager,
-			ActivityIconManager activityIconManager, ServiceDescriptionRegistry serviceDescriptionRegistry) {
-		super(activity, activityIconManager, serviceDescriptionRegistry);
-		this.editManager = editManager;
-		this.fileManager = fileManager;
-		this.reportManager = reportManager;
-		putValue(NAME, FIX_DISABLED);
-	}
-
-	public void actionPerformed(ActionEvent e) {
-		ActivityConfigurationDialog currentDialog = ActivityConfigurationAction
-				.getDialog(getActivity());
-		if (currentDialog != null) {
-			currentDialog.toFront();
-			return;
-		}
-		int answer = JOptionPane.showConfirmDialog((Component) e.getSource(),
-				"Directly editing properties can be dangerous. Are you sure you want to proceed?",
-				"Confirm editing", JOptionPane.YES_NO_OPTION);
-		if (answer != JOptionPane.YES_OPTION) {
-			return;
-		}
-
-		final DisabledConfigView disabledConfigView = new DisabledConfigView(getActivity());
-		final DisabledActivityConfigurationDialog dialog = new DisabledActivityConfigurationDialog(
-				getActivity(), disabledConfigView);
-
-		ActivityConfigurationAction.setDialog(getActivity(), dialog, fileManager);
-
-	}
-
-	private class DisabledActivityConfigurationDialog extends ActivityConfigurationDialog {
-		public DisabledActivityConfigurationDialog(Activity a, DisabledConfigView p) {
-			super(a, p, editManager);
-			this.setModal(true);
-			super.applyButton.setEnabled(false);
-			super.applyButton.setVisible(false);
-		}
-
-		public void configureActivity(Dataflow df, Activity a, Object bean) {
-			Edit<?> configureActivityEdit = editManager.getEdits()
-					.getConfigureActivityEdit(a, bean);
-			try {
-				List<Edit<?>> editList = new ArrayList<Edit<?>>();
-				editList.add(configureActivityEdit);
-				Processor p = findProcessor(df, a);
-				if (p != null && p.getActivityList().size() == 1) {
-					editList.add(editManager.getEdits().getMapProcessorPortsForActivityEdit(p));
-				}
-				Edit e = Tools.getEnableDisabledActivityEdit(super.owningProcessor, activity,
-						editManager.getEdits());
-				if (e != null) {
-					editList.add(e);
-					editManager.doDataflowEdit(df, new CompoundEdit(editList));
-					reportManager.updateObjectReport(super.owningDataflow, super.owningProcessor);
-
-				}
-			} catch (IllegalStateException e) {
-				// TODO Auto-generated catch block
-				logger.error(e);
-			} catch (EditException e) {
-				logger.error(e);
-			}
-		}
-
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/src/main/java/net/sf/taverna/t2/activities/disabled/menu/ConfigureDisabledMenuAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/disabled/menu/ConfigureDisabledMenuAction.java b/src/main/java/net/sf/taverna/t2/activities/disabled/menu/ConfigureDisabledMenuAction.java
deleted file mode 100644
index 68a906e..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/disabled/menu/ConfigureDisabledMenuAction.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package net.sf.taverna.t2.activities.disabled.menu;
-
-import javax.swing.Action;
-
-import net.sf.taverna.t2.activities.disabled.actions.DisabledActivityConfigurationAction;
-import net.sf.taverna.t2.activities.disabled.views.DisabledActivityViewFactory;
-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;
-import net.sf.taverna.t2.workbench.report.ReportManager;
-
-public class ConfigureDisabledMenuAction extends AbstractConfigureActivityMenuAction {
-
-	private EditManager editManager;
-	private FileManager fileManager;
-	private ReportManager reportManager;
-	private ActivityIconManager activityIconManager;
-	private ServiceDescriptionRegistry serviceDescriptionRegistry;
-
-	public ConfigureDisabledMenuAction() {
-		super(DisabledActivityViewFactory.ACTIVITY_TYPE);
-	}
-
-	@Override
-	protected Action createAction() {
-		return new DisabledActivityConfigurationAction(findActivity(), getParentFrame(),
-				editManager, fileManager, reportManager, activityIconManager, serviceDescriptionRegistry);
-	}
-
-	public void setEditManager(EditManager editManager) {
-		this.editManager = editManager;
-	}
-
-	public void setFileManager(FileManager fileManager) {
-		this.fileManager = fileManager;
-	}
-
-	public void setReportManager(ReportManager reportManager) {
-		this.reportManager = reportManager;
-	}
-
-	public void setActivityIconManager(ActivityIconManager activityIconManager) {
-		this.activityIconManager = activityIconManager;
-	}
-
-	public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) {
-		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledActivityViewFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledActivityViewFactory.java b/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledActivityViewFactory.java
deleted file mode 100644
index a168974..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledActivityViewFactory.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package net.sf.taverna.t2.activities.disabled.views;
-
-import java.net.URI;
-import java.util.Arrays;
-import java.util.List;
-
-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.report.ReportManager;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
-import uk.org.taverna.scufl2.api.activity.Activity;
-
-/**
- * This class generates a contextual view for a DisabledActivity
- *
- * @author alanrw
- * @author David Withers
- */
-public class DisabledActivityViewFactory implements ContextualViewFactory<Activity> {
-
-	public static final URI ACTIVITY_TYPE = URI.create("http://ns.taverna.org.uk/2010/activity/disabled");
-
-	private EditManager editManager;
-	private FileManager fileManager;
-	private ReportManager reportManager;
-	private ActivityIconManager activityIconManager;
-	private ColourManager colourManager;
-	private ServiceDescriptionRegistry serviceDescriptionRegistry;
-
-	/**
-	 * The factory can handle a DisabledActivity
-	 *
-	 * @param object
-	 * @return
-	 */
-	public boolean canHandle(Object object) {
-		return object instanceof Activity && ((Activity) object).getType().equals(ACTIVITY_TYPE);
-	}
-
-	/**
-	 * Return a contextual view that can display information about a DisabledActivity
-	 *
-	 * @param activity
-	 * @return
-	 */
-	public List<ContextualView> getViews(Activity activity) {
-		return Arrays.asList(new ContextualView[] { new DisabledContextualView(activity,
-				editManager, fileManager, reportManager, colourManager, activityIconManager,
-				serviceDescriptionRegistry) });
-	}
-
-	public void setEditManager(EditManager editManager) {
-		this.editManager = editManager;
-	}
-
-	public void setFileManager(FileManager fileManager) {
-		this.fileManager = fileManager;
-	}
-
-	public void setReportManager(ReportManager reportManager) {
-		this.reportManager = reportManager;
-	}
-
-	public void setActivityIconManager(ActivityIconManager activityIconManager) {
-		this.activityIconManager = activityIconManager;
-	}
-
-	public void setColourManager(ColourManager colourManager) {
-		this.colourManager = colourManager;
-	}
-
-	public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) {
-		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledConfigView.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledConfigView.java b/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledConfigView.java
deleted file mode 100644
index 9c8c9cd..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledConfigView.java
+++ /dev/null
@@ -1,141 +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.activities.disabled.views;
-
-import java.awt.BorderLayout;
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.help.CSH;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-import uk.org.taverna.scufl2.api.activity.Activity;
-
-import net.sf.taverna.t2.lang.uibuilder.UIBuilder;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationPanel;
-
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.io.xml.DomDriver;
-
-@SuppressWarnings("serial")
-public class DisabledConfigView extends ActivityConfigurationPanel {
-
-	private ActivityAndBeanWrapper configuration;
-    private List<String> fieldNames;
-
-    private Object clonedConfig = null;
-    String origConfigXML = "";
-
-	public DisabledConfigView(Activity activity) {
-		super(activity);
-		setLayout(new BorderLayout());
-		fieldNames = null;
-		initialise();
-	}
-
-	private void initialise() {
-		CSH.setHelpIDString(
-				    this,
-				    "net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.DisabledConfigView");
-		configuration = activity.getConfiguration();
-		XStream xstream = new XStream(new DomDriver());
-		Activity a = configuration.getActivity();
-		xstream.setClassLoader(a.getClass().getClassLoader());
-		Object origConfig = configuration.getBean();
-		if (fieldNames == null) {
-		    fieldNames = getFieldNames(origConfig);
-		}
-		origConfigXML = xstream.toXML(origConfig);
-		clonedConfig  = xstream.fromXML(origConfigXML);
-		JPanel panel = UIBuilder.buildEditor(clonedConfig, (String[]) fieldNames.toArray(new String[0]));
-		this.add(panel, BorderLayout.CENTER);
-		this.revalidate();
-	}
-
-	@Override
-	public void refreshConfiguration() {
-	    this.removeAll();
-	    initialise();
-	}
-
-	public boolean checkValues() {
-	    boolean result = false;
-		result = activity.configurationWouldWork(clonedConfig);
-		if (!result) {
-		    JOptionPane.showMessageDialog(
-						  this,
-						  "The new properties are invalid or not consistent with the workflow",
-						  "Invalid properties", JOptionPane.WARNING_MESSAGE);
-		}
-	    return result;
-	}
-
-    public void noteConfiguration() {
-	if (isConfigurationChanged()) {
-	    ActivityAndBeanWrapper newConfig = new ActivityAndBeanWrapper();
-	    newConfig.setActivity(configuration.getActivity());
-	    newConfig.setBean(clonedConfig);
-	    configuration = newConfig;
-
-	    XStream xstream = new XStream(new DomDriver());
-	    xstream.setClassLoader(configuration.getActivity().getClass().getClassLoader());
-
-	    origConfigXML = xstream.toXML(clonedConfig);
-	}
-    }
-
-    @Override
-	public ActivityAndBeanWrapper getConfiguration() {
-	return configuration;
-    }
-
-    public boolean isConfigurationChanged() {
-	XStream xstream = new XStream(new DomDriver());
-	xstream.setClassLoader(configuration.getActivity().getClass().getClassLoader());
-	return (!xstream.toXML(clonedConfig).equals(origConfigXML));
-    }
-
-    private List<String> getFieldNames(Object config) {
-	List<String> result = new ArrayList<String>();
-	try {
-	    BeanInfo beanInfo = Introspector.getBeanInfo(config.getClass());
-	    for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
-		Method readMethod = pd.getReadMethod();
-		if ((readMethod != null) && !(pd.getName().equals("class"))) {
-		    try {
-			result.add(pd.getName());
-		    } catch (IllegalArgumentException ex) {
-			// ignore
-		    }
-		}
-	    }
-	} catch (IntrospectionException e) {
-	    // ignore
-	}
-	return result;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledContextualView.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledContextualView.java b/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledContextualView.java
deleted file mode 100644
index 9d60faa..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledContextualView.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.disabled.views;
-
-import java.awt.Frame;
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.Action;
-
-import net.sf.taverna.t2.activities.disabled.actions.DisabledActivityConfigurationAction;
-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.report.ReportManager;
-import net.sf.taverna.t2.workbench.ui.actions.activity.HTMLBasedActivityContextualView;
-import uk.org.taverna.scufl2.api.activity.Activity;
-import uk.org.taverna.scufl2.api.port.InputActivityPort;
-import uk.org.taverna.scufl2.api.port.OutputActivityPort;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-/**
- * A DisabledContextualView displays information about a DisabledActivity
- *
- * @author alanrw
- * @author David Withers
- */
-@SuppressWarnings("serial")
-public class DisabledContextualView extends HTMLBasedActivityContextualView {
-
-	private List<String> fieldNames;
-
-	private final EditManager editManager;
-	private final FileManager fileManager;
-	private final ReportManager reportManager;
-	private final ActivityIconManager activityIconManager;
-	private final ServiceDescriptionRegistry serviceDescriptionRegistry;
-
-	public DisabledContextualView(Activity activity, EditManager editManager,
-			FileManager fileManager, ReportManager reportManager, ColourManager colourManager,
-			ActivityIconManager activityIconManager, ServiceDescriptionRegistry serviceDescriptionRegistry) {
-		super(activity, colourManager);
-		this.editManager = editManager;
-		this.fileManager = fileManager;
-		this.reportManager = reportManager;
-		this.activityIconManager = activityIconManager;
-		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
-	}
-
-	/**
-	 * The table for the DisabledActivity shows its ports and the information within the offline
-	 * Activity's configuration.
-	 *
-	 * @return
-	 */
-	@Override
-	protected String getRawTableRowsHtml() {
-		StringBuilder html = new StringBuilder();
-		html.append("<tr><th>Input Port Name</th><th>Depth</th></tr>");
-		for (InputActivityPort inputActivityPort : getActivity().getInputPorts()) {
-			html.append("<tr><td>" + inputActivityPort.getName() + "</td><td>");
-			html.append(inputActivityPort.getDepth() + "</td></tr>");
-		}
-		html.append("<tr><th>Output Port Name</th><th>Depth</th></tr>");
-		for (OutputActivityPort outputActivityPort : getActivity().getOutputPorts()) {
-			html.append("<tr><td>" + outputActivityPort.getName() + "</td><td>");
-			html.append(outputActivityPort.getDepth() + "</td></tr>");
-		}
-
-		JsonNode config = getConfigBean().getJson();
-		try {
-			html.append("<tr><th>Property Name</th><th>Property Value</th></tr>");
-			BeanInfo beanInfo = Introspector.getBeanInfo(config.getClass());
-			for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
-				Method readMethod = pd.getReadMethod();
-				if ((readMethod != null) && !(pd.getName().equals("class"))) {
-					try {
-						html.append("<tr><td>");
-						html.append(pd.getName());
-						html.append("</td><td>");
-						html.append(readMethod.invoke(config));
-						html.append("</td></tr>");
-						if (fieldNames == null) {
-							fieldNames = new ArrayList<String>();
-						}
-						fieldNames.add(pd.getName());
-					} catch (IllegalAccessException ex) {
-						// ignore
-					} catch (IllegalArgumentException ex) {
-						// ignore
-					} catch (InvocationTargetException ex) {
-						// ignore
-					}
-				}
-			}
-		} catch (IntrospectionException e) {
-			// ignore
-		}
-		return html.toString();
-	}
-
-	@Override
-	public String getViewTitle() {
-		return "Unavailable service";
-	}
-
-	@Override
-	public int getPreferredPosition() {
-		return 100;
-	}
-
-	@Override
-	public Action getConfigureAction(Frame owner) {
-		return new DisabledActivityConfigurationAction(getActivity(), owner,
-				editManager, fileManager, reportManager, activityIconManager, serviceDescriptionRegistry);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
----------------------------------------------------------------------
diff --git a/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent b/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
deleted file mode 100644
index 022189a..0000000
--- a/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
+++ /dev/null
@@ -1 +0,0 @@
-net.sf.taverna.t2.activities.disabled.menu.ConfigureDisabledMenuAction
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
----------------------------------------------------------------------
diff --git a/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
deleted file mode 100644
index 80b0bf3..0000000
--- a/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
+++ /dev/null
@@ -1 +0,0 @@
-net.sf.taverna.t2.activities.disabled.views.DisabledActivityViewFactory

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/src/main/resources/META-INF/spring/disabled-activity-ui-context-osgi.xml
----------------------------------------------------------------------
diff --git a/src/main/resources/META-INF/spring/disabled-activity-ui-context-osgi.xml b/src/main/resources/META-INF/spring/disabled-activity-ui-context-osgi.xml
deleted file mode 100644
index f938272..0000000
--- a/src/main/resources/META-INF/spring/disabled-activity-ui-context-osgi.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans:beans xmlns="http://www.springframework.org/schema/osgi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:beans="http://www.springframework.org/schema/beans"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans.xsd
-                      http://www.springframework.org/schema/osgi
-                      http://www.springframework.org/schema/osgi/spring-osgi.xsd">
-
-	<service ref="ConfigureDisabledMenuAction" auto-export="interfaces" />
-
-	<service ref="DisabledActivityViewFactory" interface="net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory" />
-
-	<reference id="editManager" interface="net.sf.taverna.t2.workbench.edits.EditManager" />
-	<reference id="fileManager" interface="net.sf.taverna.t2.workbench.file.FileManager" />
-	<reference id="reportManager" interface="net.sf.taverna.t2.workbench.report.ReportManager" />
-	<reference id="activityIconManager" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconManager" />
-	<reference id="colourManager" interface="net.sf.taverna.t2.workbench.configuration.colour.ColourManager" />
-	<reference id="serviceDescriptionRegistry" interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry" />
-
-</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/src/main/resources/META-INF/spring/disabled-activity-ui-context.xml
----------------------------------------------------------------------
diff --git a/src/main/resources/META-INF/spring/disabled-activity-ui-context.xml b/src/main/resources/META-INF/spring/disabled-activity-ui-context.xml
deleted file mode 100644
index fbc0aa0..0000000
--- a/src/main/resources/META-INF/spring/disabled-activity-ui-context.xml
+++ /dev/null
@@ -1,23 +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="ConfigureDisabledMenuAction" class="net.sf.taverna.t2.activities.disabled.menu.ConfigureDisabledMenuAction">
-			<property name="editManager" ref="editManager" />
-			<property name="fileManager" ref="fileManager" />
-			<property name="reportManager" ref="reportManager" />
-			<property name="activityIconManager" ref="activityIconManager" />
-			<property name="serviceDescriptionRegistry" ref="serviceDescriptionRegistry" />
-	</bean>
-
-	<bean id="DisabledActivityViewFactory" class="net.sf.taverna.t2.activities.disabled.views.DisabledActivityViewFactory">
-			<property name="editManager" ref="editManager" />
-			<property name="fileManager" ref="fileManager" />
-			<property name="reportManager" ref="reportManager" />
-			<property name="activityIconManager" ref="activityIconManager" />
-			<property name="colourManager" ref="colourManager" />
-			<property name="serviceDescriptionRegistry" ref="serviceDescriptionRegistry" />
-	</bean>
-
-</beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/taverna-disabled-activity-ui/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-disabled-activity-ui/pom.xml b/taverna-disabled-activity-ui/pom.xml
new file mode 100644
index 0000000..ddbaf29
--- /dev/null
+++ b/taverna-disabled-activity-ui/pom.xml
@@ -0,0 +1,94 @@
+<?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</groupId>
+                <artifactId>taverna-parent</artifactId>
+                <version>3.0.1-SNAPSHOT</version>
+	</parent>
+	<groupId>net.sf.taverna.t2.ui-activities</groupId>
+	<artifactId>disabled-activity-ui</artifactId>
+	<version>2.0.1-SNAPSHOT</version>
+	<packaging>bundle</packaging>
+	<name>Taverna 2 Disabled Activity UI</name>
+	<dependencies>
+		<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>menu-api</artifactId>
+			<version>${t2.ui.api.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-api</groupId>
+			<artifactId>report-api</artifactId>
+			<version>${t2.ui.api.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-impl</groupId>
+			<artifactId>contextual-views-impl</artifactId>
+			<version>${t2.ui.impl.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-api</groupId>
+			<artifactId>activity-tools</artifactId>
+			<version>${t2.ui.api.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-components</groupId>
+			<artifactId>workflow-view</artifactId>
+			<version>${t2.ui.components.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.activities</groupId>
+			<artifactId>beanshell-activity</artifactId>
+			<version>${t2.activities.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.help</groupId>
+			<artifactId>javahelp</artifactId>
+			<version>${javahelp.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.lang</groupId>
+			<artifactId>uibuilder</artifactId>
+			<version>${t2.lang.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-impl</groupId>
+			<artifactId>helper</artifactId>
+			<version>${t2.ui.impl.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>
+        <scm>
+                <connection>scm:git:https://github.com/taverna/taverna-disabled-activity-ui.git</connection>
+                <developerConnection>scm:git:ssh://git@github.com/taverna/taverna-disabled-activity-ui.git</developerConnection>
+                <url>https://github.com/taverna/taverna-disabled-activity-ui/</url>
+                <tag>HEAD</tag>
+        </scm>
+</project>
+

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/actions/DisabledActivityConfigurationAction.java
----------------------------------------------------------------------
diff --git a/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/actions/DisabledActivityConfigurationAction.java b/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/actions/DisabledActivityConfigurationAction.java
new file mode 100644
index 0000000..c71d483
--- /dev/null
+++ b/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/actions/DisabledActivityConfigurationAction.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * 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.activities.disabled.actions;
+
+import java.awt.Component;
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.JOptionPane;
+
+import uk.org.taverna.scufl2.api.activity.Activity;
+
+import net.sf.taverna.t2.activities.disabled.views.DisabledConfigView;
+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.report.ReportManager;
+import net.sf.taverna.t2.workbench.ui.actions.activity.ActivityConfigurationAction;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationDialog;
+
+@SuppressWarnings("serial")
+public class DisabledActivityConfigurationAction extends ActivityConfigurationAction {
+
+	public static final String FIX_DISABLED = "Edit properties";
+	private final EditManager editManager;
+	private final FileManager fileManager;
+	private final ReportManager reportManager;
+
+	public DisabledActivityConfigurationAction(Activity activity, Frame owner,
+			EditManager editManager, FileManager fileManager, ReportManager reportManager,
+			ActivityIconManager activityIconManager, ServiceDescriptionRegistry serviceDescriptionRegistry) {
+		super(activity, activityIconManager, serviceDescriptionRegistry);
+		this.editManager = editManager;
+		this.fileManager = fileManager;
+		this.reportManager = reportManager;
+		putValue(NAME, FIX_DISABLED);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		ActivityConfigurationDialog currentDialog = ActivityConfigurationAction
+				.getDialog(getActivity());
+		if (currentDialog != null) {
+			currentDialog.toFront();
+			return;
+		}
+		int answer = JOptionPane.showConfirmDialog((Component) e.getSource(),
+				"Directly editing properties can be dangerous. Are you sure you want to proceed?",
+				"Confirm editing", JOptionPane.YES_NO_OPTION);
+		if (answer != JOptionPane.YES_OPTION) {
+			return;
+		}
+
+		final DisabledConfigView disabledConfigView = new DisabledConfigView(getActivity());
+		final DisabledActivityConfigurationDialog dialog = new DisabledActivityConfigurationDialog(
+				getActivity(), disabledConfigView);
+
+		ActivityConfigurationAction.setDialog(getActivity(), dialog, fileManager);
+
+	}
+
+	private class DisabledActivityConfigurationDialog extends ActivityConfigurationDialog {
+		public DisabledActivityConfigurationDialog(Activity a, DisabledConfigView p) {
+			super(a, p, editManager);
+			this.setModal(true);
+			super.applyButton.setEnabled(false);
+			super.applyButton.setVisible(false);
+		}
+
+		public void configureActivity(Dataflow df, Activity a, Object bean) {
+			Edit<?> configureActivityEdit = editManager.getEdits()
+					.getConfigureActivityEdit(a, bean);
+			try {
+				List<Edit<?>> editList = new ArrayList<Edit<?>>();
+				editList.add(configureActivityEdit);
+				Processor p = findProcessor(df, a);
+				if (p != null && p.getActivityList().size() == 1) {
+					editList.add(editManager.getEdits().getMapProcessorPortsForActivityEdit(p));
+				}
+				Edit e = Tools.getEnableDisabledActivityEdit(super.owningProcessor, activity,
+						editManager.getEdits());
+				if (e != null) {
+					editList.add(e);
+					editManager.doDataflowEdit(df, new CompoundEdit(editList));
+					reportManager.updateObjectReport(super.owningDataflow, super.owningProcessor);
+
+				}
+			} catch (IllegalStateException e) {
+				// TODO Auto-generated catch block
+				logger.error(e);
+			} catch (EditException e) {
+				logger.error(e);
+			}
+		}
+
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/menu/ConfigureDisabledMenuAction.java
----------------------------------------------------------------------
diff --git a/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/menu/ConfigureDisabledMenuAction.java b/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/menu/ConfigureDisabledMenuAction.java
new file mode 100644
index 0000000..68a906e
--- /dev/null
+++ b/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/menu/ConfigureDisabledMenuAction.java
@@ -0,0 +1,52 @@
+package net.sf.taverna.t2.activities.disabled.menu;
+
+import javax.swing.Action;
+
+import net.sf.taverna.t2.activities.disabled.actions.DisabledActivityConfigurationAction;
+import net.sf.taverna.t2.activities.disabled.views.DisabledActivityViewFactory;
+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;
+import net.sf.taverna.t2.workbench.report.ReportManager;
+
+public class ConfigureDisabledMenuAction extends AbstractConfigureActivityMenuAction {
+
+	private EditManager editManager;
+	private FileManager fileManager;
+	private ReportManager reportManager;
+	private ActivityIconManager activityIconManager;
+	private ServiceDescriptionRegistry serviceDescriptionRegistry;
+
+	public ConfigureDisabledMenuAction() {
+		super(DisabledActivityViewFactory.ACTIVITY_TYPE);
+	}
+
+	@Override
+	protected Action createAction() {
+		return new DisabledActivityConfigurationAction(findActivity(), getParentFrame(),
+				editManager, fileManager, reportManager, activityIconManager, serviceDescriptionRegistry);
+	}
+
+	public void setEditManager(EditManager editManager) {
+		this.editManager = editManager;
+	}
+
+	public void setFileManager(FileManager fileManager) {
+		this.fileManager = fileManager;
+	}
+
+	public void setReportManager(ReportManager reportManager) {
+		this.reportManager = reportManager;
+	}
+
+	public void setActivityIconManager(ActivityIconManager activityIconManager) {
+		this.activityIconManager = activityIconManager;
+	}
+
+	public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) {
+		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledActivityViewFactory.java
----------------------------------------------------------------------
diff --git a/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledActivityViewFactory.java b/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledActivityViewFactory.java
new file mode 100644
index 0000000..a168974
--- /dev/null
+++ b/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledActivityViewFactory.java
@@ -0,0 +1,80 @@
+package net.sf.taverna.t2.activities.disabled.views;
+
+import java.net.URI;
+import java.util.Arrays;
+import java.util.List;
+
+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.report.ReportManager;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
+import uk.org.taverna.scufl2.api.activity.Activity;
+
+/**
+ * This class generates a contextual view for a DisabledActivity
+ *
+ * @author alanrw
+ * @author David Withers
+ */
+public class DisabledActivityViewFactory implements ContextualViewFactory<Activity> {
+
+	public static final URI ACTIVITY_TYPE = URI.create("http://ns.taverna.org.uk/2010/activity/disabled");
+
+	private EditManager editManager;
+	private FileManager fileManager;
+	private ReportManager reportManager;
+	private ActivityIconManager activityIconManager;
+	private ColourManager colourManager;
+	private ServiceDescriptionRegistry serviceDescriptionRegistry;
+
+	/**
+	 * The factory can handle a DisabledActivity
+	 *
+	 * @param object
+	 * @return
+	 */
+	public boolean canHandle(Object object) {
+		return object instanceof Activity && ((Activity) object).getType().equals(ACTIVITY_TYPE);
+	}
+
+	/**
+	 * Return a contextual view that can display information about a DisabledActivity
+	 *
+	 * @param activity
+	 * @return
+	 */
+	public List<ContextualView> getViews(Activity activity) {
+		return Arrays.asList(new ContextualView[] { new DisabledContextualView(activity,
+				editManager, fileManager, reportManager, colourManager, activityIconManager,
+				serviceDescriptionRegistry) });
+	}
+
+	public void setEditManager(EditManager editManager) {
+		this.editManager = editManager;
+	}
+
+	public void setFileManager(FileManager fileManager) {
+		this.fileManager = fileManager;
+	}
+
+	public void setReportManager(ReportManager reportManager) {
+		this.reportManager = reportManager;
+	}
+
+	public void setActivityIconManager(ActivityIconManager activityIconManager) {
+		this.activityIconManager = activityIconManager;
+	}
+
+	public void setColourManager(ColourManager colourManager) {
+		this.colourManager = colourManager;
+	}
+
+	public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) {
+		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledConfigView.java
----------------------------------------------------------------------
diff --git a/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledConfigView.java b/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledConfigView.java
new file mode 100644
index 0000000..9c8c9cd
--- /dev/null
+++ b/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledConfigView.java
@@ -0,0 +1,141 @@
+/*******************************************************************************
+ * 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.activities.disabled.views;
+
+import java.awt.BorderLayout;
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.help.CSH;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+import uk.org.taverna.scufl2.api.activity.Activity;
+
+import net.sf.taverna.t2.lang.uibuilder.UIBuilder;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationPanel;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
+
+@SuppressWarnings("serial")
+public class DisabledConfigView extends ActivityConfigurationPanel {
+
+	private ActivityAndBeanWrapper configuration;
+    private List<String> fieldNames;
+
+    private Object clonedConfig = null;
+    String origConfigXML = "";
+
+	public DisabledConfigView(Activity activity) {
+		super(activity);
+		setLayout(new BorderLayout());
+		fieldNames = null;
+		initialise();
+	}
+
+	private void initialise() {
+		CSH.setHelpIDString(
+				    this,
+				    "net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.DisabledConfigView");
+		configuration = activity.getConfiguration();
+		XStream xstream = new XStream(new DomDriver());
+		Activity a = configuration.getActivity();
+		xstream.setClassLoader(a.getClass().getClassLoader());
+		Object origConfig = configuration.getBean();
+		if (fieldNames == null) {
+		    fieldNames = getFieldNames(origConfig);
+		}
+		origConfigXML = xstream.toXML(origConfig);
+		clonedConfig  = xstream.fromXML(origConfigXML);
+		JPanel panel = UIBuilder.buildEditor(clonedConfig, (String[]) fieldNames.toArray(new String[0]));
+		this.add(panel, BorderLayout.CENTER);
+		this.revalidate();
+	}
+
+	@Override
+	public void refreshConfiguration() {
+	    this.removeAll();
+	    initialise();
+	}
+
+	public boolean checkValues() {
+	    boolean result = false;
+		result = activity.configurationWouldWork(clonedConfig);
+		if (!result) {
+		    JOptionPane.showMessageDialog(
+						  this,
+						  "The new properties are invalid or not consistent with the workflow",
+						  "Invalid properties", JOptionPane.WARNING_MESSAGE);
+		}
+	    return result;
+	}
+
+    public void noteConfiguration() {
+	if (isConfigurationChanged()) {
+	    ActivityAndBeanWrapper newConfig = new ActivityAndBeanWrapper();
+	    newConfig.setActivity(configuration.getActivity());
+	    newConfig.setBean(clonedConfig);
+	    configuration = newConfig;
+
+	    XStream xstream = new XStream(new DomDriver());
+	    xstream.setClassLoader(configuration.getActivity().getClass().getClassLoader());
+
+	    origConfigXML = xstream.toXML(clonedConfig);
+	}
+    }
+
+    @Override
+	public ActivityAndBeanWrapper getConfiguration() {
+	return configuration;
+    }
+
+    public boolean isConfigurationChanged() {
+	XStream xstream = new XStream(new DomDriver());
+	xstream.setClassLoader(configuration.getActivity().getClass().getClassLoader());
+	return (!xstream.toXML(clonedConfig).equals(origConfigXML));
+    }
+
+    private List<String> getFieldNames(Object config) {
+	List<String> result = new ArrayList<String>();
+	try {
+	    BeanInfo beanInfo = Introspector.getBeanInfo(config.getClass());
+	    for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+		Method readMethod = pd.getReadMethod();
+		if ((readMethod != null) && !(pd.getName().equals("class"))) {
+		    try {
+			result.add(pd.getName());
+		    } catch (IllegalArgumentException ex) {
+			// ignore
+		    }
+		}
+	    }
+	} catch (IntrospectionException e) {
+	    // ignore
+	}
+	return result;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledContextualView.java
----------------------------------------------------------------------
diff --git a/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledContextualView.java b/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledContextualView.java
new file mode 100644
index 0000000..9d60faa
--- /dev/null
+++ b/taverna-disabled-activity-ui/src/main/java/net/sf/taverna/t2/activities/disabled/views/DisabledContextualView.java
@@ -0,0 +1,128 @@
+/**
+ *
+ */
+package net.sf.taverna.t2.activities.disabled.views;
+
+import java.awt.Frame;
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.Action;
+
+import net.sf.taverna.t2.activities.disabled.actions.DisabledActivityConfigurationAction;
+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.report.ReportManager;
+import net.sf.taverna.t2.workbench.ui.actions.activity.HTMLBasedActivityContextualView;
+import uk.org.taverna.scufl2.api.activity.Activity;
+import uk.org.taverna.scufl2.api.port.InputActivityPort;
+import uk.org.taverna.scufl2.api.port.OutputActivityPort;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+/**
+ * A DisabledContextualView displays information about a DisabledActivity
+ *
+ * @author alanrw
+ * @author David Withers
+ */
+@SuppressWarnings("serial")
+public class DisabledContextualView extends HTMLBasedActivityContextualView {
+
+	private List<String> fieldNames;
+
+	private final EditManager editManager;
+	private final FileManager fileManager;
+	private final ReportManager reportManager;
+	private final ActivityIconManager activityIconManager;
+	private final ServiceDescriptionRegistry serviceDescriptionRegistry;
+
+	public DisabledContextualView(Activity activity, EditManager editManager,
+			FileManager fileManager, ReportManager reportManager, ColourManager colourManager,
+			ActivityIconManager activityIconManager, ServiceDescriptionRegistry serviceDescriptionRegistry) {
+		super(activity, colourManager);
+		this.editManager = editManager;
+		this.fileManager = fileManager;
+		this.reportManager = reportManager;
+		this.activityIconManager = activityIconManager;
+		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+	}
+
+	/**
+	 * The table for the DisabledActivity shows its ports and the information within the offline
+	 * Activity's configuration.
+	 *
+	 * @return
+	 */
+	@Override
+	protected String getRawTableRowsHtml() {
+		StringBuilder html = new StringBuilder();
+		html.append("<tr><th>Input Port Name</th><th>Depth</th></tr>");
+		for (InputActivityPort inputActivityPort : getActivity().getInputPorts()) {
+			html.append("<tr><td>" + inputActivityPort.getName() + "</td><td>");
+			html.append(inputActivityPort.getDepth() + "</td></tr>");
+		}
+		html.append("<tr><th>Output Port Name</th><th>Depth</th></tr>");
+		for (OutputActivityPort outputActivityPort : getActivity().getOutputPorts()) {
+			html.append("<tr><td>" + outputActivityPort.getName() + "</td><td>");
+			html.append(outputActivityPort.getDepth() + "</td></tr>");
+		}
+
+		JsonNode config = getConfigBean().getJson();
+		try {
+			html.append("<tr><th>Property Name</th><th>Property Value</th></tr>");
+			BeanInfo beanInfo = Introspector.getBeanInfo(config.getClass());
+			for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+				Method readMethod = pd.getReadMethod();
+				if ((readMethod != null) && !(pd.getName().equals("class"))) {
+					try {
+						html.append("<tr><td>");
+						html.append(pd.getName());
+						html.append("</td><td>");
+						html.append(readMethod.invoke(config));
+						html.append("</td></tr>");
+						if (fieldNames == null) {
+							fieldNames = new ArrayList<String>();
+						}
+						fieldNames.add(pd.getName());
+					} catch (IllegalAccessException ex) {
+						// ignore
+					} catch (IllegalArgumentException ex) {
+						// ignore
+					} catch (InvocationTargetException ex) {
+						// ignore
+					}
+				}
+			}
+		} catch (IntrospectionException e) {
+			// ignore
+		}
+		return html.toString();
+	}
+
+	@Override
+	public String getViewTitle() {
+		return "Unavailable service";
+	}
+
+	@Override
+	public int getPreferredPosition() {
+		return 100;
+	}
+
+	@Override
+	public Action getConfigureAction(Frame owner) {
+		return new DisabledActivityConfigurationAction(getActivity(), owner,
+				editManager, fileManager, reportManager, activityIconManager, serviceDescriptionRegistry);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/taverna-disabled-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
----------------------------------------------------------------------
diff --git a/taverna-disabled-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent b/taverna-disabled-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
new file mode 100644
index 0000000..022189a
--- /dev/null
+++ b/taverna-disabled-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
@@ -0,0 +1 @@
+net.sf.taverna.t2.activities.disabled.menu.ConfigureDisabledMenuAction
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/taverna-disabled-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
----------------------------------------------------------------------
diff --git a/taverna-disabled-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/taverna-disabled-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
new file mode 100644
index 0000000..80b0bf3
--- /dev/null
+++ b/taverna-disabled-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
@@ -0,0 +1 @@
+net.sf.taverna.t2.activities.disabled.views.DisabledActivityViewFactory

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/taverna-disabled-activity-ui/src/main/resources/META-INF/spring/disabled-activity-ui-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-disabled-activity-ui/src/main/resources/META-INF/spring/disabled-activity-ui-context-osgi.xml b/taverna-disabled-activity-ui/src/main/resources/META-INF/spring/disabled-activity-ui-context-osgi.xml
new file mode 100644
index 0000000..f938272
--- /dev/null
+++ b/taverna-disabled-activity-ui/src/main/resources/META-INF/spring/disabled-activity-ui-context-osgi.xml
@@ -0,0 +1,20 @@
+<?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="ConfigureDisabledMenuAction" auto-export="interfaces" />
+
+	<service ref="DisabledActivityViewFactory" interface="net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory" />
+
+	<reference id="editManager" interface="net.sf.taverna.t2.workbench.edits.EditManager" />
+	<reference id="fileManager" interface="net.sf.taverna.t2.workbench.file.FileManager" />
+	<reference id="reportManager" interface="net.sf.taverna.t2.workbench.report.ReportManager" />
+	<reference id="activityIconManager" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconManager" />
+	<reference id="colourManager" interface="net.sf.taverna.t2.workbench.configuration.colour.ColourManager" />
+	<reference id="serviceDescriptionRegistry" interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry" />
+
+</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/ceb6e91f/taverna-disabled-activity-ui/src/main/resources/META-INF/spring/disabled-activity-ui-context.xml
----------------------------------------------------------------------
diff --git a/taverna-disabled-activity-ui/src/main/resources/META-INF/spring/disabled-activity-ui-context.xml b/taverna-disabled-activity-ui/src/main/resources/META-INF/spring/disabled-activity-ui-context.xml
new file mode 100644
index 0000000..fbc0aa0
--- /dev/null
+++ b/taverna-disabled-activity-ui/src/main/resources/META-INF/spring/disabled-activity-ui-context.xml
@@ -0,0 +1,23 @@
+<?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="ConfigureDisabledMenuAction" class="net.sf.taverna.t2.activities.disabled.menu.ConfigureDisabledMenuAction">
+			<property name="editManager" ref="editManager" />
+			<property name="fileManager" ref="fileManager" />
+			<property name="reportManager" ref="reportManager" />
+			<property name="activityIconManager" ref="activityIconManager" />
+			<property name="serviceDescriptionRegistry" ref="serviceDescriptionRegistry" />
+	</bean>
+
+	<bean id="DisabledActivityViewFactory" class="net.sf.taverna.t2.activities.disabled.views.DisabledActivityViewFactory">
+			<property name="editManager" ref="editManager" />
+			<property name="fileManager" ref="fileManager" />
+			<property name="reportManager" ref="reportManager" />
+			<property name="activityIconManager" ref="activityIconManager" />
+			<property name="colourManager" ref="colourManager" />
+			<property name="serviceDescriptionRegistry" ref="serviceDescriptionRegistry" />
+	</bean>
+
+</beans>