Cleaning up
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CopyGraphComponentAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CopyGraphComponentAction.java
index 74717f3..ae2defa 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CopyGraphComponentAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CopyGraphComponentAction.java
@@ -20,55 +20,52 @@
  ******************************************************************************/
 package net.sf.taverna.t2.workbench.ui.actions;
 
-import java.awt.Toolkit;
+import static java.awt.Toolkit.getDefaultToolkit;
+import static java.awt.event.KeyEvent.VK_C;
+import static java.awt.event.KeyEvent.VK_Y;
+import static javax.swing.KeyStroke.getKeyStroke;
+import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.copyIcon;
+import static net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView.copyProcessor;
+
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 import java.util.Set;
 
 import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.KeyStroke;
 
 import net.sf.taverna.t2.lang.observer.Observable;
 import net.sf.taverna.t2.lang.observer.Observer;
 import net.sf.taverna.t2.lang.observer.SwingAwareObserver;
 import net.sf.taverna.t2.ui.menu.DesignOnlyAction;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.icons.WorkbenchIcons;
 import net.sf.taverna.t2.workbench.selection.DataflowSelectionModel;
 import net.sf.taverna.t2.workbench.selection.SelectionManager;
 import net.sf.taverna.t2.workbench.selection.events.DataflowSelectionMessage;
-import net.sf.taverna.t2.workbench.selection.events.WorkflowBundleSelectionEvent;
 import net.sf.taverna.t2.workbench.selection.events.SelectionManagerEvent;
-import net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView;
-
-import org.apache.log4j.Logger;
-
+import net.sf.taverna.t2.workbench.selection.events.WorkflowBundleSelectionEvent;
 import uk.org.taverna.scufl2.api.container.WorkflowBundle;
 import uk.org.taverna.scufl2.api.core.Processor;
 
 /**
  * An action that copies the selected graph component.
- *
+ * 
  * @author Alan R Williams
- *
+ * 
  */
 @SuppressWarnings("serial")
