http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolConfigView.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolConfigView.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolConfigView.java
deleted file mode 100644
index 4723a78..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolConfigView.java
+++ /dev/null
@@ -1,868 +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.externaltool.views;
-
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Font;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.Map.Entry;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.help.CSH;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JEditorPane;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JTabbedPane;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
-import javax.swing.JTextPane;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-import net.sf.taverna.t2.activities.externaltool.ExternalToolActivity;
-import 
net.sf.taverna.t2.activities.externaltool.ExternalToolActivityConfigurationBean;
-import 
net.sf.taverna.t2.activities.externaltool.ExternalToolActivityHealthChecker;
-import net.sf.taverna.t2.activities.externaltool.utils.Tools;
-import net.sf.taverna.t2.lang.ui.KeywordDocument;
-import net.sf.taverna.t2.lang.ui.LinePainter;
-import net.sf.taverna.t2.lang.ui.NoWrapEditorKit;
-import 
net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationPanel;
-
-import org.apache.log4j.Logger;
-
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInput;
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInputStatic;
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInputUser;
-import de.uni_luebeck.inb.knowarc.usecases.ScriptOutput;
-import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription;
-
-/**
- * Provides the configurable view for a {@link ExternalToolActivity} through
- * it's {@link ExternalToolActivityConfigurationBean}. Has 3 main tabs - 
Script,
- * Ports & Dependencies. The {@link #inputViewList} contains the
- * {@link ExternalToolInputViewer}s describing the input ports and
- * {@link #outputViewList} has the {@link ExternalToolFileViewer}s
- * 
- * @author Ian Dunlop
- * @author Alex Nenadic
- * @author Alan R Williams
- * 
- */
-@SuppressWarnings("serial")
-public class ExternalToolConfigView
-               extends
-               ActivityConfigurationPanel<ExternalToolActivity, 
ExternalToolActivityConfigurationBean> {
-       
-       private static final Color LINE_COLOR = new Color(225,225,225);
-
-       private static final String FILE_INPUT_DESCRIPTION = "You can use a 
file input to feed data into " +
-                       "the service via an input port and have that data 
written to the specified file.";
-
-       private static final String FILE_OUTPUT_DESCRIPTION = "You can use a 
file output to take the " +
-                       "content of a file produced by the tool and send it to 
an output port of the service.";
-
-       private static final String FILE_LIST_DESCRIPTION = "If you feed a list 
of data into a file list " +
-                       "input, then each data item is written to a temporary 
file. A file is produced containing " +
-                       "the names of those temporary file. That index file can 
then be used as part of the tool " +
-                       "command.";
-
-       private static final String VALID_NAME_REGEX = "[\\p{L}\\p{Digit}_]+";
-
-       private static Logger logger = Logger
-                       .getLogger(ExternalToolConfigView.class);
-
-       /** The activity which this view describes */
-       protected ExternalToolActivity activity;
-
-       /** The configuration bean used to configure the activity */
-       private ExternalToolActivityConfigurationBean configuration;
-
-       private JTabbedPane tabbedPane = null;
-       private JPanel advancedPanel = null;
-       private JTabbedPane advancedTab = null;
-       private AnnotationPanel annotationPanel = null;
-       
-       private int stringReplacementGridy = 1;
-       private List<ExternalToolStringReplacementViewer> 
stringReplacementViewList = new 
ArrayList<ExternalToolStringReplacementViewer>();
-
-       private List<ExternalToolFileViewer> inputFileViewList = new 
ArrayList<ExternalToolFileViewer>();
-
-       private List<ExternalToolFileViewer> fileListViewList = new 
ArrayList<ExternalToolFileViewer>();
-
-       private int inputGridy = 1;
-
-       private int outputGridy = 1;
-       private List<ExternalToolFileViewer> outputViewList = new 
ArrayList<ExternalToolFileViewer>();
-
-       private int staticGridy = 1;
-       private List<ExternalToolStaticUrlViewer> staticUrlViewList = new 
ArrayList<ExternalToolStaticUrlViewer>();
-
-       private List<ExternalToolStaticStringViewer> staticStringViewList = new 
ArrayList<ExternalToolStaticStringViewer>();
-
-/*     private List<ExternalToolRuntimeEnvironmentViewer> 
runtimeEnvironmentViewList = new 
ArrayList<ExternalToolRuntimeEnvironmentViewer>();
-*/
-
-       private JTextField nameField = new JTextField(20);
-       private JTextField groupField = new JTextField(20);
-       private JTextArea descriptionArea = new JTextArea(6, 40);
-
-       private JEditorPane scriptTextArea;
-
-       private InvocationPanel invocationPanel;
-
-       private JCheckBox stdInCheckBox = new JCheckBox("Show STDIN");
-       private JCheckBox stdOutCheckBox = new JCheckBox("Show STDOUT");
-       private JCheckBox stdErrCheckBox = new JCheckBox("Show STDERR");
-       
-       private JTextField returnCodesField = new JTextField(20);
-
-       /**
-        * Stores the {@link ExternalToolActivity}, gets its
-        * {@link ExternalToolActivityConfigurationBean}, sets the layout and 
calls
-        * {@link #initialise()} to get the view going
-        * 
-        * @param activity
-        *            the {@link ExternalToolActivity} that the view is over
-        */
-       public ExternalToolConfigView(ExternalToolActivity activity) {
-               this.activity = activity;
-               
ExternalToolActivityHealthChecker.updateLocation(activity.getConfiguration());
-               configuration = (ExternalToolActivityConfigurationBean) 
cloneBean(activity
-                               .getConfiguration());
-               setLayout(new GridBagLayout());
-               initialise(configuration);
-       }
-
-       public void noteConfiguration() {
-               configuration = makeConfiguration();
-       }
-
-       public ExternalToolActivityConfigurationBean makeConfiguration() {
-               ExternalToolActivityConfigurationBean newConfiguration = 
(ExternalToolActivityConfigurationBean) cloneBean(configuration);
-               
ExternalToolActivityHealthChecker.updateLocation(newConfiguration);
-               
-
-               if (!isFromRepository()) {
-                       UseCaseDescription ucd = 
newConfiguration.getUseCaseDescription();
-
-                       ucd.setUsecaseid(nameField.getText());
-                       if (groupField.getText().isEmpty()) {
-                               ucd.setGroup(null);
-                       } else {
-                               ucd.setGroup(groupField.getText());
-                       }
-                       ucd.setDescription(descriptionArea.getText());
-                       ucd.setCommand(scriptTextArea.getText());
-                       ucd.setReturnCodesAsText(returnCodesField.getText());
-                       ucd.setIncludeStdIn(stdInCheckBox.isSelected());
-                       ucd.setIncludeStdOut(stdOutCheckBox.isSelected());
-                       ucd.setIncludeStdErr(stdErrCheckBox.isSelected());
-
-                       ucd.getInputs().clear();
-                       ucd.getTags().clear();
-                       synchronized (fileListViewList) {
-                               for (ExternalToolFileViewer viewer : 
fileListViewList) {
-                                       ScriptInputUser si = new 
ScriptInputUser();
-                                       si.setBinary(viewer.isBinary());
-                                       si.setList(true);
-                                       si.setTag(viewer.getValue());
-                                       si.setTempFile(false);
-                                       si.setFile(true);
-                                       ucd.getInputs().put(viewer.getName(), 
si);
-                               }
-                       }
-
-                       synchronized (stringReplacementViewList) {
-                               for (ExternalToolStringReplacementViewer viewer 
: stringReplacementViewList) {
-                                       ScriptInputUser si = new 
ScriptInputUser();
-                                       si.setBinary(false);
-                                       si.setList(false);
-                                       si.setTag(viewer.getValue());
-                                       si.setTempFile(false);
-                                       si.setFile(false);
-                                       ucd.getTags().add(si.getTag());
-                                       ucd.getInputs().put(viewer.getName(), 
si);
-                               }
-                       }
-
-                       synchronized (inputFileViewList) {
-                               for (ExternalToolFileViewer viewer : 
inputFileViewList) {
-                                       ScriptInputUser si = new 
ScriptInputUser();
-                                       si.setBinary(viewer.isBinary());
-                                       si.setList(false);
-                                       si.setTag(viewer.getValue());
-                                       si.setTempFile(false);
-                                       si.setFile(true);
-                                       ucd.getInputs().put(viewer.getName(), 
si);
-                               }
-                       }
-
-                       synchronized (outputViewList) {
-                               ucd.getOutputs().clear();
-                               for (ExternalToolFileViewer viewer : 
outputViewList) {
-                                       ScriptOutput so = new ScriptOutput();
-                                       so.setBinary(viewer.isBinary());
-                                       so.setPath(viewer.getValue());
-                                       ucd.getOutputs().put(viewer.getName(), 
so);
-                               }
-                       }
-                       ucd.getStatic_inputs().clear();
-                       synchronized (staticStringViewList) {
-                               for (ExternalToolStaticStringViewer viewer : 
staticStringViewList) {
-                                       ScriptInputStatic sis = new 
ScriptInputStatic();
-                                       sis.setContent(viewer.getContent());
-                                       sis.setTag(viewer.getValue());
-                                       sis.setTempFile(false);
-                                       sis.setFile(true);
-                                       ucd.getStatic_inputs().add(sis);
-                               }
-                       }
-                       synchronized (staticUrlViewList) {
-                               for (ExternalToolStaticUrlViewer viewer : 
staticUrlViewList) {
-                                       ScriptInputStatic sis = new 
ScriptInputStatic();
-                                       sis.setUrl(viewer.getContent());
-                                       sis.setTag(viewer.getValue());
-                                       sis.setTempFile(false);
-                                       sis.setFile(true);
-                                       ucd.getStatic_inputs().add(sis);
-                               }
-                       }
-
-/*                     synchronized (runtimeEnvironmentViewList) {
-                               ucd.getREs().clear();
-                               for (ExternalToolRuntimeEnvironmentViewer 
viewer : runtimeEnvironmentViewList) {
-                                       RuntimeEnvironmentConstraint 
newConstraint = new RuntimeEnvironmentConstraint(
-                                                       viewer.getId(), 
viewer.getRelation());
-                                       ucd.getREs().add(newConstraint);
-                               }
-                       }*/
-               }
-               invocationPanel.fillInConfiguration(newConfiguration);
-
-               return newConfiguration;
-       }
-
-       public boolean isConfigurationChanged() {
-               String configurationString = convertBeanToString(activity
-                               .getConfiguration());
-               return (!convertBeanToString(makeConfiguration()).equals(
-                               configurationString));
-       }
-
-       /**
-        * Adds a {@link JButton} which handles the reconfiguring of the
-        * {@link ExternalToolActivity} through the altered
-        * {@link ExternalToolActivityConfigurationBean}. Sets up the initial 
tabs -
-        * Script (also sets the initial value), Ports & Dependencies and their
-        * initial values through {@link #setDependencies()},
-        * {@link #getPortPanel()}
-        */
-       private void initialise(ExternalToolActivityConfigurationBean 
configuration) {
-               CSH.setHelpIDString(
-                               this,
-                               
"net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ExternalToolConfigView");
-               this.configuration = configuration;
-               setBorder(javax.swing.BorderFactory.createTitledBorder(null, 
null,
-                               
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
-                               
javax.swing.border.TitledBorder.DEFAULT_POSITION,
-                               new java.awt.Font("Lucida Grande", 1, 12)));
-
-               tabbedPane = new JTabbedPane();
-               
-               if (invocationPanel != null) {
-                       invocationPanel.stopObserving();
-               }
-
-               if (!isFromRepository()) {
-                       UseCaseDescription useCaseDescription = configuration
-                                       .getUseCaseDescription();
-
-                       nameField.setText(useCaseDescription.getUsecaseid());
-                       if (useCaseDescription.getGroup() != null) {
-                               
groupField.setText(useCaseDescription.getGroup());
-                       }
-                       
descriptionArea.setText(useCaseDescription.getDescription());
-                       stringReplacementViewList = new 
ArrayList<ExternalToolStringReplacementViewer>();
-                       inputFileViewList = new 
ArrayList<ExternalToolFileViewer>();
-                       fileListViewList = new 
ArrayList<ExternalToolFileViewer>();
-                       outputViewList = new 
ArrayList<ExternalToolFileViewer>();
-                       staticUrlViewList = new 
ArrayList<ExternalToolStaticUrlViewer>();
-                       staticStringViewList = new 
ArrayList<ExternalToolStaticStringViewer>();
-/*                     runtimeEnvironmentViewList = new 
ArrayList<ExternalToolRuntimeEnvironmentViewer>();*/
-
-                       for (Entry<String, ScriptInput> entry : 
useCaseDescription
-                                       .getInputs().entrySet()) {
-                               String name = entry.getKey();
-                               ScriptInputUser si = (ScriptInputUser) 
entry.getValue();
-                               if (Tools.isStringReplacement(si)) {
-                                       final 
ExternalToolStringReplacementViewer inputView = new 
ExternalToolStringReplacementViewer(
-                                                       name, si);
-                                       
stringReplacementViewList.add(inputView);
-                               }
-
-                       }
-                       Collections.sort(stringReplacementViewList,
-                                       new 
Comparator<ExternalToolStringReplacementViewer>() {
-
-                                               @Override
-                                               public int compare(
-                                                               
ExternalToolStringReplacementViewer o1,
-                                                               
ExternalToolStringReplacementViewer o2) {
-                                                       return 
o1.getName().compareTo(o2.getName());
-                                               }
-                                       });
-
-                       for (Entry<String, ScriptInput> entry : 
useCaseDescription
-                                       .getInputs().entrySet()) {
-                               String name = entry.getKey();
-                               ScriptInputUser si = (ScriptInputUser) 
entry.getValue();
-                               if (Tools.isInputFile(si)) {
-                                       final ExternalToolFileViewer inputView 
= new ExternalToolFileViewer(
-                                                       name, si.getTag(), 
si.isBinary());
-                                       inputFileViewList.add(inputView);
-                               }
-
-                       }
-                       Collections.sort(inputFileViewList,
-                                       new 
Comparator<ExternalToolFileViewer>() {
-
-                                               @Override
-                                               public int 
compare(ExternalToolFileViewer o1,
-                                                               
ExternalToolFileViewer o2) {
-                                                       return 
o1.getName().compareTo(o2.getName());
-                                               }
-                                       });
-
-                       for (Entry<String, ScriptInput> entry : 
useCaseDescription
-                                       .getInputs().entrySet()) {
-                               String name = entry.getKey();
-                               ScriptInputUser si = (ScriptInputUser) 
entry.getValue();
-                               if (Tools.isFileList(si)) {
-                                       final ExternalToolFileViewer inputView 
= new ExternalToolFileViewer(
-                                                       name, si.getTag(), 
si.isBinary());
-                                       fileListViewList.add(inputView);
-                               }
-
-                       }
-                       Collections.sort(fileListViewList,
-                                       new 
Comparator<ExternalToolFileViewer>() {
-
-                                               @Override
-                                               public int 
compare(ExternalToolFileViewer o1,
-                                                               
ExternalToolFileViewer o2) {
-                                                       return 
o1.getName().compareTo(o2.getName());
-                                               }
-                                       });
-
-                       for (Entry<String, ScriptOutput> entry : 
useCaseDescription
-                                       .getOutputs().entrySet()) {
-                               ScriptOutput so = entry.getValue();
-                               final ExternalToolFileViewer outputView = new 
ExternalToolFileViewer(
-                                               entry.getKey(), so.getPath(), 
so.isBinary());
-                               outputViewList.add(outputView);
-                       }
-                       Collections.sort(outputViewList,
-                                       new 
Comparator<ExternalToolFileViewer>() {
-
-                                               @Override
-                                               public int 
compare(ExternalToolFileViewer o1,
-                                                               
ExternalToolFileViewer o2) {
-                                                       return 
o1.getName().compareTo(o2.getName());
-                                               }
-                                       });
-
-                       for (ScriptInputStatic siss : 
useCaseDescription.getStatic_inputs()) {
-                               if ((siss.getUrl() == null) && siss.isFile()) {
-                                       final ExternalToolStaticStringViewer 
staticView = new ExternalToolStaticStringViewer(
-                                                       siss);
-                                       staticStringViewList.add(staticView);
-                               }
-                       }
-                       Collections.sort(staticStringViewList,
-                                       new 
Comparator<ExternalToolStaticStringViewer>() {
-
-                                               @Override
-                                               public int 
compare(ExternalToolStaticStringViewer o1,
-                                                               
ExternalToolStaticStringViewer o2) {
-                                                       return 
o1.getContent().compareTo(o2.getContent());
-                                               }
-                                       });
-
-                       for (ScriptInputStatic sis : 
useCaseDescription.getStatic_inputs()) {
-                               if ((sis.getUrl() != null) && sis.isFile()) {
-                                       final ExternalToolStaticUrlViewer 
staticView = new ExternalToolStaticUrlViewer(
-                                                       sis);
-                                       staticUrlViewList.add(staticView);
-                               }
-                       }
-                       Collections.sort(staticUrlViewList,
-                                       new 
Comparator<ExternalToolStaticUrlViewer>() {
-
-                                               @Override
-                                               public int 
compare(ExternalToolStaticUrlViewer o1,
-                                                               
ExternalToolStaticUrlViewer o2) {
-                                                       return 
o1.getContent().compareTo(o2.getContent());
-                                               }
-                                       });
-
-/*                     for (RuntimeEnvironmentConstraint rec : 
useCaseDescription.getREs()) {
-                               final ExternalToolRuntimeEnvironmentViewer 
newView = new ExternalToolRuntimeEnvironmentViewer(
-                                               rec.getID(), rec.getRelation());
-                               runtimeEnvironmentViewList.add(newView);
-                       }
-                       Collections.sort(runtimeEnvironmentViewList,
-                                       new 
Comparator<ExternalToolRuntimeEnvironmentViewer>() {
-
-                                               @Override
-                                               public int compare(
-                                                               
ExternalToolRuntimeEnvironmentViewer o1,
-                                                               
ExternalToolRuntimeEnvironmentViewer o2) {
-                                                       return 
o1.getId().compareTo(o2.getId());
-                                               }
-                                       });*/
-
-                       scriptTextArea = new JTextPane();
-                       new LinePainter(scriptTextArea, LINE_COLOR);
-
-                       final KeywordDocument doc = new KeywordDocument(
-                                       new HashSet<String>());
-                       // NOTE: Due to T2-1145 - always set editor kit BEFORE 
setDocument
-                       scriptTextArea.setEditorKit(new NoWrapEditorKit());
-                       scriptTextArea.setFont(new Font("Monospaced", 
Font.PLAIN, 14));
-                       scriptTextArea.setDocument(doc);
-                       scriptTextArea.setText(useCaseDescription.getCommand());
-                       scriptTextArea.setCaretPosition(0);
-                       scriptTextArea.setPreferredSize(new Dimension(200, 
100));
-
-                       tabbedPane.addTab("Command", new ScriptPanel(this, 
scriptTextArea, stdInCheckBox, stdOutCheckBox, stdErrCheckBox, 
returnCodesField));
-                       tabbedPane.addTab("String replacements",
-                                       new StringReplacementPanel(this, 
stringReplacementViewList));
-                       tabbedPane.addTab(
-                                       "File inputs",
-                                       new FilePanel(this, inputFileViewList, 
"To file", "File type",
-                                                       "in", 
FILE_INPUT_DESCRIPTION, "Add file input"));
-                       tabbedPane.addTab(
-                                       "File outputs",
-                                       new FilePanel(this, outputViewList, 
"From file", "File type",
-                                                       "out", 
FILE_OUTPUT_DESCRIPTION, "Add file output"));
-                       advancedPanel = new JPanel();
-                       advancedPanel.setLayout(new GridBagLayout());
-                       GridBagConstraints advancedConstraint = new 
GridBagConstraints();
-                       advancedConstraint.anchor = 
GridBagConstraints.FIRST_LINE_START;
-                       advancedConstraint.gridx = 0;
-                       advancedConstraint.gridy = 0;
-
-                       advancedConstraint.fill = GridBagConstraints.BOTH;
-                       advancedConstraint.weighty = 0.1;
-                       advancedConstraint.weightx = 0.1;
-                       advancedTab = new JTabbedPane();
-                       advancedTab.addTab("Strings", new 
StaticStringPanel(staticStringViewList));
-                       advancedTab.addTab("URLs", new 
StaticUrlPanel(staticUrlViewList));
-                       advancedTab.addTab(
-                                       "File lists",
-                                       new FilePanel(this, fileListViewList,
-                                                       "To file containing 
list", "Individual file type",
-                                                       "in", 
FILE_LIST_DESCRIPTION, "Add file list"));
-                       annotationPanel = new AnnotationPanel(nameField, 
descriptionArea, groupField);
-                       advancedTab.addTab("Annotation", annotationPanel);
-                       final ToolXMLPanel toolXMLPanel = new 
ToolXMLPanel(configuration.getUseCaseDescription());
-                       advancedTab.addTab("XML", toolXMLPanel);
-                       advancedTab.addChangeListener(new ChangeListener() {
-
-                               @Override
-                               public void stateChanged(ChangeEvent e) {
-                                       if (advancedTab.getSelectedComponent() 
== toolXMLPanel) {
-                                               
toolXMLPanel.regenerateTree(makeConfiguration().getUseCaseDescription());
-                                       }
-                               }});
-                       tabbedPane.addChangeListener(new ChangeListener() {
-
-                               @Override
-                               public void stateChanged(ChangeEvent e) {
-                                       if ((tabbedPane.getSelectedComponent() 
== advancedPanel) &&
-                                                       
(advancedTab.getSelectedComponent() == toolXMLPanel)) {
-                                               
toolXMLPanel.regenerateTree(makeConfiguration().getUseCaseDescription());       
                                        
-                                       }
-                               }
-                               
-                       });
-/*                     advancedTab.addTab("Runtime environments",
-                                       
createRuntimeEnvironmentPanel(runtimeEnvironmentViewList));*/
-                       advancedPanel.add(advancedTab, advancedConstraint);
-                       tabbedPane.addTab("Advanced", advancedPanel);
-               }
-               invocationPanel = new InvocationPanel(configuration);
-               
-               tabbedPane.addTab("Location", invocationPanel);
-               if (isFromRepository()) {
-                       tabbedPane.addTab("Edit", new EditablePanel(this));
-               }
-               GridBagConstraints outerConstraint = new GridBagConstraints();
-               outerConstraint.anchor = GridBagConstraints.FIRST_LINE_START;
-               outerConstraint.gridx = 0;
-               outerConstraint.gridy = 0;
-
-               outerConstraint.fill = GridBagConstraints.BOTH;
-               outerConstraint.weighty = 0.1;
-               outerConstraint.weightx = 0.1;
-               add(tabbedPane, outerConstraint);
-
-               setPreferredSize(new Dimension(700, 500));
-               this.validate();
-       }
-
-       public void whenOpened() {
-               if (scriptTextArea != null) {
-                       scriptTextArea.requestFocus();
-               }
-       }
-
-       private boolean isFromRepository() {
-               return (!this.configuration.isEdited() && 
isOriginallyFromRepository());
-       }
-       
-       public boolean isOriginallyFromRepository() {
-               String repositoryUrl = this.configuration.getRepositoryUrl();
-               return ((repositoryUrl != null) && !repositoryUrl
-                               .isEmpty());
-               
-       }
-
-
-       @Override
-       public ExternalToolActivityConfigurationBean getConfiguration() {
-               return configuration;
-       }
-
-       public void refreshConfiguration(
-                       ExternalToolActivityConfigurationBean config) {
-               int visibleTab = -1;
-               int secondaryTab = -1;
-               if (tabbedPane != null) {
-                       visibleTab = tabbedPane.getSelectedIndex();
-                       if 
(tabbedPane.getSelectedComponent().equals(advancedTab)) {
-                               secondaryTab = advancedTab.getSelectedIndex();
-                       }
-               }
-               this.removeAll();
-               initialise(config);
-               if (visibleTab != -1) {
-                       tabbedPane.setSelectedIndex(visibleTab);
-               }
-               if (secondaryTab != -1) {
-                       advancedTab.setSelectedIndex(secondaryTab);
-               }
-       }
-       
-       public void showAnnotationPanel() {
-               tabbedPane.setSelectedComponent(advancedPanel);
-               advancedTab.setSelectedComponent(annotationPanel);
-       }
-
-       @Override
-       public void refreshConfiguration() {
-               refreshConfiguration(activity.getConfiguration());
-       }
-
-       static Pattern tagPattern = Pattern.compile("%%([^%]*)%%");
-
-       @Override
-       /**
-        * Need to check that the script contains the string replacements and 
only them - done
-        * 
-        * Need to check the input port names are valid and unique - done
-        * Need to check the output port names are valid and unique - done
-        * 
-        * Need to check the input files and static files are unique - done
-        * Need to check the file names are valid
-        * Need to check the URLs are valid
-        * Need to check the replacement tags are unique - done
-        */
-       public boolean checkValues() {
-               if (isFromRepository()) {
-                       return true;
-               }
-               boolean result = true;
-               String text = "";
-               Set<String> stringReplacementPortNames = new HashSet<String>();
-               Set<String> stringReplacementTags = new HashSet<String>();
-               for (ExternalToolStringReplacementViewer v : 
stringReplacementViewList) {
-                       String name = v.getName();
-                       if (name.equalsIgnoreCase("stdin") || 
name.equalsIgnoreCase("stdout") || name.equalsIgnoreCase("stderr")) {
-                               text += "A string replacement port has a 
reserved name \"" + name + "\"\n";
-                               result = false;
-                       }
-                       else if (stringReplacementPortNames.contains(name)) {
-                               text += "Two string replacement ports have the 
name \"" + name
-                                               + "\"\n";
-                               result = false;
-                       } else if (!name.matches(VALID_NAME_REGEX)) {
-                               text += "String replacement port name \"" + name
-                                               + "\" is invalid\n";
-                               result = false;
-                       } else {
-                               stringReplacementPortNames.add(name);
-                       }
-
-                       String tag = v.getValue();
-                       if (stringReplacementTags.contains(tag)) {
-                               text += "Two string replacement ports replace 
\"%%" + tag
-                                               + "%%\"\n";
-                               result = false;
-                       } else if (!tag.matches(VALID_NAME_REGEX)) {
-                               text += "String replacement tag \"%%" + tag
-                                               + "%%\" is invalid\n";
-                               result = false;
-                       } else {
-                               stringReplacementTags.add(tag);
-                       }
-               }
-
-               Matcher m = tagPattern.matcher(scriptTextArea.getText());
-               Set<String> tags = new HashSet<String>();
-               while (m.find()) {
-                       String tag = m.group(1);
-                       if (tag != null) {
-                               if (tag.isEmpty()) {
-                                       text += "The command contains an empty 
tag i.e. %%%%\n";
-                                       result = false;
-                               } else {
-                                       if (!tag.matches(VALID_NAME_REGEX)) {
-                                               text += "The command contains 
an invalid tag \"%%"
-                                                               + tag + 
"\"%%\n";
-                                               result = false;
-                                       }
-                                       if 
(!stringReplacementTags.contains(tag)) {
-                                               text += "There is no string 
replacement for %%" + tag
-                                                               + "%%\n";
-                                               result = false;
-                                       } else {
-                                               tags.add(tag);
-                                       }
-                               }
-                       }
-               }
-
-               for (String tag : stringReplacementTags) {
-                       if (!tags.contains(tag)) {
-                               text += "String replacement for %%" + tag
-                                               + "%% is not used in the 
command\n";
-                               result = false;
-                       }
-               }
-
-               Set<String> inputFilePortNames = new HashSet<String>();
-               Set<String> inputFileNames = new HashSet<String>();
-               for (ExternalToolFileViewer v : inputFileViewList) {
-                       String name = v.getName();
-                       if (name.equalsIgnoreCase("stdin") || 
name.equalsIgnoreCase("stdout") || name.equalsIgnoreCase("stderr")) {
-                               text += "An input file port has a reserved name 
\"" + name + "\"\n";
-                               result = false;
-                       }
-                       else if (stringReplacementPortNames.contains(name)) {
-                               text += "A string replacement port and an input 
file port have the name \""
-                                               + name + "\"\n";
-                               result = false;
-                       } else if (inputFilePortNames.contains(name)) {
-                               text += "Two file input ports have the name \"" 
+ name + "\"\n";
-                               result = false;
-                       } else if (!name.matches(VALID_NAME_REGEX)) {
-                               text += "File input port name \"" + name + "\" 
is invalid\n";
-                               result = false;
-                       } else {
-                               inputFilePortNames.add(name);
-                       }
-
-                       String fileName = v.getValue();
-                       if (inputFileNames.contains(fileName)) {
-                               text += "Two file inputs ports write to the 
same file \""
-                                               + fileName + "\"\n";
-                               result = false;
-                       } else {
-                               inputFileNames.add(fileName);
-                       }
-               }
-
-               Set<String> fileListPortNames = new HashSet<String>();
-               Set<String> fileListFileNames = new HashSet<String>();
-               for (ExternalToolFileViewer v : fileListViewList) {
-                       String name = v.getName();
-                       if (name.equalsIgnoreCase("stdin") || 
name.equalsIgnoreCase("stdout") || name.equalsIgnoreCase("stderr")) {
-                               text += "A file list port has a reserved name 
\"" + name + "\"\n";
-                               result = false;
-                       } else if (stringReplacementPortNames.contains(name)) {
-                               text += "A string replacement port and a file 
list port have the name \""
-                                               + name + "\"\n";
-                               result = false;
-                       } else if (inputFilePortNames.contains(name)) {
-                               text += "A file input port and a file list port 
have the name \""
-                                               + name + "\"\n";
-                               result = false;
-                       } else if (fileListPortNames.contains(name)) {
-                               text += "Two file list ports have the name \"" 
+ name + "\"\n";
-                               result = false;
-                       } else if (!name.matches(VALID_NAME_REGEX)) {
-                               text += "File list port name \"" + name + "\" 
is invalid\n";
-                               result = false;
-                       } else {
-                               fileListPortNames.add(name);
-                       }
-
-                       String fileName = v.getValue();
-                       if (fileListFileNames.contains(fileName)) {
-                               text += "Two file list ports write to the same 
file \""
-                                               + fileName + "\"\n";
-                               result = false;
-                       } else if (inputFileNames.contains(fileName)) {
-                               text += "A file input port and a file list port 
write to the same file \""
-                                               + fileName + "\"\n";
-                               result = false;
-                       } else {
-                               fileListFileNames.add(fileName);
-                       }
-               }
-
-               Set<String> staticStringFileNames = new HashSet<String>();
-               for (ExternalToolStaticStringViewer v : staticStringViewList) {
-                       String fileName = v.getValue();
-                       if (staticStringFileNames.contains(fileName)) {
-                               text += "Two static strings write to the same 
file \""
-                                               + fileName + "\"\n";
-                               result = false;
-                       } else if (inputFileNames.contains(fileName)) {
-                               text += "A file input port and a static string 
write to the same file \""
-                                               + fileName + "\"\n";
-                               result = false;
-                       } else if (fileListFileNames.contains(fileName)) {
-                               text += "A file list port and a static string 
write to the same file \""
-                                               + fileName + "\"\n";
-                               result = false;
-                       } else {
-                               staticStringFileNames.add(fileName);
-                       }
-               }
-
-               Set<String> staticUrlFileNames = new HashSet<String>();
-               for (ExternalToolStaticUrlViewer v : staticUrlViewList) {
-                       String fileName = v.getValue();
-                       if (staticUrlFileNames.contains(fileName)) {
-                               text += "Two static URLss write to the same 
file \"" + fileName
-                                               + "\"\n";
-                               result = false;
-                       } else if (inputFileNames.contains(fileName)) {
-                               text += "A file input port and a static URL 
write to the same file \""
-                                               + fileName + "\"\n";
-                               result = false;
-                       } else if (fileListFileNames.contains(fileName)) {
-                               text += "A file list port and a static URL 
write to the same file \""
-                                               + fileName + "\"\n";
-                               result = false;
-                       } else if (staticStringFileNames.contains(fileName)) {
-                               text += "A static string and a static URL write 
to the same file \""
-                                               + fileName + "\"\n";
-                               result = false;
-                       } else {
-                               staticUrlFileNames.add(fileName);
-                       }
-               }
-               Set<String> outputPortNames = new HashSet<String>();
-               for (ExternalToolFileViewer v : outputViewList) {
-                       String name = v.getName();
-                       if (name.equalsIgnoreCase("stdin") || 
name.equalsIgnoreCase("stdout") || name.equalsIgnoreCase("stderr")) {
-                               text += "An output port has a reserved name \"" 
+ name + "\"\n";
-                               result = false;
-                       } else if (outputPortNames.contains(name)) {
-                               text += "Two output file ports have the name 
\"" + name
-                                               + "\"\n";
-                               result = false;
-                       } else if (!name.matches(VALID_NAME_REGEX)) {
-                               text += "Output file port name \"" + name + "\" 
is invalid\n";
-                               result = false;
-                       } else {
-                               outputPortNames.add(name);
-                       }
-               }
-               if (!result) {
-                       JOptionPane.showMessageDialog(this, text, "Problems",
-                                       JOptionPane.ERROR_MESSAGE);
-               }
-               return result;
-       }
-
-       /**
-        * Check the proposed port name against the set of ports
-        * 
-        * @return
-        */
-       public boolean portNameExists(String name) {
-               if (name.equalsIgnoreCase("stdin") || 
name.equalsIgnoreCase("stdout") || name.equalsIgnoreCase("stderr")) {
-                       return true;
-               }
-               
-               for (ExternalToolFileViewer v : inputFileViewList) {
-                       if (name.equals(v.getName())) {
-                               return true;
-                       }
-               }
-               for (ExternalToolFileViewer v : fileListViewList) {
-                       if (name.equals(v.getName())) {
-                               return true;
-                       }
-               }
-               for (ExternalToolStringReplacementViewer v : 
stringReplacementViewList) {
-                       if (name.equals(v.getName())) {
-                               return true;
-                       }
-               }
-               for (ExternalToolFileViewer v : outputViewList) {
-                       if (name.equals(v.getName())) {
-                               return true;
-                       }
-               }
-               return false;
-       }
-
-
-       public void setEditable(boolean editable, 
ExternalToolActivityConfigurationBean config) {
-               ExternalToolActivityConfigurationBean newConfig = 
(ExternalToolActivityConfigurationBean) cloneBean(config);
-               ExternalToolActivityHealthChecker.updateLocation(newConfig);
-               newConfig.setEdited(editable);
-               refreshConfiguration(newConfig);                
-       }
-       
-       public void whenClosed() {
-               if (invocationPanel != null) {
-                       invocationPanel.stopObserving();
-               }
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolFileViewer.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolFileViewer.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolFileViewer.java
deleted file mode 100644
index 11fb0c4..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolFileViewer.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.views;
-
-import java.awt.event.ActionEvent;
-
-import javax.swing.AbstractAction;
-import javax.swing.JCheckBox;
-import javax.swing.JComboBox;
-import javax.swing.JTextField;
-
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInput;
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInputUser;
-import de.uni_luebeck.inb.knowarc.usecases.ScriptOutput;
-
-/**
- * @author alanrw
- *
- */
-public class ExternalToolFileViewer {
-       
-       private JTextField nameField;
-       private String name;
-       private JTextField valueField;
-       private JCheckBox valueFromField;
-       private JComboBox typeSelector;
-
-       public ExternalToolFileViewer(String name, String value, boolean 
isBinary) {
-               this(name);
-               nameField.setText(name);
-               if (!value.equals(name)) {
-                       valueFromField.setSelected(false);
-                       valueField.setText(value);
-                       valueField.setEnabled(true);
-               }
-               if (isBinary) {
-                       typeSelector.setSelectedItem("Binary");
-               } else {
-                       typeSelector.setSelectedItem("Text");
-               }
-       }
-
-       public ExternalToolFileViewer(final String name) {
-               this.name = name;
-               nameField = new JTextField(20);
-               valueField = new JTextField(20);
-               valueFromField = new JCheckBox(new AbstractAction() {
-
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               if (valueFromField.isSelected()) {
-                                       valueField.setText("");
-                                       valueField.setEnabled(false);
-                               } else {
-                                       valueField.setText(getName());
-                                       valueField.setEnabled(true);
-                               }
-                       }});
-               valueFromField.setSelected(true);
-               valueField.setEnabled(false);
-               typeSelector = new JComboBox(new String[] {"Binary", "Text"});
-               nameField.setText(name);
-               typeSelector.setSelectedItem("Text");
-               
-       }
-
-       public JTextField getNameField() {
-               return nameField;
-       }
-
-       public JTextField getValueField() {
-               return valueField;
-       }
-
-       public JComboBox getTypeSelector() {
-               return typeSelector;
-       }
-
-       public String getName() {
-               return nameField.getText();
-       }
-
-       public boolean isBinary() {
-               return (typeSelector.getSelectedItem().equals("Binary"));
-       }
-
-       public String getValue() {
-               if (valueFromField.isSelected()) {
-                       return getName();
-               }
-               return valueField.getText();
-       }
-       
-       /**
-        * @return the valueFromField
-        */
-       public JCheckBox getValueFromField() {
-               return valueFromField;
-       }
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolRuntimeEnvironmentViewer.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolRuntimeEnvironmentViewer.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolRuntimeEnvironmentViewer.java
deleted file mode 100644
index 1451660..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolRuntimeEnvironmentViewer.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.views;
-
-import javax.swing.JComboBox;
-import javax.swing.JTextField;
-
-import de.uni_luebeck.inb.knowarc.usecases.RuntimeEnvironmentConstraint;
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInput;
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInputUser;
-import de.uni_luebeck.inb.knowarc.usecases.ScriptOutput;
-
-/**
- * @author alanrw
- *
- */
-public class ExternalToolRuntimeEnvironmentViewer {
-       
-       private JTextField idField;
-       private JComboBox relationSelector;
-
-       public ExternalToolRuntimeEnvironmentViewer(String id, String relation) 
{
-               this(id);
-               idField.setText(id);
-               relationSelector.setSelectedItem(relation);
-       }
-
-       public ExternalToolRuntimeEnvironmentViewer(String id) {
-               this();
-               idField.setText(id);    
-       }
-       
-       public ExternalToolRuntimeEnvironmentViewer() {
-               idField = new JTextField(20);
-               relationSelector = new 
JComboBox(RuntimeEnvironmentConstraint.getAcceptedRelations());
-               
relationSelector.setSelectedItem(RuntimeEnvironmentConstraint.getDefaultRelation());
                    
-       }
-
-       public JTextField getIdField() {
-               return idField;
-       }
-
-       public JComboBox getRelationSelector() {
-               return relationSelector;
-       }
-
-       public String getId() {
-               return idField.getText();
-       }
-
-       public String getRelation() {
-               return (String) relationSelector.getSelectedItem();
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticStringViewer.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticStringViewer.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticStringViewer.java
deleted file mode 100644
index d82d9b7..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticStringViewer.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.views;
-
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
-
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInputStatic;
-
-/**
- * @author alanrw
- *
- */
-public class ExternalToolStaticStringViewer {
-       
-       ScriptInputStatic input;
-       private JTextArea contentField = new JTextArea();
-       private JTextField valueField;
-
-
-       public ExternalToolStaticStringViewer(ScriptInputStatic input) {
-               this();
-               this.input = input;
-                       contentField.setText((String) input.getContent());
-               valueField.setText(input.getTag());
-       }
-
-       public ExternalToolStaticStringViewer() {
-               contentField = new JTextArea(5, 40);
-               contentField.setText("");
-               valueField = new JTextField(20);
-               valueField.setText("");
-       }
-
-       public String getContent() {
-               return contentField.getText();
-       }
-
-       public JTextArea getContentField() {
-               return contentField;
-       }
-
-
-       public JTextField getValueField() {
-               return valueField;
-       }
-
-       public String getValue() {
-               return valueField.getText();
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticUrlViewer.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticUrlViewer.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticUrlViewer.java
deleted file mode 100644
index f7a1793..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticUrlViewer.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.views;
-
-import javax.swing.JComboBox;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
-
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInput;
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInputStatic;
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInputUser;
-
-/**
- * @author alanrw
- *
- */
-public class ExternalToolStaticUrlViewer {
-       
-       ScriptInputStatic input;
-       private JTextField contentField = new JTextField();
-       private JTextField valueField;
-
-
-       public ExternalToolStaticUrlViewer(ScriptInputStatic input) {
-               this();
-               this.input = input;
-               contentField.setText(input.getUrl());
-               valueField.setText(input.getTag());
-       }
-
-       public ExternalToolStaticUrlViewer() {
-               contentField = new JTextField(40);
-               contentField.setText("");
-               valueField = new JTextField(20);
-               valueField.setText("");
-       }
-
-       public String getContent() {
-               return contentField.getText();
-       }
-
-       public JTextField getContentField() {
-               return contentField;
-       }
-
-
-       public JTextField getValueField() {
-               return valueField;
-       }
-
-       public String getValue() {
-               return valueField.getText();
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStringReplacementViewer.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStringReplacementViewer.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStringReplacementViewer.java
deleted file mode 100644
index 8e24183..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStringReplacementViewer.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.views;
-
-import java.awt.event.ActionEvent;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.swing.AbstractAction;
-import javax.swing.JCheckBox;
-import javax.swing.JComboBox;
-import javax.swing.JTextField;
-
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInput;
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInputUser;
-
-/**
- * @author alanrw
- *
- */
-public class ExternalToolStringReplacementViewer {
-       
-       private static Pattern p = Pattern.compile("\\w+");
-       private static final String PERCENTS = "%%";
-       ScriptInput input;
-       private JTextField nameField;
-       private String name;
-       private JTextField valueField;
-       private JCheckBox valueFromField;
-
-       public ExternalToolStringReplacementViewer(String name, ScriptInputUser 
input) {
-               this(name);
-               this.input = input;
-               nameField.setText(name);
-               if (!input.getTag().equals(name)) {
-                       valueFromField.setSelected(false);
-                       valueField.setText(PERCENTS + input.getTag() + 
PERCENTS);
-                       valueField.setEnabled(true);
-               }
-       }
-
-       public ExternalToolStringReplacementViewer(String name) {
-               this.name = name;
-               nameField = new JTextField(20);
-               nameField.setText(name);
-               valueField = new JTextField(20);
-               valueFromField = new JCheckBox(new AbstractAction() {
-
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               if (valueFromField.isSelected()) {
-                                       valueField.setText("");
-                                       valueField.setEnabled(false);
-                               } else {
-                                       valueField.setText(PERCENTS + getName() 
+ PERCENTS);
-                                       valueField.setEnabled(true);
-                               }
-                       }});
-               valueFromField.setSelected(true);
-               valueField.setEnabled(false);
-       }
-
-       public JTextField getNameField() {
-               return nameField;
-       }
-       
-       public JTextField getValueField() {
-               return valueField;
-       }
-
-       public String getName() {
-               return nameField.getText();
-       }
-
-       public String getValue() {
-               if (valueFromField.isSelected()) {
-                       return getName();
-               }
-               String enteredValue = valueField.getText();
-
-               Matcher m = p.matcher(enteredValue);
-               String result = "";
-               if (m.find()) {
-                       result = m.group();
-               }
-               return result;
-       }
-
-       /**
-        * @return the valueFromField
-        */
-       public JCheckBox getValueFromField() {
-               return valueFromField;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/FilePanel.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/FilePanel.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/FilePanel.java
deleted file mode 100644
index 678711c..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/FilePanel.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.views;
-
-import java.awt.BorderLayout;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.util.List;
-
-import javax.swing.AbstractAction;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import javax.swing.border.EmptyBorder;
-
-import net.sf.taverna.t2.activities.externaltool.utils.Tools;
-import net.sf.taverna.t2.lang.ui.DeselectingButton;
-import net.sf.taverna.t2.lang.ui.ReadOnlyTextArea;
-
-/**
- * @author alanrw
- *
- */
-public class FilePanel extends JPanel {
-       
-       private int outputGridy = 1;
-       private final ExternalToolConfigView view;
-       
-       public FilePanel(final ExternalToolConfigView view,
-                       final List<ExternalToolFileViewer> viewList,
-                       String fileHeader, String typeHeader, final String 
portPrefix,
-                       final String description, String addText) {
-               super();
-               this.view = view;
-               this.setLayout(new BorderLayout());
-               final JPanel fileEditPanel = new JPanel(new GridBagLayout());
-
-               final GridBagConstraints fileConstraint = new 
GridBagConstraints();
-               fileConstraint.insets = new Insets(5, 5, 5, 5);
-               fileConstraint.anchor = GridBagConstraints.FIRST_LINE_START;
-               fileConstraint.gridx = 0;
-               fileConstraint.gridy = 0;
-               fileConstraint.weightx = 0.1;
-               fileConstraint.fill = GridBagConstraints.BOTH;
-               
-               final String[] elementLabels = new String[] {"Taverna port 
name",
-                               "Use port name for file",
-                               fileHeader,
-                               typeHeader
-               };
-
-               fileConstraint.gridx = 0;
-               synchronized (viewList) {
-                       for (ExternalToolFileViewer outputView : viewList) {
-                               addFileViewer(viewList, this, fileEditPanel,
-                                               outputView, elementLabels);
-                       }
-               }
-               JButton addFilePortButton = new DeselectingButton(addText,
-                               new AbstractAction() {
-                       public void actionPerformed(ActionEvent e) {
-
-                               int portNumber = 1;
-
-                               String name2 = portPrefix + portNumber++;
-                               boolean nameExists = true;
-                               while (nameExists == true) {
-                                       nameExists = view.portNameExists(name2);
-                                       if (nameExists) {
-                                               name2 = portPrefix + 
portNumber++;
-                                       }
-                               }
-
-                               ExternalToolFileViewer newViewer = new 
ExternalToolFileViewer(
-                                               name2);
-                               synchronized (viewList) {
-                                       viewList.add(newViewer);
-                                       addFileViewer(viewList, FilePanel.this, 
fileEditPanel,
-                                                       newViewer, 
elementLabels);
-                                       fileEditPanel.revalidate();
-                                       fileEditPanel.repaint();
-                               }
-                       }
-
-               });
-               JTextArea descriptionText = new ReadOnlyTextArea(description);
-               descriptionText.setEditable(false);
-               descriptionText.setFocusable(false);
-               descriptionText.setBorder(new EmptyBorder(5, 5, 10, 5));
-
-               this.add(descriptionText, BorderLayout.NORTH);
-
-               this.add(new JScrollPane(fileEditPanel), BorderLayout.CENTER);
-
-               JPanel buttonPanel = new JPanel(new BorderLayout());
-
-               buttonPanel.add(addFilePortButton, BorderLayout.EAST);
-
-               this.add(buttonPanel, BorderLayout.SOUTH);
-       
-       }
-       
-       private void addFileViewer(final List<ExternalToolFileViewer> viewList,
-                       final JPanel outerPanel, final JPanel panel,
-                       ExternalToolFileViewer viewer, String[] elementLabels) {
-               Tools.addViewer(panel,
-                               elementLabels,
-                               new JComponent[] {viewer.getNameField(), 
viewer.getValueFromField(), viewer.getValueField(), viewer.getTypeSelector()},
-                               viewList,
-                               viewer,
-                               outerPanel);
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/InvocationPanel.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/InvocationPanel.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/InvocationPanel.java
deleted file mode 100644
index a3221ab..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/InvocationPanel.java
+++ /dev/null
@@ -1,396 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.views;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.Arrays;
-import java.util.Comparator;
-
-import javax.swing.AbstractAction;
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.ButtonGroup;
-import javax.swing.DefaultComboBoxModel;
-import javax.swing.DefaultListCellRenderer;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.JRadioButton;
-import javax.swing.JTextArea;
-import javax.swing.SwingUtilities;
-import javax.swing.border.EmptyBorder;
-
-import 
net.sf.taverna.t2.activities.externaltool.ExternalToolActivityConfigurationBean;
-import 
net.sf.taverna.t2.activities.externaltool.ExternalToolActivityHealthChecker;
-import 
net.sf.taverna.t2.activities.externaltool.configuration.ToolInvocationConfiguration;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroup;
-import 
net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupAddedEvent;
-import 
net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupRemovedEvent;
-import 
net.sf.taverna.t2.activities.externaltool.manager.InvocationManagerEvent;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanism;
-import 
net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismAddedEvent;
-import 
net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismRemovedEvent;
-import 
net.sf.taverna.t2.activities.externaltool.manager.ToolInvocationConfigurationPanel;
-import 
net.sf.taverna.t2.activities.externaltool.manager.impl.InvocationGroupManagerImpl;
-import org.apache.taverna.lang.observer.Observable;
-import org.apache.taverna.lang.observer.Observer;
-import net.sf.taverna.t2.lang.ui.DeselectingButton;
-import 
net.sf.taverna.t2.workbench.ui.impl.configuration.ui.T2ConfigurationFrame;
-
-import org.apache.log4j.Logger;
-
-/**
- * @author alanrw
- *
- */
-public class InvocationPanel extends JPanel implements 
Observer<InvocationManagerEvent> {
-       
-       private static final String LOCATION_DESCRIPTION = 
ToolInvocationConfigurationPanel.HEADER_TEXT;
-       private final JComboBox mechanismSelection;
-       private final JComboBox groupSelection;
-       
-       private DefaultComboBoxModel mechanismSelectionModel = new 
DefaultComboBoxModel();
-       private DefaultComboBoxModel groupSelectionModel = new 
DefaultComboBoxModel();
-
-       private static InvocationGroupManagerImpl manager = 
InvocationGroupManagerImpl.getInstance();
-       
-       private static Logger logger = Logger
-       .getLogger(InvocationPanel.class);
-       
-       private JRadioButton unmanagedLocation;
-       private JRadioButton groupSelected;
-       private JRadioButton mechanismSelected;
-       private JButton manageInvocation;
-       private ButtonGroup mechanismOrGroup;
-       private ExternalToolActivityConfigurationBean configuration;
-       
-       private ActionListener radioChangeListener;
-       
-       boolean unmanagedShown = false;
-
-       public InvocationPanel(ExternalToolActivityConfigurationBean 
configuration) {
-               super();
-               manager.addObserver(this);
-               
-               mechanismSelection = new JComboBox();
-               populateMechanismList();
-               mechanismSelection.setModel(mechanismSelectionModel);
-               
-               groupSelection = new JComboBox();
-               populateGroupList();
-               groupSelection.setModel(groupSelectionModel);
-               populateInvocationPanel(configuration);
-               
-               radioChangeListener = new AbstractAction() {
-
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               if (unmanagedShown && 
unmanagedLocation.isSelected()) {
-                                       setUnmanagedLocationSelectability(true);
-                                       setMechanismSelectability(false);
-                                       setGroupSelectability(false);
-                                       return;
-                               }
-                               if (mechanismSelected.isSelected()) {
-                                       if (unmanagedShown) {
-                                               
setUnmanagedLocationSelectability(false);
-                                       }
-                                       setMechanismSelectability(true);
-                                       setGroupSelectability(false);
-                                       return;
-                               }
-                               if (unmanagedShown) {
-                                       
setUnmanagedLocationSelectability(false);
-                               }
-                               setMechanismSelectability(false);
-                               setGroupSelectability(true);
-                               return;                 }
-                       
-               };
-               if (unmanagedShown) {
-                       
unmanagedLocation.addActionListener(radioChangeListener);
-               }
-               groupSelected.addActionListener(radioChangeListener);
-               mechanismSelected.addActionListener(radioChangeListener);
-       }
-       
-       private void populateMechanismList() {
-               InvocationMechanism currentSelection = (InvocationMechanism) 
mechanismSelection.getSelectedItem();
-               InvocationMechanism[] mechanisms = 
InvocationGroupManagerImpl.getInstance()
-                               .getMechanisms().toArray(new 
InvocationMechanism[] {});
-               Arrays.sort(mechanisms, new Comparator<InvocationMechanism>() {
-
-                       @Override
-                       public int compare(InvocationMechanism arg0, 
InvocationMechanism arg1) {
-                               return arg0.getName().compareTo(
-                                               arg1.getName());
-                       }
-               });
-               mechanismSelectionModel.removeAllElements();
-               for (InvocationMechanism mechanism : mechanisms) {
-                       mechanismSelectionModel.addElement(mechanism);
-                       logger.info("Added mechanism " + mechanism.hashCode());
-               }
-               if (currentSelection != null) {
-                       mechanismSelection.setSelectedItem(currentSelection);
-               }
-               
-       }
-
-       private void populateGroupList() {
-               InvocationGroup currentSelection = (InvocationGroup) 
groupSelection.getSelectedItem();
-               InvocationGroup[] groups = 
InvocationGroupManagerImpl.getInstance()
-                               .getInvocationGroups().toArray(new 
InvocationGroup[] {});
-               Arrays.sort(groups, new Comparator<InvocationGroup>() {
-
-                       @Override
-                       public int compare(InvocationGroup arg0, 
InvocationGroup arg1) {
-                               return arg0.getName().compareTo(
-                                               arg1.getName());
-                       }
-               });
-               groupSelectionModel.removeAllElements();
-               for (InvocationGroup group : groups) {
-                       groupSelectionModel.addElement(group);
-                       logger.info("Added group " + group.hashCode());
-               }
-               if (currentSelection != null) {
-                       groupSelection.setSelectedItem(currentSelection);
-               }
-               
-       }
-
-       
-       private void 
populateInvocationPanel(ExternalToolActivityConfigurationBean configuration) {
-               this.configuration = configuration;
-               this.removeAll();
-               this.setLayout(new BorderLayout());
-
-               JTextArea descriptionText = new JTextArea(
-                               LOCATION_DESCRIPTION);
-               descriptionText.setEditable(false);
-               descriptionText.setFocusable(false);
-               descriptionText.setBorder(new EmptyBorder(5, 5, 10, 5));
-               descriptionText.setLineWrap(true);
-               descriptionText.setWrapStyleWord(true);
-               descriptionText.setRows(3);
-               this.add(descriptionText, BorderLayout.NORTH);
-               
-               JPanel innerPanel = new JPanel(new BorderLayout());
-               
-               mechanismOrGroup = new ButtonGroup();
-
-               JPanel subPanel = new JPanel(new GridLayout(4,1));
-               
-               if (isUnmanaged(configuration)) {
-                       createUnmanagedLocation(subPanel);
-                       unmanagedShown = true;
-               }
-               
-               subPanel.add(createMechanismPanel());
-               
-               subPanel.add(createGroupPanel());
-               
-               subPanel.add(createButtonPanel());
-               
-               innerPanel.add(subPanel, BorderLayout.NORTH);
-               innerPanel.add(new JPanel(), BorderLayout.CENTER);
-               
-               initializeSelectability();
-               this.add(innerPanel, BorderLayout.CENTER);
-               this.repaint();
-       }
-
-       private boolean isUnmanaged(
-                       ExternalToolActivityConfigurationBean configuration2) {
-               return 
(!ExternalToolActivityHealthChecker.updateLocation(configuration2));
-       }
-
-       private void initializeSelectability() {
-               if (isUnmanaged(configuration)) {
-                       unmanagedLocation.setSelected(true);
-                       setUnmanagedLocationSelectability(true);
-                       setMechanismSelectability(false);
-                       setGroupSelectability(false);
-                       return;
-               }
-               if (configuration.getInvocationGroup() == null) {
-                       mechanismSelected.setSelected(true);
-                       if (unmanagedShown) {
-                               setUnmanagedLocationSelectability(false);
-                       }
-                       setMechanismSelectability(true);
-                       setGroupSelectability(false);
-                       return;
-               }
-               groupSelected.setSelected(true);
-               if (unmanagedShown) {
-                       setUnmanagedLocationSelectability(false);
-               }
-               setMechanismSelectability(false);
-               setGroupSelectability(true);
-               return;
-       }
-
-       private void setGroupSelectability(boolean b) {
-               groupSelection.setEnabled(b);
-       }
-
-       private void setMechanismSelectability(boolean b) {
-               mechanismSelection.setEnabled(b);
-       }
-
-       private void setUnmanagedLocationSelectability(boolean b) {
-               // Nothing to do
-       }
-
-       private JPanel createGroupPanel() {
-               JPanel groupPanel = new JPanel(new BorderLayout());
-               
-               JPanel groupSelectionPanel = new JPanel(new GridLayout(1, 2));
-               groupSelected = new JRadioButton("Select a symbolic location");
-               mechanismOrGroup.add(groupSelected);
-               groupSelected.setBorder(new EmptyBorder(10, 10, 10, 10));
-               groupSelectionPanel.add(groupSelected);
-
-               groupSelection.setRenderer(new DefaultListCellRenderer() {
-
-                       @Override
-                       public Component getListCellRendererComponent(JList 
arg0,
-                                       Object arg1, int arg2, boolean arg3, 
boolean arg4) {
-                               if (arg1 instanceof InvocationGroup) {
-                                       return 
super.getListCellRendererComponent(arg0,
-                                                       ((InvocationGroup) 
arg1).getName(),
-                                                       arg2, arg3, arg4);
-                               }
-                               return super.getListCellRendererComponent(arg0, 
arg1, arg2,
-                                               arg3, arg4);
-                       }
-               });
-
-               groupSelectionPanel.add(groupSelection); 
-
-               groupPanel.add(groupSelectionPanel, BorderLayout.CENTER);
-               
-               if (configuration.getInvocationGroup() != null) {
-                       
groupSelection.setSelectedItem(configuration.getInvocationGroup());
-               } else {
-                       
groupSelection.setSelectedItem(manager.getDefaultGroup());
-               }
-
-               return groupPanel;
-       }
-
-       private JPanel createMechanismPanel() {
-               JPanel mechanismPanel = new JPanel(new BorderLayout());
-               JPanel mechanismSelectionPanel = new JPanel(new GridLayout(1, 
3));
-               mechanismSelected = new JRadioButton("Select an explicit 
location");
-               mechanismOrGroup.add(mechanismSelected);
-               mechanismSelected.setBorder(new EmptyBorder(10, 10, 10, 10));
-               mechanismSelectionPanel.add(mechanismSelected);
-
-               mechanismSelection.setRenderer(new DefaultListCellRenderer() {
-
-                       @Override
-                       public Component getListCellRendererComponent(JList 
arg0,
-                                       Object arg1, int arg2, boolean arg3, 
boolean arg4) {
-                               if (arg1 instanceof InvocationMechanism) {
-                                       return 
super.getListCellRendererComponent(arg0,
-                                                       ((InvocationMechanism) 
arg1).getName(),
-                                                       arg2, arg3, arg4);
-                               }
-                               return super.getListCellRendererComponent(arg0, 
arg1, arg2,
-                                               arg3, arg4);
-                       }
-               });
-
-               mechanismSelectionPanel.add(mechanismSelection);
-
-               mechanismPanel.add(mechanismSelectionPanel, 
BorderLayout.CENTER);
-               if (configuration.getMechanism() != null) {
-                       
mechanismSelection.setSelectedItem(configuration.getMechanism());
-               } else {
-                       
mechanismSelection.setSelectedItem(manager.getDefaultMechanism());
-               }
-               return mechanismPanel;
-
-       }
-       
-       private JPanel createButtonPanel() {
-               JPanel buttonPanel = new JPanel(new FlowLayout());
-               manageInvocation = new DeselectingButton("Manage locations",
-                               new AbstractAction() {
-
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               
T2ConfigurationFrame.showConfiguration(ToolInvocationConfiguration.getInstance().getDisplayName());
-                       }});
-               buttonPanel.add(manageInvocation); 
-               return buttonPanel;             
-       }
-
-       private void createUnmanagedLocation(JPanel subPanel) {
-               unmanagedLocation = new JRadioButton("Continue using unmanaged 
location");
-               subPanel.add(unmanagedLocation);
-               mechanismOrGroup.add(unmanagedLocation);
-       }
-
-       private void handleInvocationManagerMessage(InvocationManagerEvent 
message) {
-               if (message instanceof InvocationMechanismRemovedEvent) {
-                       InvocationMechanism removedMechanism = 
((InvocationMechanismRemovedEvent) message).getRemovedMechanism();
-                       InvocationMechanism replacementMechanism = 
((InvocationMechanismRemovedEvent) message).getReplacementMechanism();
-                       if 
(mechanismSelection.getSelectedItem().equals(removedMechanism)) {
-                               
mechanismSelection.setSelectedItem(replacementMechanism);
-                       }
-                       mechanismSelectionModel.removeElement(removedMechanism);
-               } else if (message instanceof InvocationMechanismAddedEvent) {
-                       populateMechanismList();
-               }
-               else if (message instanceof InvocationGroupRemovedEvent) {
-                       InvocationGroup removedGroup = 
((InvocationGroupRemovedEvent) message).getRemovedGroup();
-                       InvocationGroup replacementGroup = 
((InvocationGroupRemovedEvent) message).getReplacementGroup();
-                       if 
(groupSelection.getSelectedItem().equals(removedGroup)) {
-                               
groupSelection.setSelectedItem(replacementGroup);
-                       }
-                       groupSelectionModel.removeElement(removedGroup);
-               } else if (message instanceof InvocationGroupAddedEvent) {
-                       populateGroupList();
-               }       
-       }
-       
-       @Override
-       public void notify(Observable<InvocationManagerEvent> sender,
-                       final InvocationManagerEvent message) throws Exception {
-               if (SwingUtilities.isEventDispatchThread()) {
-                       handleInvocationManagerMessage(message);
-               } else {
-                       SwingUtilities.invokeLater(new Runnable() {
-                               public void run() {
-                                       handleInvocationManagerMessage(message);
-                               }
-                       });
-               }       }
-
-       public void fillInConfiguration(
-                       ExternalToolActivityConfigurationBean newConfiguration) 
{
-               if (unmanagedShown && unmanagedLocation.isSelected()) {
-                       return;
-               }
-               if (mechanismSelected.isSelected()) {
-                       newConfiguration.setMechanism((InvocationMechanism) 
mechanismSelection.getSelectedItem());
-                       return;
-               }
-               newConfiguration.setInvocationGroup((InvocationGroup) 
groupSelection.getSelectedItem());        
-       }
-
-       public void stopObserving() {
-               manager.removeObserver(this);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/LoadDescriptionAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/LoadDescriptionAction.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/LoadDescriptionAction.java
deleted file mode 100644
index 7f0d82f..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/LoadDescriptionAction.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.views;
-
-import java.awt.event.ActionEvent;
-import java.io.IOException;
-import java.io.StringBufferInputStream;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import javax.swing.AbstractAction;
-import javax.swing.JOptionPane;
-
-import net.sf.taverna.t2.lang.ui.FileTools;
-
-import org.jdom.Document;
-import org.jdom.JDOMException;
-
-import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription;
-import de.uni_luebeck.inb.knowarc.usecases.UseCaseEnumeration;
-
-final class LoadDescriptionAction extends AbstractAction {
-       /**
-        * 
-        */
-       private final ScriptPanel scriptPanel;
-       private final ExternalToolConfigView view;
-
-       LoadDescriptionAction(ScriptPanel scriptPanel, ExternalToolConfigView 
view) {
-               this.scriptPanel = scriptPanel;
-               this.view = view;
-       }
-
-       public void actionPerformed(ActionEvent e) {
-               String descriptionsString = FileTools.readStringFromFile(
-                               this.scriptPanel, "Load tool description",
-                               ".xml");
-               if (descriptionsString != null) {
-                       String errorMessage = null;
-                       try {
-                               Document doc = ScriptPanel.builder
-                                               .build(new 
StringReader(descriptionsString));
-                               List<UseCaseDescription> descriptions = 
UseCaseEnumeration.readDescriptionsFromStream(new 
StringBufferInputStream(descriptionsString));
-                               if (descriptions.isEmpty()) {
-                                       
JOptionPane.showMessageDialog(this.scriptPanel, "No tool descriptions found", 
"File content", JOptionPane.ERROR_MESSAGE);
-                                       return;
-                               }
-                               
-                               if (descriptions.size() == 1) {
-                                       
view.getConfiguration().setUseCaseDescription(descriptions.get(0));
-                                       
view.refreshConfiguration(view.getConfiguration());
-                                       return;
-                               }
-                               
-                               List<String> descriptionNames = new ArrayList();
-                               for (UseCaseDescription ud : descriptions) {
-                                       descriptionNames.add(ud.getUsecaseid());
-                               }
-                               Collections.sort(descriptionNames);
-                               String chosenName = (String) 
JOptionPane.showInputDialog(this.scriptPanel, "Please select a tool 
description",
-                                               "Select tool description", 
JOptionPane.PLAIN_MESSAGE, null, descriptionNames.toArray(), 
descriptionNames.get(0));
-                               if (chosenName != null) {
-                                       for (UseCaseDescription ud : 
descriptions) {
-                                               if 
(ud.getUsecaseid().equals(chosenName)) {
-                                                       
view.getConfiguration().setUseCaseDescription(ud);
-                                                       
view.refreshConfiguration(view.getConfiguration());
-                                                       return;
-                                                       
-                                               }
-                                       }
-                               }
-                       } catch (JDOMException e1) {
-                               errorMessage = e1.getMessage();
-                       } catch (IOException e1) {
-                               errorMessage = e1.getMessage();
-                       } catch (Exception e1) {
-                               errorMessage = e1.getMessage();
-                       }
-                       if (errorMessage != null) {
-                               JOptionPane.showMessageDialog(null, 
errorMessage,
-                                               "Tool description load error",
-                                               JOptionPane.ERROR_MESSAGE);
-                       }
-               }
-       }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/SaveDescriptionAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/SaveDescriptionAction.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/SaveDescriptionAction.java
deleted file mode 100644
index 31266b4..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/SaveDescriptionAction.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.views;
-
-import java.awt.Component;
-import java.awt.event.ActionEvent;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.prefs.Preferences;
-
-import javax.swing.AbstractAction;
-import javax.swing.JFileChooser;
-import javax.swing.JOptionPane;
-
-import net.sf.taverna.t2.lang.ui.ExtensionFileFilter;
-import net.sf.taverna.t2.lang.ui.FileTools;
-
-import org.apache.log4j.Logger;
-import org.jdom.Element;
-import org.jdom.output.Format;
-import org.jdom.output.XMLOutputter;
-
-import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription;
-import de.uni_luebeck.inb.knowarc.usecases.UseCaseEnumeration;
-
-final class SaveDescriptionAction extends AbstractAction {
-       /**
-        * 
-        */
-       private final ScriptPanel scriptPanel;
-       private final ExternalToolConfigView view;
-       
-       private static Logger logger = 
Logger.getLogger(SaveDescriptionAction.class);
-
-       private static XMLOutputter outputter = new XMLOutputter(Format
-                       .getPrettyFormat());
-
-       SaveDescriptionAction(ScriptPanel scriptPanel, ExternalToolConfigView 
view) {
-               this.scriptPanel = scriptPanel;
-               this.view = view;
-       }
-
-       public void actionPerformed(ActionEvent e) {
-               UseCaseDescription currentDescription = 
view.makeConfiguration().getUseCaseDescription();
-               String usecaseid = currentDescription.getUsecaseid();
-               String description = currentDescription.getDescription();
-               String group = currentDescription.getGroup();
-               if ((usecaseid == null) || usecaseid.isEmpty() || (description 
== null) || description.isEmpty() || (group == null) || group.isEmpty()) {
-                       JOptionPane.showMessageDialog(view, "Please fill in the 
tool annotation and\nthen re-export the description", "Missing annotation", 
JOptionPane.PLAIN_MESSAGE, null);
-                       view.showAnnotationPanel();
-               } else {
-               saveStringToFile(this.scriptPanel,
-                               "Save tool description", ".xml", 
currentDescription);
-               }
-       }
-       
-       public static boolean saveStringToFile(Component parent, String 
dialogTitle, String extension, UseCaseDescription description) {
-               JFileChooser fileChooser = new JFileChooser();
-               fileChooser.setDialogTitle(dialogTitle);
-
-               fileChooser.resetChoosableFileFilters();
-               fileChooser.setAcceptAllFileFilterUsed(true);
-               
-               fileChooser.setFileFilter(new ExtensionFileFilter(new String[] 
{ extension }));
-
-               Preferences prefs = 
Preferences.userNodeForPackage(FileTools.class);
-               String curDir = prefs
-                               .get("currentDir", 
System.getProperty("user.home"));
-               fileChooser.setCurrentDirectory(new File(curDir));
-
-               boolean tryAgain = true;
-               while (tryAgain) {
-                       tryAgain = false;
-                       int returnVal = fileChooser.showSaveDialog(parent);
-                       if (returnVal == JFileChooser.APPROVE_OPTION) {
-                               prefs.put("currentDir", 
fileChooser.getCurrentDirectory()
-                                               .toString());
-                               File file = fileChooser.getSelectedFile();
-                               if (!file.getName().contains(".")) {
-                                       String newName = file.getName() + 
extension;
-                                       file = new File(file.getParentFile(), 
newName);
-                               }
-
-                               // TODO: Open in separate thread to avoid 
hanging UI
-                               try {
-                                       List<UseCaseDescription> 
currentDescriptions;
-                                       if (file.exists()) {
-                                               currentDescriptions = 
UseCaseEnumeration.readDescriptionsFromStream(new FileInputStream(file));
-                                       } else {
-                                               currentDescriptions = new 
ArrayList<UseCaseDescription>();
-                                       }
-                                       Element overallElement = new 
Element("usecases");
-                                       for (UseCaseDescription ud : 
currentDescriptions) {
-                                               if 
(!ud.getUsecaseid().equals(description.getUsecaseid())) {
-                                                       
overallElement.addContent(ud.writeToXMLElement());
-                                               }
-                                       }
-
-                                       
overallElement.addContent(description.writeToXMLElement());
-                                       BufferedWriter out = new 
BufferedWriter(new FileWriter(file));
-                               
out.write(outputter.outputString(overallElement));
-                               out.close();
-                                       logger.info("Saved content by 
overwriting " + file);
-                                       return true;
-                               } catch (IOException ex) {
-                                       logger.warn("Could not save content to 
" + file, ex);
-                                       JOptionPane.showMessageDialog(parent,
-                                                       "Could not save to " + 
file + ": \n\n"
-                                                                       + 
ex.getMessage(), "Warning",
-                                                       
JOptionPane.WARNING_MESSAGE);
-                                       return false;
-                               }
-                       }
-               }
-               return false;
-       }
-       
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ScriptPanel.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ScriptPanel.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ScriptPanel.java
deleted file mode 100644
index bf902d7..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ScriptPanel.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.views;
-
-import java.awt.BorderLayout;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.io.IOException;
-
-import javax.swing.AbstractAction;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
-import javax.swing.border.EmptyBorder;
-import javax.swing.text.JTextComponent;
-
-import 
net.sf.taverna.t2.activities.externaltool.ExternalToolActivityConfigurationBean;
-import net.sf.taverna.t2.lang.ui.DeselectingButton;
-import net.sf.taverna.t2.lang.ui.LineEnabledTextPanel;
-
-import org.jdom.input.SAXBuilder;
-
-import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription;
-import de.uni_luebeck.inb.knowarc.usecases.UseCaseEnumeration;
-
-
-/**
- * @author alanrw
- *
- */
-public class ScriptPanel extends JPanel {
-       
-       private static final String SCRIPT_DESCRIPTION = "Specify the commands 
that you want to run. You can use data arriving at an input port to replace 
parts of the command or to write to a file. You can also take data written to a 
file and send it to an output port.";
-       static SAXBuilder builder = new SAXBuilder();
-       private final JTextComponent scriptTextArea;
-       
-       public ScriptPanel(final ExternalToolConfigView view, JTextComponent 
scriptTextArea, JCheckBox stdInCheckBox, JCheckBox stdOutCheckBox, JCheckBox 
stdErrCheckBox, JTextField returnCodesField) {
-               super();
-               this.setLayout(new BorderLayout());
-       
-               JTextArea descriptionText = new JTextArea(
-                               SCRIPT_DESCRIPTION);
-               descriptionText.setEditable(false);
-               descriptionText.setFocusable(false);
-               descriptionText.setBorder(new EmptyBorder(5, 5, 10, 5));
-               descriptionText.setLineWrap(true);
-               descriptionText.setWrapStyleWord(true);
-               this.add(descriptionText, BorderLayout.NORTH);
-
-               this.scriptTextArea = scriptTextArea;
-               
-               this.add(new LineEnabledTextPanel(scriptTextArea),
-                               BorderLayout.CENTER);
-               
-
-               UseCaseDescription useCaseDescription = 
view.getConfiguration().getUseCaseDescription();
-               stdInCheckBox.setSelected(useCaseDescription.isIncludeStdIn());
-               
stdOutCheckBox.setSelected(useCaseDescription.isIncludeStdOut());
-               
stdErrCheckBox.setSelected(useCaseDescription.isIncludeStdErr());
-               
returnCodesField.setText(useCaseDescription.getReturnCodesAsText());
-               
-               JPanel codesPanel = new JPanel(new FlowLayout());
-               codesPanel.add(new JLabel("Valid return codes:"));
-               codesPanel.add(returnCodesField);
-
-               JPanel streamPanel = new JPanel(new FlowLayout());
-               streamPanel.add(stdInCheckBox);
-               streamPanel.add(stdOutCheckBox);
-               streamPanel.add(stdErrCheckBox);
-
-               JPanel buttonPanel = new JPanel(new FlowLayout());
-               if (view.isOriginallyFromRepository()) {
-                       JButton revertButton = new DeselectingButton("Revert to 
original description",
-                                       new AbstractAction(){
-
-                               @Override
-                               public void actionPerformed(ActionEvent e) {
-                                       ExternalToolActivityConfigurationBean 
bean = view.makeConfiguration();
-                                       String repositoryUrl = 
bean.getRepositoryUrl();
-                                       String id = bean.getExternaltoolid();
-                                       UseCaseDescription usecase = null;
-                                       try {
-                                               usecase = 
UseCaseEnumeration.readDescriptionFromUrl(
-                                                       repositoryUrl, id);
-                                       }
-                                       catch (IOException ex) {
-                                               // Already logged
-                                       }
-                                       if (usecase != null) {
-                                               
bean.setUseCaseDescription(usecase);
-                                               view.setEditable(false, bean);
-                                       } else {
-                                               
JOptionPane.showMessageDialog(view, "Unable to find tool description " + id, 
"Missing tool description", JOptionPane.ERROR_MESSAGE);
-                                       }
-                               }});
-                       revertButton.setToolTipText("Revert to the tool 
description from the repository");
-                       buttonPanel.add(revertButton);
-               }
-               JButton loadScriptButton = new DeselectingButton("Load 
description",
-                               new LoadDescriptionAction(this, view));
-               loadScriptButton.setToolTipText("Load tool description from a 
file");
-
-               JButton saveScriptButton = new DeselectingButton("Export 
description",
-                               new SaveDescriptionAction(this, view));
-               saveScriptButton.setToolTipText("Export the tool description to 
a file");
-
-               JButton clearScriptButton = new DeselectingButton("Clear 
script",
-                               new AbstractAction() {
-
-                       public void actionPerformed(ActionEvent e) {
-                               clearScript();
-                       }
-
-               });
-               clearScriptButton.setToolTipText("Clear the script from the 
edit area");
-
-               buttonPanel.add(loadScriptButton);
-               buttonPanel.add(saveScriptButton);
-               buttonPanel.add(clearScriptButton);
-
-               JPanel subPanel = new JPanel(new GridLayout(3,1));
-               subPanel.add(codesPanel);
-               subPanel.add(streamPanel);
-               subPanel.add(buttonPanel);
-
-               this.add(subPanel, BorderLayout.SOUTH);
-       }
-
-       /**
-        * Method for clearing the script
-        * 
-        */
-       private void clearScript() {
-               if (JOptionPane.showConfirmDialog(this,
-                               "Do you really want to clear the tool 
description?",
-                               "Clearing the tool description", 
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
-                       scriptTextArea.setText("");
-               }
-
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticStringPanel.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticStringPanel.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticStringPanel.java
deleted file mode 100644
index 885cab5..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticStringPanel.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.views;
-
-import java.awt.BorderLayout;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.util.List;
-
-import javax.swing.AbstractAction;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
-import javax.swing.border.EmptyBorder;
-
-import net.sf.taverna.t2.activities.externaltool.utils.Tools;
-import net.sf.taverna.t2.lang.ui.DeselectingButton;
-import net.sf.taverna.t2.lang.ui.ReadOnlyTextArea;
-
-/**
- * @author alanrw
- *
- */
-public class StaticStringPanel extends JPanel {
-       
-       private static final String STATIC_STRING_DESCRIPTION = "A fixed string 
can be written to the specified file.";
-       private final List<ExternalToolStaticStringViewer> staticStringViewList;
-       
-       int staticGridy = 1;
-       
-       private static String[] elementLabels = new String[] {"String to copy", 
"To file"};
-       
-       public StaticStringPanel(final List<ExternalToolStaticStringViewer> 
staticStringViewList) {
-               super(new BorderLayout());
-               this.staticStringViewList = staticStringViewList;
-               final JPanel staticEditPanel = new JPanel(new GridBagLayout());
-
-               final GridBagConstraints staticConstraint = new 
GridBagConstraints();
-               staticConstraint.insets = new Insets(5, 5, 5, 5);
-               staticConstraint.anchor = GridBagConstraints.FIRST_LINE_START;
-               staticConstraint.gridx = 0;
-               staticConstraint.gridy = 0;
-               staticConstraint.weightx = 0.1;
-               staticConstraint.fill = GridBagConstraints.BOTH;
-
-               staticConstraint.gridx = 0;
-               synchronized (staticStringViewList) {
-                       for (ExternalToolStaticStringViewer staticView : 
staticStringViewList) {
-                               addStaticStringViewer(StaticStringPanel.this, 
staticEditPanel,
-                                               staticView);
-                       }
-               }
-
-               JTextArea descriptionText = new ReadOnlyTextArea(
-                               STATIC_STRING_DESCRIPTION);
-               descriptionText.setEditable(false);
-               descriptionText.setFocusable(false);
-               descriptionText.setBorder(new EmptyBorder(5, 5, 10, 5));
-               this.add(descriptionText, BorderLayout.NORTH);
-
-               this.add(new JScrollPane(staticEditPanel),
-                               BorderLayout.CENTER);
-               JButton addStaticStringButton = new DeselectingButton("Add 
string",
-                               new AbstractAction() {
-                       // FIXME refactor this into a method
-                       public void actionPerformed(ActionEvent e) {
-
-                               ExternalToolStaticStringViewer newViewer = new 
ExternalToolStaticStringViewer();
-                               synchronized (staticStringViewList) {
-                                       staticStringViewList.add(newViewer);
-                                       
addStaticStringViewer(StaticStringPanel.this, staticEditPanel,
-                                                       newViewer);
-                                       staticEditPanel.revalidate();
-                                       staticEditPanel.repaint();
-                               }
-                       }
-
-               });
-
-               JPanel buttonPanel = new JPanel(new BorderLayout());
-
-               buttonPanel.add(addStaticStringButton, BorderLayout.EAST);
-
-               this.add(buttonPanel, BorderLayout.SOUTH);
-       
-       }
-       
-       private void addStaticStringViewer(final JPanel outerPanel,
-                       final JPanel panel, ExternalToolStaticStringViewer 
viewer) {
-               Tools.addViewer(panel,
-                               elementLabels,
-                               new JComponent[] {new 
JScrollPane(viewer.getContentField()), viewer.getValueField()},
-                               staticStringViewList,
-                               viewer,
-                               outerPanel);
-       }
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticUrlPanel.java
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticUrlPanel.java
 
b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticUrlPanel.java
deleted file mode 100644
index ba441f4..0000000
--- 
a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticUrlPanel.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.views;
-
-import java.awt.BorderLayout;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.util.List;
-
-import javax.swing.AbstractAction;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
-import javax.swing.border.EmptyBorder;
-
-import net.sf.taverna.t2.activities.externaltool.utils.Tools;
-import net.sf.taverna.t2.lang.ui.DeselectingButton;
-import net.sf.taverna.t2.lang.ui.ReadOnlyTextArea;
-
-/**
- * @author alanrw
- *
- */
-public class StaticUrlPanel extends JPanel {
-       
-       private static final String STATIC_URL_DESCRIPTION = "The data at a URL 
can be downloaded and stored in the specified file.";
-       private final List<ExternalToolStaticUrlViewer> staticUrlViewList;
-       private int staticGridy = 1;
-
-       private static String[] elementLabels = new String[] {"Copy from URL", 
"To file"};
-       
-
-       public StaticUrlPanel(final List<ExternalToolStaticUrlViewer> 
staticUrlViewList) {
-       
-       super(new BorderLayout());
-       this.staticUrlViewList = staticUrlViewList;
-       final JPanel staticEditPanel = new JPanel(new GridBagLayout());
-
-       final GridBagConstraints staticConstraint = new GridBagConstraints();
-       staticConstraint.insets = new Insets(5, 5, 5, 5);
-       staticConstraint.anchor = GridBagConstraints.FIRST_LINE_START;
-       staticConstraint.gridx = 0;
-       staticConstraint.gridy = 0;
-       staticConstraint.weightx = 0.1;
-       staticConstraint.fill = GridBagConstraints.BOTH;
-
-       staticConstraint.gridx = 0;
-       synchronized (staticUrlViewList) {
-               for (ExternalToolStaticUrlViewer staticView : 
staticUrlViewList) {
-                       addStaticUrlViewer(this, staticEditPanel,
-                                       staticView);
-               }
-       }
-
-       this.add(new JScrollPane(staticEditPanel),
-                       BorderLayout.CENTER);
-
-       JTextArea descriptionText = new ReadOnlyTextArea(
-                       STATIC_URL_DESCRIPTION);
-       descriptionText.setEditable(false);
-       descriptionText.setFocusable(false);
-       descriptionText.setBorder(new EmptyBorder(5, 5, 10, 5));
-
-       this.add(descriptionText, BorderLayout.NORTH);
-
-       JButton addstaticPortButton = new DeselectingButton("Add URL",
-                       new AbstractAction() {
-               // FIXME refactor this into a method
-               public void actionPerformed(ActionEvent e) {
-
-                       ExternalToolStaticUrlViewer newViewer = new 
ExternalToolStaticUrlViewer();
-                       synchronized (staticUrlViewList) {
-                               staticUrlViewList.add(newViewer);
-                               addStaticUrlViewer(StaticUrlPanel.this, 
staticEditPanel,
-                                               newViewer);
-                               staticEditPanel.revalidate();
-                               staticEditPanel.repaint();
-                       }
-               }
-
-       });
-       JPanel buttonPanel = new JPanel(new BorderLayout());
-
-       buttonPanel.add(addstaticPortButton, BorderLayout.EAST);
-
-       this.add(buttonPanel, BorderLayout.SOUTH);
-
-       }
-       
-       private void addStaticUrlViewer(final JPanel outerPanel,
-                       final JPanel panel, ExternalToolStaticUrlViewer viewer) 
{
-               Tools.addViewer(panel,
-                               elementLabels,
-                               new JComponent[] {viewer.getContentField(), 
viewer.getValueField()},
-                               staticUrlViewList,
-                               viewer,
-                               outerPanel);
-       }
-
-
-}

Reply via email to