-public class CopyGraphComponentAction extends AbstractAction implements DesignOnlyAction {
-
-	/* Current workflow's selection model event observer. */
+public class CopyGraphComponentAction extends AbstractAction implements
+		DesignOnlyAction {
+	/** Current workflow's selection model event observer. */
 	private Observer<DataflowSelectionMessage> workflowSelectionObserver = new DataflowSelectionObserver();
-
 	private final SelectionManager selectionManager;
 
-	public CopyGraphComponentAction(final SelectionManager selectionManager) {
-		super("Copy", WorkbenchIcons.copyIcon);
+	public CopyGraphComponentAction(SelectionManager selectionManager) {
+		super("Copy", copyIcon);
 		this.selectionManager = selectionManager;
 		putValue(SHORT_DESCRIPTION, "Copy selected component");
-		putValue(Action.MNEMONIC_KEY, KeyEvent.VK_Y);
+		putValue(MNEMONIC_KEY, VK_Y);
 
-		putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit
-				.getDefaultToolkit().getMenuShortcutKeyMask()));
+		putValue(
+				ACCELERATOR_KEY,
+				getKeyStroke(VK_C, getDefaultToolkit().getMenuShortcutKeyMask()));
 		setEnabled(false);
 
 		selectionManager.addObserver(new SelectionManagerObserver());
@@ -78,28 +75,29 @@
 	 * Check if action should be enabled or disabled and update its status.
 	 */
 	public void updateStatus() {
-		WorkflowBundle workflowBundle = selectionManager.getSelectedWorkflowBundle();
-		DataflowSelectionModel selectionModel = selectionManager.getDataflowSelectionModel(workflowBundle);
+		WorkflowBundle workflowBundle = selectionManager
+				.getSelectedWorkflowBundle();
+		DataflowSelectionModel selectionModel = selectionManager
+				.getDataflowSelectionModel(workflowBundle);
 
 		// List of all selected objects in the graph view
 		Set<Object> selection = selectionModel.getSelection();
 
-		if (selection.isEmpty()) {
+		if (selection.isEmpty())
 			setEnabled(false);
-		} else {
-			// Take the first selected item - we only support single selections
-			// anyway
+		else {
+			/*
+			 * Take the first selected item - we only support single selections
+			 * anyway
+			 */
 			Object selected = selection.toArray()[0];
-			if (selected instanceof Processor) {
-				setEnabled(true);
-			} else {
-				setEnabled(false);
-			}
+			setEnabled (selected instanceof Processor);
 		}
 	}
 
+	@Override
 	public void actionPerformed(ActionEvent e) {
-		WorkflowView.copyProcessor(selectionManager);
+		copyProcessor(selectionManager);
 	}
 
 	/**
@@ -107,34 +105,39 @@
 	 * is selected in the graph view, and enables/disables this action
 	 * accordingly.
 	 */
-	private final class DataflowSelectionObserver extends SwingAwareObserver<DataflowSelectionMessage> {
+	private final class DataflowSelectionObserver extends
+			SwingAwareObserver<DataflowSelectionMessage> {
 		@Override
-		public void notifySwing(Observable<DataflowSelectionMessage> sender, DataflowSelectionMessage message) {
+		public void notifySwing(Observable<DataflowSelectionMessage> sender,
+				DataflowSelectionMessage message) {
 			updateStatus();
 		}
 	}
 
-	private final class SelectionManagerObserver extends SwingAwareObserver<SelectionManagerEvent> {
+	private final class SelectionManagerObserver extends
+			SwingAwareObserver<SelectionManagerEvent> {
 		@Override
-		public void notifySwing(Observable<SelectionManagerEvent> sender, SelectionManagerEvent message) {
+		public void notifySwing(Observable<SelectionManagerEvent> sender,
+				SelectionManagerEvent message) {
 			if (message instanceof WorkflowBundleSelectionEvent) {
-				WorkflowBundleSelectionEvent workflowBundleSelectionEvent = (WorkflowBundleSelectionEvent) message;
-				WorkflowBundle oldFlow = workflowBundleSelectionEvent.getPreviouslySelectedWorkflowBundle();
-				WorkflowBundle newFlow = workflowBundleSelectionEvent.getSelectedWorkflowBundle();
+				WorkflowBundleSelectionEvent event = (WorkflowBundleSelectionEvent) message;
+				WorkflowBundle oldFlow = event
+						.getPreviouslySelectedWorkflowBundle();
+				WorkflowBundle newFlow = event.getSelectedWorkflowBundle();
 				// Update the buttons status as current dataflow has changed
 				updateStatus();
 
-				// Remove the workflow selection model listener from the previous (if any)
-				// and add to the new workflow (if any)
-				if (oldFlow != null) {
-					selectionManager.getDataflowSelectionModel(oldFlow).removeObserver(workflowSelectionObserver);
-				}
-
-				if (newFlow != null) {
-					selectionManager.getDataflowSelectionModel(newFlow).addObserver(workflowSelectionObserver);
-				}
+				/*
+				 * Remove the workflow selection model listener from the
+				 * previous (if any) and add to the new workflow (if any)
+				 */
+				if (oldFlow != null)
+					selectionManager.getDataflowSelectionModel(oldFlow)
+							.removeObserver(workflowSelectionObserver);
+				if (newFlow != null)
+					selectionManager.getDataflowSelectionModel(newFlow)
+							.addObserver(workflowSelectionObserver);
 			}
 		}
 	}
-
 }
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CopyProcessorAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CopyProcessorAction.java
index c4de04b..b262b76 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CopyProcessorAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CopyProcessorAction.java
@@ -20,39 +20,34 @@
  ******************************************************************************/
 package net.sf.taverna.t2.workbench.ui.actions;
 
+import static java.awt.event.KeyEvent.VK_Y;
+import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.copyIcon;
+import static net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView.copyProcessor;
+
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 
 import javax.swing.AbstractAction;
-import javax.swing.Action;
-
-import net.sf.taverna.t2.workbench.icons.WorkbenchIcons;
-import net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView;
-
-import org.apache.log4j.Logger;
 
 import uk.org.taverna.scufl2.api.core.Processor;
 
 /**
  * Action for copying a processor.
- *
+ * 
  * @author Alan R Williams
  */
+@SuppressWarnings("serial")
 public class CopyProcessorAction extends AbstractAction {
-
-	private static Logger logger = Logger.getLogger(CopyProcessorAction.class);
-
 	private Processor processor;
 
 	public CopyProcessorAction(Processor processor) {
 		this.processor = processor;
-		putValue(SMALL_ICON, WorkbenchIcons.copyIcon);
+		putValue(SMALL_ICON, copyIcon);
 		putValue(NAME, "Copy");
-		putValue(Action.MNEMONIC_KEY, KeyEvent.VK_Y);
+		putValue(MNEMONIC_KEY, VK_Y);
 	}
 
+	@Override
 	public void actionPerformed(ActionEvent e) {
-			WorkflowView.copyProcessor(processor);
+		copyProcessor(processor);
 	}
-
 }
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CutGraphComponentAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CutGraphComponentAction.java
index ae4e37f..c798c5e 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CutGraphComponentAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CutGraphComponentAction.java
@@ -20,31 +20,28 @@
  ******************************************************************************/
 package net.sf.taverna.t2.workbench.ui.actions;
 
-import java.awt.Toolkit;
+import static java.awt.Toolkit.getDefaultToolkit;
+import static java.awt.event.KeyEvent.VK_T;
+import static java.awt.event.KeyEvent.VK_X;
+import static javax.swing.KeyStroke.getKeyStroke;
+import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.cutIcon;
+import static net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView.cutProcessor;
+
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 import java.util.Set;
 
 import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.KeyStroke;
 
 import net.sf.taverna.t2.lang.observer.Observable;
 import net.sf.taverna.t2.lang.observer.Observer;
 import net.sf.taverna.t2.lang.observer.SwingAwareObserver;
 import net.sf.taverna.t2.ui.menu.DesignOnlyAction;
 import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.icons.WorkbenchIcons;
 import net.sf.taverna.t2.workbench.selection.DataflowSelectionModel;
 import net.sf.taverna.t2.workbench.selection.SelectionManager;
 import net.sf.taverna.t2.workbench.selection.events.DataflowSelectionMessage;
-import net.sf.taverna.t2.workbench.selection.events.WorkflowBundleSelectionEvent;
 import net.sf.taverna.t2.workbench.selection.events.SelectionManagerEvent;
-import net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView;
-
-import org.apache.log4j.Logger;
-
+import net.sf.taverna.t2.workbench.selection.events.WorkflowBundleSelectionEvent;
 import uk.org.taverna.scufl2.api.container.WorkflowBundle;
 import uk.org.taverna.scufl2.api.core.Processor;
 
@@ -52,29 +49,27 @@
  * An action that copies the selected graph component.
  *
  * @author Alan R Williams
- *
  */
 @SuppressWarnings("serial")
 public class CutGraphComponentAction extends AbstractAction implements DesignOnlyAction {
-
-	/* Current workflow's selection model event observer. */
+	/** Current workflow's selection model event observer. */
 	private Observer<DataflowSelectionMessage> workflowSelectionObserver = new DataflowSelectionObserver();
 
-	private WorkflowBundle dataflow;
 	private Processor processor;
 
 	private final EditManager editManager;
 	private final SelectionManager selectionManager;
 
 	public CutGraphComponentAction(EditManager editManager, SelectionManager selectionManager) {
-		super("Cut", WorkbenchIcons.cutIcon);
+		super("Cut", cutIcon);
 		this.editManager = editManager;
 		this.selectionManager = selectionManager;
 		putValue(SHORT_DESCRIPTION, "Cut selected component");
-		putValue(Action.MNEMONIC_KEY, KeyEvent.VK_T);
+		putValue(MNEMONIC_KEY, VK_T);
 
-		putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit
-				.getDefaultToolkit().getMenuShortcutKeyMask()));
+		putValue(
+				ACCELERATOR_KEY,
+				getKeyStroke(VK_X, getDefaultToolkit().getMenuShortcutKeyMask()));
 		setEnabled(false);
 
 		selectionManager.addObserver(new SelectionManagerObserver());
@@ -84,40 +79,46 @@
 	 * Check if action should be enabled or disabled and update its status.
 	 */
 	public void updateStatus() {
-		WorkflowBundle workflowBundle = selectionManager.getSelectedWorkflowBundle();
-		DataflowSelectionModel selectionModel = selectionManager.getDataflowSelectionModel(workflowBundle);
+		WorkflowBundle workflowBundle = selectionManager
+				.getSelectedWorkflowBundle();
+		DataflowSelectionModel selectionModel = selectionManager
+				.getDataflowSelectionModel(workflowBundle);
 
 		// List of all selected objects in the graph view
 		Set<Object> selection = selectionModel.getSelection();
 
-		if (selection.isEmpty()) {
+		if (selection.isEmpty())
 			setEnabled(false);
-		} else {
-			// Take the first selected item - we only support single selections anyway
+		else {
+			/*
+			 * Take the first selected item - we only support single selections
+			 * anyway
+			 */
 			Object selected = selection.toArray()[0];
 			if (selected instanceof Processor) {
 				processor = (Processor) selected;
-				this.dataflow = dataflow;
 				setEnabled(true);
-			} else {
+			} else
 				setEnabled(false);
-			}
 		}
 	}
 
+	@Override
 	public void actionPerformed(ActionEvent e) {
-		WorkflowView.cutProcessor(processor.getParent(), processor, null, editManager,
+		cutProcessor(processor.getParent(), processor, null, editManager,
 				selectionManager);
 	}
 
 	/**
-	 * Observes events on workflow Selection Manager, i.e. when a workflow node is selected in the
-	 * graph view, and enables/disables this action accordingly.
+	 * Observes events on workflow Selection Manager, i.e. when a workflow node
+	 * is selected in the graph view, and enables/disables this action
+	 * accordingly.
 	 */
 	private final class DataflowSelectionObserver extends
 			SwingAwareObserver<DataflowSelectionMessage> {
 		@Override
-		public void notifySwing(Observable<DataflowSelectionMessage> sender, DataflowSelectionMessage message) {
+		public void notifySwing(Observable<DataflowSelectionMessage> sender,
+				DataflowSelectionMessage message) {
 			updateStatus();
 		}
 	}
@@ -136,19 +137,17 @@
 				// Update the buttons status as current dataflow has changed
 				updateStatus();
 
-				// Remove the workflow selection model listener from the previous (if any)
-				// and add to the new workflow (if any)
-				if (oldFlow != null) {
-					selectionManager.getDataflowSelectionModel(oldFlow).removeObserver(
-							workflowSelectionObserver);
-				}
-
-				if (newFlow != null) {
-					selectionManager.getDataflowSelectionModel(newFlow).addObserver(
-							workflowSelectionObserver);
-				}
+				/*
+				 * Remove the workflow selection model listener from the
+				 * previous (if any) and add to the new workflow (if any)
+				 */
+				if (oldFlow != null)
+					selectionManager.getDataflowSelectionModel(oldFlow)
+							.removeObserver(workflowSelectionObserver);
+				if (newFlow != null)
+					selectionManager.getDataflowSelectionModel(newFlow)
+							.addObserver(workflowSelectionObserver);
 			}
 		}
 	}
-
 }
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CutProcessorAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CutProcessorAction.java
index ea0aee9..96d0aa5 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CutProcessorAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/CutProcessorAction.java
@@ -20,50 +20,50 @@
  ******************************************************************************/
 package net.sf.taverna.t2.workbench.ui.actions;
 
+import static java.awt.event.KeyEvent.VK_C;
+import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.cutIcon;
+import static net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView.cutProcessor;
+
 import java.awt.Component;
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 
 import javax.swing.AbstractAction;
-import javax.swing.Action;
 
 import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.icons.WorkbenchIcons;
 import net.sf.taverna.t2.workbench.selection.SelectionManager;
-import net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView;
 import uk.org.taverna.scufl2.api.core.Processor;
 import uk.org.taverna.scufl2.api.core.Workflow;
 
 /**
  * Action for copying a processor.
- *
+ * 
  * @author Alan R Williams
  */
+@SuppressWarnings("serial")
 public class CutProcessorAction extends AbstractAction {
-
 	private Processor processor;
-
 	private Workflow dataflow;
-
 	private Component component;
 
 	private final EditManager editManager;
-
 	private final SelectionManager selectionManager;
 
-	public CutProcessorAction(Workflow dataflow, Processor processor, Component component, EditManager editManager, SelectionManager selectionManager) {
+	public CutProcessorAction(Workflow dataflow, Processor processor,
+			Component component, EditManager editManager,
+			SelectionManager selectionManager) {
 		this.dataflow = dataflow;
 		this.processor = processor;
 		this.component = component;
 		this.editManager = editManager;
 		this.selectionManager = selectionManager;
-		putValue(SMALL_ICON, WorkbenchIcons.cutIcon);
+		putValue(SMALL_ICON, cutIcon);
 		putValue(NAME, "Cut");
-		putValue(Action.MNEMONIC_KEY, KeyEvent.VK_C);
+		putValue(MNEMONIC_KEY, VK_C);
 	}
 
+	@Override
 	public void actionPerformed(ActionEvent e) {
-			WorkflowView.cutProcessor(dataflow, processor, component, editManager, selectionManager);
+		cutProcessor(dataflow, processor, component, editManager,
+				selectionManager);
 	}
-
 }
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/PasteGraphComponentAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/PasteGraphComponentAction.java
index 67d7815..0c88c79 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/PasteGraphComponentAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/actions/PasteGraphComponentAction.java
@@ -20,37 +20,33 @@
  ******************************************************************************/
 package net.sf.taverna.t2.workbench.ui.actions;
 
-import java.awt.Toolkit;
+import static java.awt.Toolkit.getDefaultToolkit;
+import static java.awt.event.KeyEvent.VK_P;
+import static java.awt.event.KeyEvent.VK_V;
+import static javax.swing.KeyStroke.getKeyStroke;
+import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.pasteIcon;
+import static net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView.pasteTransferable;
+
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 
 import javax.swing.AbstractAction;
 import javax.swing.Action;
-import javax.swing.KeyStroke;
 
 import net.sf.taverna.t2.ui.menu.MenuManager;
 import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.icons.WorkbenchIcons;
 import net.sf.taverna.t2.workbench.selection.SelectionManager;
-import net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView;
-
-import org.apache.log4j.Logger;
-
 import uk.org.taverna.commons.services.ServiceRegistry;
 
 /**
  * An action that pastes a graph component
  *
  * @author Alan R Williams
- *
  */
 @SuppressWarnings("serial")
+//TODO this class appears to be non-OSGi-fied
 public class PasteGraphComponentAction extends AbstractAction {
-
 	private static PasteGraphComponentAction instance = null;
 
-	private static Logger logger = Logger.getLogger(PasteGraphComponentAction.class);
-
 	private static boolean enabled = false;
 
 	private final EditManager editManager;
@@ -58,30 +54,37 @@
 	private final SelectionManager selectionManager;
 	private final ServiceRegistry serviceRegistry;
 
-	private PasteGraphComponentAction(EditManager editManager, MenuManager menuManager, SelectionManager selectionManager, ServiceRegistry serviceRegistry) {
+	private PasteGraphComponentAction(EditManager editManager,
+			MenuManager menuManager, SelectionManager selectionManager,
+			ServiceRegistry serviceRegistry) {
 		super();
 		this.editManager = editManager;
 		this.menuManager = menuManager;
 		this.selectionManager = selectionManager;
 		this.serviceRegistry = serviceRegistry;
-		putValue(SMALL_ICON, WorkbenchIcons.pasteIcon);
+		putValue(SMALL_ICON, pasteIcon);
 		putValue(NAME, "Paste");
 		putValue(SHORT_DESCRIPTION, "Paste");
-		putValue(Action.MNEMONIC_KEY, KeyEvent.VK_P);
+		putValue(MNEMONIC_KEY, VK_P);
 
-		putValue(Action.ACCELERATOR_KEY,
-				KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
+		putValue(
+				ACCELERATOR_KEY,
+				getKeyStroke(VK_V, getDefaultToolkit().getMenuShortcutKeyMask()));
 		setEnabled(enabled);
 	}
 
+	@Override
 	public void actionPerformed(ActionEvent e) {
-		WorkflowView.pasteTransferable(editManager, menuManager, selectionManager, serviceRegistry);
+		pasteTransferable(editManager, menuManager, selectionManager,
+				serviceRegistry);
 	}
 
-	public static Action getInstance(EditManager editManager, MenuManager menuManager, SelectionManager selectionManager, ServiceRegistry serviceRegistry) {
-		if (instance == null) {
-			instance = new PasteGraphComponentAction(editManager, menuManager, selectionManager, serviceRegistry);
-		}
+	public static Action getInstance(EditManager editManager,
+			MenuManager menuManager, SelectionManager selectionManager,
+			ServiceRegistry serviceRegistry) {
+		if (instance == null)
+			instance = new PasteGraphComponentAction(editManager, menuManager,
+					selectionManager, serviceRegistry);
 		return instance;
 	}
 
@@ -92,5 +95,4 @@
 			instance.setEnabled(enabled);
 		}
 	}
-
 }
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/dndhandler/ServiceTransferHandler.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/dndhandler/ServiceTransferHandler.java
index 2e9b1b1..ef5a1cd 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/dndhandler/ServiceTransferHandler.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/dndhandler/ServiceTransferHandler.java
@@ -20,6 +20,11 @@
  ******************************************************************************/
 package net.sf.taverna.t2.workbench.ui.dndhandler;
 
+import static java.awt.datatransfer.DataFlavor.javaJVMLocalObjectMimeType;
+import static net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView.copyProcessor;
+import static net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView.cutProcessor;
+import static net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView.pasteTransferable;
+
 import java.awt.datatransfer.Clipboard;
 import java.awt.datatransfer.DataFlavor;
 import java.awt.datatransfer.Transferable;
@@ -31,7 +36,6 @@
 import net.sf.taverna.t2.ui.menu.MenuManager;
 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 org.apache.log4j.Logger;
 
@@ -45,10 +49,8 @@
  * @author David Withers
  * @author Alan R Williams
  */
+@SuppressWarnings("serial")
 public class ServiceTransferHandler extends TransferHandler {
-
-	private static final long serialVersionUID = 1L;
-
 	private static Logger logger = Logger.getLogger(ServiceTransferHandler.class);
 
 	private DataFlavor serviceDescriptionDataFlavor;
@@ -58,8 +60,9 @@
 	private final SelectionManager selectionManager;
 	private final ServiceRegistry serviceRegistry;
 
-	public ServiceTransferHandler(EditManager editManager, MenuManager menuManager, SelectionManager selectionManager, ServiceRegistry serviceRegistry) {
-
+	public ServiceTransferHandler(EditManager editManager,
+			MenuManager menuManager, SelectionManager selectionManager,
+			ServiceRegistry serviceRegistry) {
 		this.editManager = editManager;
 		this.menuManager = menuManager;
 		this.selectionManager = selectionManager;
@@ -67,7 +70,7 @@
 
 		try {
 			serviceDescriptionDataFlavor = new DataFlavor(
-					DataFlavor.javaJVMLocalObjectMimeType + ";class="
+					javaJVMLocalObjectMimeType + ";class="
 							+ ServiceDescription.class.getCanonicalName(),
 					"ServiceDescription", getClass().getClassLoader());
 		} catch (ClassNotFoundException e) {
@@ -79,11 +82,9 @@
 	@Override
 	public boolean canImport(JComponent component, DataFlavor[] dataFlavors) {
 		logger.debug("Trying to import something");
-		for (DataFlavor dataFlavor : dataFlavors) {
-			if (dataFlavor.equals(serviceDescriptionDataFlavor)) {
+		for (DataFlavor dataFlavor : dataFlavors)
+			if (dataFlavor.equals(serviceDescriptionDataFlavor))
 				return true;
-			}
-		}
 		return false;
 	}
 
@@ -91,14 +92,17 @@
 	public boolean importData(JComponent component, Transferable transferable) {
 		logger.info("Importing a transferable");
 		logger.debug(component.getClass().getCanonicalName());
-		WorkflowView.pasteTransferable(transferable, editManager, menuManager, selectionManager, serviceRegistry);
+		pasteTransferable(transferable, editManager, menuManager,
+				selectionManager, serviceRegistry);
 		return true;
 	}
 
+	@Override
 	protected Transferable createTransferable(JComponent c) {
 		return null;
 	}
 
+	@Override
 	public int getSourceActions(JComponent c) {
 		return COPY_OR_MOVE;
 	}
@@ -107,10 +111,9 @@
 	public void exportToClipboard(JComponent comp, Clipboard clip, int action)
 			throws IllegalStateException {
 		super.exportToClipboard(comp, clip, action);
-		if (action == COPY) {
-			WorkflowView.copyProcessor(selectionManager);
-		} else if (action == MOVE) {
-			WorkflowView.cutProcessor(editManager, selectionManager);
-		}
+		if (action == COPY)
+			copyProcessor(selectionManager);
+		else if (action == MOVE)
+			cutProcessor(editManager, selectionManager);
 	}
 }
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CopyGraphComponentMenuAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CopyGraphComponentMenuAction.java
index b05f168..9d32058 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CopyGraphComponentMenuAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CopyGraphComponentMenuAction.java
@@ -25,25 +25,22 @@
 import javax.swing.Action;
 
 import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
-import net.sf.taverna.t2.workbench.file.FileManager;
 import net.sf.taverna.t2.workbench.selection.SelectionManager;
 import net.sf.taverna.t2.workbench.ui.actions.CopyGraphComponentAction;
 
 /**
- *
  * @author Alan R Williams
- *
  */
 public class CopyGraphComponentMenuAction extends AbstractMenuAction {
-
 	private static final URI COPY_GRAPH_COMPONENT_URI = URI
 			.create("http://taverna.sf.net/2008/t2workbench/menu#graphMenuCopyGraphComponent");
 
 	private SelectionManager selectionManager;
 
 	public CopyGraphComponentMenuAction() {
-		super(URI
-				.create("http://taverna.sf.net/2008/t2workbench/menu#graphCopyMenuSection"), 12, COPY_GRAPH_COMPONENT_URI);
+		super(
+				URI.create("http://taverna.sf.net/2008/t2workbench/menu#graphCopyMenuSection"),
+				12, COPY_GRAPH_COMPONENT_URI);
 	}
 
 	@Override
@@ -54,9 +51,4 @@
 	public void setSelectionManager(SelectionManager selectionManager) {
 		this.selectionManager = selectionManager;
 	}
-
 }
-
-
-
-
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CopyProcessorMenuAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CopyProcessorMenuAction.java
index b87c578..2af61b0 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CopyProcessorMenuAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CopyProcessorMenuAction.java
@@ -25,17 +25,14 @@
 
 import javax.swing.Action;
 
+import net.sf.taverna.t2.ui.menu.AbstractContextualMenuAction;
+import net.sf.taverna.t2.workbench.ui.actions.CopyProcessorAction;
 import uk.org.taverna.scufl2.api.core.Processor;
 import uk.org.taverna.scufl2.api.core.Workflow;
 
-import net.sf.taverna.t2.ui.menu.AbstractContextualMenuAction;
-import net.sf.taverna.t2.workbench.ui.actions.CopyProcessorAction;
-
 public class CopyProcessorMenuAction extends AbstractContextualMenuAction {
-
 	public static final URI editSection = URI
-	.create("http://taverna.sf.net/2009/contextMenu/edit");
-
+			.create("http://taverna.sf.net/2009/contextMenu/edit");
 
 	public CopyProcessorMenuAction() {
 		super(editSection, 20);
@@ -48,6 +45,7 @@
 	}
 
 	@Override
+	@SuppressWarnings("unused")
 	protected Action createAction() {
 		Workflow dataflow = (Workflow) getContextualSelection().getParent();
 		Processor processor = (Processor) getContextualSelection()
@@ -55,5 +53,4 @@
 		Component component = getContextualSelection().getRelativeToComponent();
 		return new CopyProcessorAction(processor);
 	}
-
 }
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CutGraphComponentMenuAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CutGraphComponentMenuAction.java
index de1b999..3e088fe 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CutGraphComponentMenuAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CutGraphComponentMenuAction.java
@@ -30,12 +30,9 @@
 import net.sf.taverna.t2.workbench.ui.actions.CutGraphComponentAction;
 
 /**
- *
  * @author Alan R Williams
- *
  */
 public class CutGraphComponentMenuAction extends AbstractMenuAction {
-
 	private static final URI CUT_GRAPH_COMPONENT_URI = URI
 			.create("http://taverna.sf.net/2008/t2workbench/menu#graphMenuCutGraphComponent");
 
@@ -43,8 +40,9 @@
 	private SelectionManager selectionManager;
 
 	public CutGraphComponentMenuAction() {
-		super(URI
-				.create("http://taverna.sf.net/2008/t2workbench/menu#graphCopyMenuSection"), 11, CUT_GRAPH_COMPONENT_URI);
+		super(
+				URI.create("http://taverna.sf.net/2008/t2workbench/menu#graphCopyMenuSection"),
+				11, CUT_GRAPH_COMPONENT_URI);
 	}
 
 	@Override
@@ -59,9 +57,4 @@
 	public void setSelectionManager(SelectionManager selectionManager) {
 		this.selectionManager = selectionManager;
 	}
-
 }
-
-
-
-
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CutProcessorMenuAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CutProcessorMenuAction.java
index f787a99..5c68fd6 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CutProcessorMenuAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/CutProcessorMenuAction.java
@@ -34,9 +34,8 @@
 import net.sf.taverna.t2.workbench.ui.actions.CutProcessorAction;
 
 public class CutProcessorMenuAction extends AbstractContextualMenuAction {
-
 	public static final URI editSection = URI
-	.create("http://taverna.sf.net/2009/contextMenu/edit");
+			.create("http://taverna.sf.net/2009/contextMenu/edit");
 	private EditManager editManager;
 	private SelectionManager selectionManager;
 
@@ -50,7 +49,8 @@
 		Processor processor = (Processor) getContextualSelection()
 				.getSelection();
 		Component component = getContextualSelection().getRelativeToComponent();
-		return new CutProcessorAction(dataflow, processor, component, editManager, selectionManager);
+		return new CutProcessorAction(dataflow, processor, component,
+				editManager, selectionManager);
 	}
 
 	@Override
@@ -66,5 +66,4 @@
 	public void setSelectionManager(SelectionManager selectionManager) {
 		this.selectionManager = selectionManager;
 	}
-
 }
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/PasteGraphComponentMenuAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/PasteGraphComponentMenuAction.java
index 98b0c07..25fa3a9 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/PasteGraphComponentMenuAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/menu/PasteGraphComponentMenuAction.java
@@ -33,12 +33,9 @@
 import net.sf.taverna.t2.workbench.ui.actions.PasteGraphComponentAction;
 
 /**
- *
  * @author Alan R Williams
- *
  */
 public class PasteGraphComponentMenuAction extends AbstractMenuAction {
-
 	private static final URI PASTE_GRAPH_COMPONENT_URI = URI
 			.create("http://taverna.sf.net/2008/t2workbench/menu#graphMenuPasteGraphComponent");
 	private EditManager editManager;
@@ -47,13 +44,15 @@
 	private ServiceRegistry serviceRegistry;
 
 	public PasteGraphComponentMenuAction() {
-		super(URI
-				.create("http://taverna.sf.net/2008/t2workbench/menu#graphCopyMenuSection"), 13, PASTE_GRAPH_COMPONENT_URI);
+		super(
+				URI.create("http://taverna.sf.net/2008/t2workbench/menu#graphCopyMenuSection"),
+				13, PASTE_GRAPH_COMPONENT_URI);
 	}
 
 	@Override
 	protected Action createAction() {
-		return PasteGraphComponentAction.getInstance(editManager, menuManager, selectionManager, serviceRegistry);
+		return PasteGraphComponentAction.getInstance(editManager, menuManager,
+				selectionManager, serviceRegistry);
 	}
 
 	public void setEditManager(EditManager editManager) {
@@ -71,9 +70,4 @@
 	public void setServiceRegistry(ServiceRegistry serviceRegistry) {
 		this.serviceRegistry = serviceRegistry;
 	}
-
 }
-
-
-
-
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/toolbar/CopyToolbarAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/toolbar/CopyToolbarAction.java
index d05c023..2ae53bc 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/toolbar/CopyToolbarAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/toolbar/CopyToolbarAction.java
@@ -29,7 +29,6 @@
 import net.sf.taverna.t2.workbench.ui.actions.CopyGraphComponentAction;
 
 public class CopyToolbarAction extends AbstractMenuAction {
-
 	private static final URI EDIT_TOOLBAR_SECTION = URI
 			.create("http://taverna.sf.net/2008/t2workbench/menu#editToolbarSection");
 	private static final URI EDIT_TOOLBAR_COPY_URI = URI
@@ -49,5 +48,4 @@
 	public void setSelectionManager(SelectionManager selectionManager) {
 		this.selectionManager = selectionManager;
 	}
-
 }
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/toolbar/CutToolbarAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/toolbar/CutToolbarAction.java
index 7332921..e792fc1 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/toolbar/CutToolbarAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/toolbar/CutToolbarAction.java
@@ -30,7 +30,6 @@
 import net.sf.taverna.t2.workbench.ui.actions.CutGraphComponentAction;
 
 public class CutToolbarAction extends AbstractMenuAction {
-
 	private static final URI EDIT_TOOLBAR_SECTION = URI
 			.create("http://taverna.sf.net/2008/t2workbench/menu#editToolbarSection");
 	private static final URI EDIT_TOOLBAR_CUT_URI = URI
@@ -55,5 +54,4 @@
 	public void setSelectionManager(SelectionManager selectionManager) {
 		this.selectionManager = selectionManager;
 	}
-
 }
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/toolbar/PasteToolbarAction.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/toolbar/PasteToolbarAction.java
index 6987756..c28c522 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/toolbar/PasteToolbarAction.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/toolbar/PasteToolbarAction.java
@@ -33,7 +33,6 @@
 import net.sf.taverna.t2.workbench.ui.actions.PasteGraphComponentAction;
 
 public class PasteToolbarAction extends AbstractMenuAction {
-
 	private static final URI EDIT_TOOLBAR_SECTION = URI
 			.create("http://taverna.sf.net/2008/t2workbench/menu#editToolbarSection");
 	private static final URI EDIT_TOOLBAR_PASTE_URI = URI
@@ -49,7 +48,8 @@
 
 	@Override
 	protected Action createAction() {
-		return PasteGraphComponentAction.getInstance(editManager, menuManager, selectionManager, serviceRegistry);
+		return PasteGraphComponentAction.getInstance(editManager, menuManager,
+				selectionManager, serviceRegistry);
 	}
 
 	public void setEditManager(EditManager editManager) {
@@ -67,5 +67,4 @@
 	public void setServiceRegistry(ServiceRegistry serviceRegistry) {
 		this.serviceRegistry = serviceRegistry;
 	}
-
 }
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/workflowview/ShowExceptionRunnable.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/workflowview/ShowExceptionRunnable.java
index 52af977..05403bc 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/workflowview/ShowExceptionRunnable.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/workflowview/ShowExceptionRunnable.java
@@ -3,14 +3,13 @@
  */
 package net.sf.taverna.t2.workbench.ui.workflowview;
 
-import javax.swing.JOptionPane;
+import static javax.swing.JOptionPane.ERROR_MESSAGE;
+import static javax.swing.JOptionPane.showMessageDialog;
 
 /**
  * @author alanrw
- *
  */
 public class ShowExceptionRunnable implements Runnable {
-	
 	Exception e;
 	private final String message;
 
@@ -19,12 +18,9 @@
 		this.e = e;
 	}
 
-	/* (non-Javadoc)
-	 * @see java.lang.Runnable#run()
-	 */
 	@Override
 	public void run() {
-		JOptionPane.showMessageDialog(null, message + ": " + e.getMessage(), "Service addition problem", JOptionPane.ERROR_MESSAGE);
+		showMessageDialog(null, message + ": " + e.getMessage(),
+				"Service addition problem", ERROR_MESSAGE);
 	}
-
 }
diff --git a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/workflowview/WorkflowView.java b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/workflowview/WorkflowView.java
index 8006106..0be5fd0 100644
--- a/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/workflowview/WorkflowView.java
+++ b/workflow-view/src/main/java/net/sf/taverna/t2/workbench/ui/workflowview/WorkflowView.java
@@ -1,8 +1,11 @@
 package net.sf.taverna.t2.workbench.ui.workflowview;
 
+import static java.awt.GraphicsEnvironment.isHeadless;
+import static java.awt.Toolkit.getDefaultToolkit;
+import static java.awt.datatransfer.DataFlavor.javaJVMLocalObjectMimeType;
+import static javax.swing.SwingUtilities.invokeLater;
+
 import java.awt.Component;
-import java.awt.GraphicsEnvironment;
-import java.awt.Toolkit;
 import java.awt.datatransfer.DataFlavor;
 import java.awt.datatransfer.Transferable;
 import java.awt.datatransfer.UnsupportedFlavorException;
@@ -10,14 +13,12 @@
 import java.io.IOException;
 import java.net.URI;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Set;
 
 import javax.swing.Action;
 import javax.swing.JMenuItem;
 import javax.swing.JPopupMenu;
-import javax.swing.SwingUtilities;
 
 import net.sf.taverna.t2.servicedescriptions.ServiceDescription;
 import net.sf.taverna.t2.ui.menu.MenuManager;
@@ -34,7 +35,9 @@
 import net.sf.taverna.t2.workflow.edits.AddProcessorEdit;
 
 import org.apache.log4j.Logger;
-import org.jdom.Element;
+//import org.jdom.Element;
+
+
 
 import uk.org.taverna.commons.services.ActivityTypeNotFoundException;
 import uk.org.taverna.commons.services.InvalidConfigurationException;
@@ -56,46 +59,48 @@
 import uk.org.taverna.scufl2.api.profiles.Profile;
 
 /**
- *
  * Super class for all UIComponentSPIs that display a Workflow
- *
+ * 
  * @author alanrw
- *
  */
 public class WorkflowView {
-
-	public static Element copyRepresentation = null;
+	//public static Element copyRepresentation = null;
 
 	private static Logger logger = Logger.getLogger(WorkflowView.class);
 
 	private static DataFlavor processorFlavor = null;
 	private static DataFlavor serviceDescriptionDataFlavor = null;
-	private static HashMap<String, Element> requiredSubworkflows = new HashMap<String, Element>();
+	//private static HashMap<String, Element> requiredSubworkflows = new HashMap<>();
 
 	private static String UNABLE_TO_ADD_SERVICE = "Unable to add service";
+	@SuppressWarnings("unused")
 	private static String UNABLE_TO_COPY_SERVICE = "Unable to copy service";
 
+	@SuppressWarnings("unused")
 	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
 
 	static {
-		if (serviceDescriptionDataFlavor == null) {
-			try {
-				serviceDescriptionDataFlavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType
-						+ ";class=" + ServiceDescription.class.getCanonicalName(),
-						"ServiceDescription", ServiceDescription.class.getClassLoader());
-				if (processorFlavor == null) {
-					processorFlavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType
-							+ ";class=" + Processor.class.getCanonicalName(), "Processor",
-							Processor.class.getClassLoader());
-				}
-			} catch (ClassNotFoundException e) {
-				logger.error(e);
+		try {
+			if (serviceDescriptionDataFlavor == null) {
+				serviceDescriptionDataFlavor = new DataFlavor(
+						javaJVMLocalObjectMimeType + ";class="
+								+ ServiceDescription.class.getCanonicalName(),
+						"ServiceDescription",
+						ServiceDescription.class.getClassLoader());
+				if (processorFlavor == null)
+					processorFlavor = new DataFlavor(javaJVMLocalObjectMimeType
+							+ ";class=" + Processor.class.getCanonicalName(),
+							"Processor", Processor.class.getClassLoader());
 			}
+		} catch (ClassNotFoundException e) {
+			logger.error(e);
 		}
 	}
 
-	public final static Processor importServiceDescription(ServiceDescription sd, boolean rename, EditManager editManager,
-			MenuManager menuManager, SelectionManager selectionManager, ServiceRegistry serviceRegistry) {
+	public final static Processor importServiceDescription(
+			ServiceDescription sd, boolean rename, EditManager editManager,
+			MenuManager menuManager, SelectionManager selectionManager,
+			ServiceRegistry serviceRegistry) {
 		Workflow workflow = selectionManager.getSelectedWorkflow();
 		Profile profile = selectionManager.getSelectedProfile();
 
@@ -117,57 +122,64 @@
 		processorBinding.setBoundActivity(activity);
 
 		try {
-			for (InputActivityPort activityPort : serviceRegistry.getActivityInputPorts(activityType, configuration.getJson())) {
+			for (InputActivityPort activityPort : serviceRegistry
+					.getActivityInputPorts(activityType,
+							configuration.getJson())) {
 				// add port to activity
 				activityPort.setParent(activity);
 				// create processor port
-				InputProcessorPort processorPort = new InputProcessorPort(processor, activityPort.getName());
+				InputProcessorPort processorPort = new InputProcessorPort(
+						processor, activityPort.getName());
 				processorPort.setDepth(activityPort.getDepth());
 				// add a new port binding
-				new ProcessorInputPortBinding(processorBinding, processorPort, activityPort);
+				new ProcessorInputPortBinding(processorBinding, processorPort,
+						activityPort);
 			}
-			for (OutputActivityPort activityPort : serviceRegistry.getActivityOutputPorts(activityType, configuration.getJson())) {
+			for (OutputActivityPort activityPort : serviceRegistry
+					.getActivityOutputPorts(activityType,
+							configuration.getJson())) {
 				// add port to activity
 				activityPort.setParent(activity);
 				// create processor port
-				OutputProcessorPort processorPort = new OutputProcessorPort(processor, activityPort.getName());
+				OutputProcessorPort processorPort = new OutputProcessorPort(
+						processor, activityPort.getName());
 				processorPort.setDepth(activityPort.getDepth());
 				processorPort.setGranularDepth(activityPort.getGranularDepth());
 				// add a new port binding
-				new ProcessorOutputPortBinding(processorBinding, activityPort, processorPort);
+				new ProcessorOutputPortBinding(processorBinding, activityPort,
+						processorPort);
 			}
 		} catch (InvalidConfigurationException | ActivityTypeNotFoundException e) {
 			logger.warn("Unable to get activity ports for configuration", e);
 		}
 
-		List<Edit<?>> editList = new ArrayList<Edit<?>>();
-		editList.add(new AddChildEdit<Profile>(profile, activity));
-		editList.add(new AddChildEdit<Profile>(profile, configuration));
-		editList.add(new AddChildEdit<Profile>(profile, processorBinding));
+		List<Edit<?>> editList = new ArrayList<>();
+		editList.add(new AddChildEdit<>(profile, activity));
+		editList.add(new AddChildEdit<>(profile, configuration));
+		editList.add(new AddChildEdit<>(profile, processorBinding));
 		editList.add(new AddProcessorEdit(workflow, processor));
 		Edit<?> insertionEdit = sd.getInsertionEdit(workflow, processor, activity);
-		if (insertionEdit != null) {
+		if (insertionEdit != null)
 			editList.add(insertionEdit);
-		}
 		try {
-			editManager.doDataflowEdit(workflow.getParent(), new CompoundEdit(editList));
+			editManager.doDataflowEdit(workflow.getParent(), new CompoundEdit(
+					editList));
 		} catch (EditException e) {
 			showException(UNABLE_TO_ADD_SERVICE, e);
 			logger.warn("Could not add processor : edit error", e);
 			processor = null;
 		}
 
-		if ((processor != null) && rename) {
-			RenameProcessorAction rpa = new RenameProcessorAction(workflow, processor, null, editManager, selectionManager);
+		if (processor != null && rename) {
+			RenameProcessorAction rpa = new RenameProcessorAction(workflow,
+					processor, null, editManager, selectionManager);
 			rpa.actionPerformed(new ActionEvent(sd, 0, ""));
 		}
 
-		if ((processor != null) && sd.isTemplateService()) {
+		if (processor != null && sd.isTemplateService()) {
 			Action action = getConfigureAction(processor, menuManager);
-			if (action != null) {
+			if (action != null)
 				action.actionPerformed(new ActionEvent(sd, 0, ""));
-			}
-
 		}
 		return processor;
 	}
@@ -180,7 +192,8 @@
 			if (c instanceof JMenuItem) {
 				JMenuItem menuItem = (JMenuItem) c;
 				Action action = menuItem.getAction();
-				if ((action != null) && (action instanceof ActivityConfigurationAction)
+				if (action != null
+						&& action instanceof ActivityConfigurationAction
 						&& action.isEnabled()) {
 					if (result != null) {
 						// do not return anything if there are two matches
@@ -196,31 +209,33 @@
 		return result;
 	}
 
-	public static void pasteTransferable(Transferable t, EditManager editManager, MenuManager menuManager, SelectionManager selectionManager, ServiceRegistry serviceRegistry) {
-		if (t.isDataFlavorSupported(processorFlavor)) {
+	public static void pasteTransferable(Transferable t,
+			EditManager editManager, MenuManager menuManager,
+			SelectionManager selectionManager, ServiceRegistry serviceRegistry) {
+		if (t.isDataFlavorSupported(processorFlavor))
 			pasteProcessor(t, editManager);
-		} else if (t.isDataFlavorSupported(serviceDescriptionDataFlavor)) {
+		else if (t.isDataFlavorSupported(serviceDescriptionDataFlavor))
 			try {
 				ServiceDescription data = (ServiceDescription) t
 						.getTransferData(serviceDescriptionDataFlavor);
-				importServiceDescription(data, false, editManager, menuManager, selectionManager, serviceRegistry);
-			} catch (UnsupportedFlavorException e) {
-				showException(UNABLE_TO_ADD_SERVICE, e);
-				logger.error(e);
-			} catch (IOException e) {
+				importServiceDescription(data, false, editManager, menuManager,
+						selectionManager, serviceRegistry);
+			} catch (UnsupportedFlavorException | IOException e) {
 				showException(UNABLE_TO_ADD_SERVICE, e);
 				logger.error(e);
 			}
-
-		}
 	}
 
-	public static void pasteTransferable(EditManager editManager, MenuManager menuManager, SelectionManager selectionManager, ServiceRegistry serviceRegistry) {
-		pasteTransferable(Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null), editManager, menuManager, selectionManager, serviceRegistry);
-
+	public static void pasteTransferable(EditManager editManager,
+			MenuManager menuManager, SelectionManager selectionManager,
+			ServiceRegistry serviceRegistry) {
+		pasteTransferable(
+				getDefaultToolkit().getSystemClipboard().getContents(null),
+				editManager, menuManager, selectionManager, serviceRegistry);
 	}
 
 	public static void pasteProcessor(Transferable t, EditManager editManager) {
+		//FIXME
 //		try {
 //			Element e = (Element) t.getTransferData(processorFlavor);
 //			WorkflowBundle currentDataflow = (WorkflowBundle) ModelMap.getInstance().getModel(
@@ -303,15 +318,13 @@
 		// Get all selected components
 		Set<Object> selectedWFComponents = dataFlowSelectionModel.getSelection();
 		Processor p = null;
-		for (Object selectedWFComponent : selectedWFComponents) {
+		for (Object selectedWFComponent : selectedWFComponents)
 			if (selectedWFComponent instanceof Processor) {
 				p = (Processor) selectedWFComponent;
 				break;
 			}
-		}
-		if (p != null) {
+		if (p != null)
 			copyProcessor(p);
-		}
 	}
 
 	public static void copyProcessor(Processor p) {
@@ -386,15 +399,16 @@
 //		}
 	}
 
-	public static void cutProcessor(Workflow dataflow, Processor processor, Component component, EditManager editManager, SelectionManager selectionManager) {
+	public static void cutProcessor(Workflow dataflow, Processor processor,
+			Component component, EditManager editManager,
+			SelectionManager selectionManager) {
 		copyProcessor(processor);
-		new RemoveProcessorAction(dataflow, processor, component, editManager, selectionManager).actionPerformed(null);
-
+		new RemoveProcessorAction(dataflow, processor, component, editManager,
+				selectionManager).actionPerformed(null);
 	}
 
 	private static void showException(String message, Exception e) {
-		if (!GraphicsEnvironment.isHeadless()) {
-			SwingUtilities.invokeLater(new ShowExceptionRunnable(message, e));
-		}
+		if (!isHeadless())
+			invokeLater(new ShowExceptionRunnable(message, e));
 	}
 }