http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/LinePainter.java
----------------------------------------------------------------------
diff --git a/ui/src/main/java/net/sf/taverna/t2/lang/ui/LinePainter.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/LinePainter.java
deleted file mode 100644
index 0fb2926..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/LinePainter.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package net.sf.taverna.t2.lang.ui;
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.event.*;
-import javax.swing.text.*;
-
-/*
- *  Track the movement of the Caret by painting a background line at the
- *  current caret position.
- *  
- *  Copied from http://www.camick.com/java/source/LinePainter.java
- *  
- *  Written by Rob Camick
- */
-public class LinePainter
-       implements Highlighter.HighlightPainter, CaretListener, MouseListener, 
MouseMotionListener
-{
-       private JTextComponent component;
-
-       private Color color;
-
-       private Rectangle lastView;
-
-       /*
-        *  The line color will be calculated automatically by attempting
-        *  to make the current selection lighter by a factor of 1.2.
-        *
-        *  @param component  text component that requires background line 
painting
-        */
-       public LinePainter(JTextComponent component)
-       {
-               this(component, null);
-               setLighter(component.getSelectionColor());
-       }
-
-       /*
-        *  Manually control the line color
-        *
-        *  @param component  text component that requires background line 
painting
-        *  @param color      the color of the background line
-        */
-       public LinePainter(JTextComponent component, Color color)
-       {
-               this.component = component;
-               setColor( color );
-
-               //  Add listeners so we know when to change highlighting
-
-               component.addCaretListener( this );
-               component.addMouseListener( this );
-               component.addMouseMotionListener( this );
-
-               //  Turn highlighting on by adding a dummy highlight
-
-               try
-               {
-                       component.getHighlighter().addHighlight(0, 0, this);
-               }
-               catch(BadLocationException ble) {}
-       }
-
-       /*
-        *      You can reset the line color at any time
-        *
-        *  @param color  the color of the background line
-        */
-       public void setColor(Color color)
-       {
-               this.color = color;
-       }
-
-       /*
-        *  Calculate the line color by making the selection color lighter
-        *
-        *  @return the color of the background line
-        */
-       public void setLighter(Color color)
-       {
-               int red   = Math.min(255, (int)(color.getRed() * 1.2));
-               int green = Math.min(255, (int)(color.getGreen() * 1.2));
-               int blue  = Math.min(255, (int)(color.getBlue() * 1.2));
-               setColor(new Color(red, green, blue));
-       }
-
-       //  Paint the background highlight
-
-       public void paint(Graphics g, int p0, int p1, Shape bounds, 
JTextComponent c)
-       {
-               try
-               {
-                       Rectangle r = c.modelToView(c.getCaretPosition());
-                       g.setColor( color );
-                       g.fillRect(0, r.y, c.getWidth(), r.height);
-
-                       if (lastView == null)
-                               lastView = r;
-               }
-               catch(BadLocationException ble) {System.out.println(ble);}
-       }
-
-       /*
-       *   Caret position has changed, remove the highlight
-       */
-       private void resetHighlight()
-       {
-               //  Use invokeLater to make sure updates to the Document are 
completed,
-               //  otherwise Undo processing causes the modelToView method to 
loop.
-
-               SwingUtilities.invokeLater(new Runnable()
-               {
-                       public void run()
-                       {
-                               try
-                               {
-                                       int offset =  
component.getCaretPosition();
-                                       Rectangle currentView = 
component.modelToView(offset);
-
-                                       if (lastView == null) {
-                                               lastView = currentView;
-                                       } else {
-                                               //  Remove the highlighting 
from the previously highlighted line
-                                               if (lastView.y != currentView.y)
-                                               {
-                                                       component.repaint(0, 
lastView.y, component.getWidth(), lastView.height);
-                                                       lastView = currentView;
-                                               }
-                                       }
-                               }
-                               catch(BadLocationException ble) {}
-                       }
-               });
-       }
-
-       //  Implement CaretListener
-
-       public void caretUpdate(CaretEvent e)
-       {
-               resetHighlight();
-       }
-
-       //  Implement MouseListener
-
-       public void mousePressed(MouseEvent e)
-       {
-               resetHighlight();
-       }
-
-       public void mouseClicked(MouseEvent e) {}
-       public void mouseEntered(MouseEvent e) {}
-       public void mouseExited(MouseEvent e) {}
-       public void mouseReleased(MouseEvent e) {}
-
-       //  Implement MouseMotionListener
-
-       public void mouseDragged(MouseEvent e)
-       {
-               resetHighlight();
-       }
-
-       public void mouseMoved(MouseEvent e) {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/LineWrappingTextArea.java
----------------------------------------------------------------------
diff --git 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/LineWrappingTextArea.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/LineWrappingTextArea.java
deleted file mode 100644
index dde1566..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/LineWrappingTextArea.java
+++ /dev/null
@@ -1,217 +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.lang.ui;
-
-import java.awt.Component;
-import java.awt.Font;
-import java.awt.FontMetrics;
-import java.text.BreakIterator;
-import java.util.ArrayList;
-
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-
-/**
- * A JTextArea whose text can be line wrapped either
- * based on the size of the scroll pane that holds the text area or by a given
- * line width in characters.
- * 
- * @author Alex Nenadic
- *
- */
-@SuppressWarnings("serial")
-public class LineWrappingTextArea extends JTextArea{
-               
-       String originalText;
-       String[] wrappedLines;
-       int lineWidth;
-       
-       final FontMetrics fontMetrics;
-       
-       public LineWrappingTextArea(String text){
-               super(text);
-               setFont(new Font("Monospaced", Font.PLAIN,12));
-               fontMetrics  = this.getFontMetrics(this.getFont());
-               setCaretPosition(0);
-               originalText = text; 
-       }
-       
-       /**
-        * Based on:
-        * @author Robert Hanson
-        * 
http://progcookbook.blogspot.com/2006/02/text-wrapping-function-for-java.html
-        * 
-        * This function takes a string value and a line length, and returns an 
array of 
-        * lines. Lines are cut on word boundaries, where the word boundary is 
a space 
-        * character. Spaces are included as the last character of a word, so 
most lines 
-        * will actually end with a space. This isn't too problematic, but will 
cause a 
-        * word to wrap if that space pushes it past the max line length.
-        * 
-        * This is a modified version - added various word boundaries based on 
Java's word's 
-        * BreakIterator in addition to simply space character as in the 
original function. 
-        *
-        * 
-        */
-       private String [] wrapTextIntoLines (String text, int len)
-       {               
-               // BreakIterator will take care of word boundary characters for 
us
-               BreakIterator wordIterator = BreakIterator.getWordInstance();
-               wordIterator.setText(text);
-        
-               // return empty array for null text
-               if (text == null)
-                       return new String[] {};
-
-               // return text if len is zero or less
-               if (len <= 0)
-                       return new String[] { text };
-
-               // return text if less than length
-               if (text.length() <= len)
-                       return new String[] { text };
-
-               //char[] chars = text.toCharArray(); // no need to copy the 
text once again
-               ArrayList<String> lines = new ArrayList<String>();
-               StringBuffer line = new StringBuffer();
-               StringBuffer word = new StringBuffer();
-
-               for (int i = 0; i < text.length(); i++) {
-               //for (int i = 0; i < chars.length; i++) {
-                       word.append(text.charAt(i));
-                       //word.append(chars[i]);
-
-                       if (wordIterator.isBoundary(i)){ // is this character a 
word boundary?
-                       //if (chars[i] == ' ') {
-                               if ((line.length() + word.length()) > len) {
-                                       lines.add(line.toString());
-                                       line.delete(0, line.length());
-                               }
-
-                               line.append(word);
-                               word.delete(0, word.length());
-                       }
-               }
-
-               // handle any extra chars in current word
-               if (word.length() > 0) {
-                       if ((line.length() + word.length()) > len) {
-                               lines.add(line.toString());
-                               line.delete(0, line.length());
-                       }
-                       line.append(word);
-               }
-
-               // handle extra line
-               if (line.length() > 0) {
-                       lines.add(line.toString());
-               }
-
-               String[] ret = new String[lines.size()];
-               int c = 0; // counter
-               for (String line2 : lines) {
-                       ret[c++] = line2;
-               }
-
-               return ret;
-       }
-       
-       public void wrapText() {
-               // Figure out how many characters to leave in one line
-               // Based on the size of JTextArea on the screen and font
-               // size - modified from
-               // 
http://www.coderanch.com/t/517006/GUI/java/Visible-column-row-count-JTextArea
-
-               // Get width of any char (font is monospaced)
-               final int charWidth = fontMetrics.charWidth('M');
-               // Get the width of the visible viewport of the scroll pane
-               // that contains the lot - loop until such a scroll pane is 
found
-               JScrollPane scrollPane = null;
-               Component currentComponent = getParent();
-               while (true) {
-                       if (currentComponent == null) {
-                               break;
-                       }
-                       if (currentComponent instanceof JScrollPane) {
-                               scrollPane = (JScrollPane) currentComponent;
-                               break;
-                       } else {
-                               currentComponent = currentComponent.getParent();
-                       }
-               }
-               int prefWidth;
-               int maxChars;
-               if (scrollPane == null) { // We did not find the parent scroll 
pane
-                       maxChars = 80; // wrap into lines of 80 characters
-               } else {
-                       prefWidth = scrollPane.getVisibleRect().width;
-//                     if (scrollPane.getVerticalScrollBar().isVisible()){
-//                             prefWidth = prefWidth - 
scrollPane.getVerticalScrollBar().getWidth();
-//                     }
-                       maxChars = prefWidth / charWidth - 3; // -3 because 
there is some
-                                                                               
                        // space between the text
-                                                                               
                        // area and the edge of
-                                                                               
                        // scroll pane so just to be sure
-               }
-
-               // If we have not wrapped lines before or the
-               // width of the textarea has changed
-               if (wrappedLines == null || lineWidth != maxChars) {
-                       lineWidth = maxChars;
-                       wrappedLines = wrapTextIntoLines(getText(), lineWidth);
-               }
-
-               if (wrappedLines.length >= 1) {
-                       setText(""); // clear the text area
-                       StringBuffer buff = new StringBuffer();
-                       for (int i = 0; i < wrappedLines.length; i++) {
-                               buff.append(wrappedLines[i] + "\n");
-                       }
-                       // Remove the last \n
-                       setText(buff.substring(0, buff.length()-1));
-                       repaint();
-               }
-       }
-       
-       public void wrapText(int numCharactersPerLine){
-               // If we have not wrapped lines before or the
-               // number of characters per line has changed since last 
-               // we wrapped
-               if (wrappedLines == null || lineWidth != numCharactersPerLine) {
-                       lineWidth = numCharactersPerLine;
-                       wrappedLines = wrapTextIntoLines(getText(), lineWidth);
-               }
-
-               if (wrappedLines.length >= 1) {
-                       setText(""); // clear the text area
-                       for (int i = 0; i < wrappedLines.length; i++) {
-                               append(wrappedLines[i] + "\n");
-                       }
-                       repaint();
-               }
-
-       }
-
-       public void unwrapText(){
-        setText(originalText); 
-               repaint();
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/NoWrapEditorKit.java
----------------------------------------------------------------------
diff --git a/ui/src/main/java/net/sf/taverna/t2/lang/ui/NoWrapEditorKit.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/NoWrapEditorKit.java
deleted file mode 100644
index f032d67..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/NoWrapEditorKit.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.lang.ui;
-
-import javax.swing.text.AbstractDocument;
-import javax.swing.text.BoxView;
-import javax.swing.text.ComponentView;
-import javax.swing.text.Element;
-import javax.swing.text.IconView;
-import javax.swing.text.LabelView;
-import javax.swing.text.ParagraphView;
-import javax.swing.text.StyleConstants;
-import javax.swing.text.StyledEditorKit;
-import javax.swing.text.View;
-import javax.swing.text.ViewFactory;
-
-
-/**
- * 
- * The following class is copied from 
http://forums.sun.com/thread.jspa?threadID=622683
- *
- */
-public class NoWrapEditorKit extends StyledEditorKit
-{
-       public ViewFactory getViewFactory()
-       {
-                       return new StyledViewFactory();
-       } 
- 
-       static class StyledViewFactory implements ViewFactory
-       {
-               public View create(Element elem)
-               {
-                       String kind = elem.getName();
- 
-                       if (kind != null)
-                       {
-                               if 
(kind.equals(AbstractDocument.ContentElementName))
-                               {
-                                       return new LabelView(elem);
-                               }
-                               else if 
(kind.equals(AbstractDocument.ParagraphElementName))
-                               {
-                                       return new ParagraphView(elem);
-                               }
-                               else if 
(kind.equals(AbstractDocument.SectionElementName))
-                               {
-                                       return new NoWrapBoxView(elem, 
View.Y_AXIS);
-                               }
-                               else if 
(kind.equals(StyleConstants.ComponentElementName))
-                               {
-                                       return new ComponentView(elem);
-                               }
-                               else if 
(kind.equals(StyleConstants.IconElementName))
-                               {
-                                       return new IconView(elem);
-                               }
-                       }
- 
-                       return new LabelView(elem);
-               }
-       }
-
-       static class NoWrapBoxView extends BoxView {
-        public NoWrapBoxView(Element elem, int axis) {
-            super(elem, axis);
-        }
- 
-        public void layout(int width, int height) {
-            super.layout(32768, height);
-        }
-        public float getMinimumSpan(int axis) {
-            return super.getPreferredSpan(axis);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/ReadOnlyTextArea.java
----------------------------------------------------------------------
diff --git a/ui/src/main/java/net/sf/taverna/t2/lang/ui/ReadOnlyTextArea.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/ReadOnlyTextArea.java
deleted file mode 100644
index 0759605..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/ReadOnlyTextArea.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.lang.ui;
-
-import javax.swing.JTextArea;
-import javax.swing.text.Document;
-
-/**
- * @author alanrw
- *
- */
-public class ReadOnlyTextArea extends JTextArea {
-       
-       public ReadOnlyTextArea () {
-               super();
-               setFields();
-       }
-       
-       public ReadOnlyTextArea(Document doc) {
-               super(doc);
-               setFields();
-       }
-       
-       public ReadOnlyTextArea (Document doc, String text, int rows, int 
columns) {
-               super(doc,text,rows,columns);
-               setFields();
-       }
-       
-       public ReadOnlyTextArea(int rows, int columns) {
-               super(rows, columns);
-               setFields();
-       }
-       
-       public ReadOnlyTextArea(String text) {
-               super(text);
-               setFields();
-       }
-       
-       public ReadOnlyTextArea(String text, int rows, int columns) {
-               super(text, rows, columns);
-               setFields();
-       }
-
-       private void setFields() {
-               super.setEditable(false);
-               super.setLineWrap(true);
-               super.setWrapStyleWord(true);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/SanitisingDocumentFilter.java
----------------------------------------------------------------------
diff --git 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/SanitisingDocumentFilter.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/SanitisingDocumentFilter.java
deleted file mode 100644
index 2a91e18..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/SanitisingDocumentFilter.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.lang.ui;
-
-import java.util.regex.Pattern;
-
-import javax.swing.text.AbstractDocument;
-import javax.swing.text.AttributeSet;
-import javax.swing.text.BadLocationException;
-import javax.swing.text.Document;
-import javax.swing.text.DocumentFilter;
-import javax.swing.text.JTextComponent;
-
-/**
- * @author alanrw
- *
- */
-public class SanitisingDocumentFilter extends DocumentFilter {
-       
-       private static SanitisingDocumentFilter INSTANCE = new 
SanitisingDocumentFilter();
-       
-       private SanitisingDocumentFilter () {
-               super();
-       }
-       
-       public static void addFilterToComponent(JTextComponent c) {
-               Document d = c.getDocument();
-               if (d instanceof AbstractDocument) {
-                       ((AbstractDocument) d).setDocumentFilter(INSTANCE);
-               }               
-       }
-       
-       public void insertString(DocumentFilter.FilterBypass fb, int offset, 
String string, AttributeSet attr) throws BadLocationException {
-               
-               fb.insertString(offset, sanitiseString(string), attr);
-       }
-       
-       public void replace(DocumentFilter.FilterBypass fb, int offset, int 
length,
-                     String text, javax.swing.text.AttributeSet attr)
-
-                     throws BadLocationException {
-                          fb.replace(offset, length, sanitiseString(text), 
attr);   
-                }
-       
-       private static String sanitiseString(String text) {
-               String result = text;
-               if (Pattern.matches("\\w++", text) == false) {
-                       result = "";
-                       for (char c : text.toCharArray()) {
-                               if (Character.isLetterOrDigit(c) || c == '_') {
-                                       result += c;
-                               } else {
-                                       result += "_";
-                               }
-                       }
-               }
-               return result;          
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/ShadedLabel.java
----------------------------------------------------------------------
diff --git a/ui/src/main/java/net/sf/taverna/t2/lang/ui/ShadedLabel.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/ShadedLabel.java
deleted file mode 100644
index 27ebe33..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/ShadedLabel.java
+++ /dev/null
@@ -1,126 +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
- 
******************************************************************************/
-/**
- * This file is a component of the Taverna project,
- * and is licensed under the GNU LGPL.
- * Copyright Tom Oinn, EMBL-EBI
- */
-package net.sf.taverna.t2.lang.ui;
-
-import java.awt.Color;
-import java.awt.FlowLayout;
-import java.awt.GradientPaint;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Paint;
-
-import javax.swing.Box;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.SwingConstants;
-
-/**
- * A JLabel like component with a shaded background
- * 
- * @author Tom Oinn
- */
-public class ShadedLabel extends JPanel {
-
-       // If you change these, please make sure BLUE is really blue, etc.. :-)
-
-       public static Color ORANGE = new Color(238, 206, 143);
-
-       public static Color BLUE = new Color(213, 229, 246);
-
-       public static Color GREEN = new Color(161, 198, 157);
-
-       final JLabel label;
-
-       Color colour;
-
-       Color toColour = Color.WHITE;
-
-       private String text;
-
-       /**
-        * Create a ShadedLabel blending from the specified colour to white 
(left to
-        * right) and with the specified text.
-        */
-       public ShadedLabel(String text, Color colour) {
-               this(text, colour, false);
-       }
-
-       /**
-        * Create a ShadedLabel blending from the specified colour to either 
white
-        * if halfShade is false or to a colour halfway between the specified 
colour
-        * and white if true and with the specified text
-        */
-       public ShadedLabel(String text, Color colour, boolean halfShade) {
-               super(new FlowLayout(FlowLayout.LEFT, 0, 3));
-
-               if (halfShade) {
-                       toColour = halfShade(colour);
-               }
-               label = new JLabel("",
-                               SwingConstants.LEFT);
-               setText(text);
-               label.setOpaque(false);
-               add(Box.createHorizontalStrut(5));
-               add(label);
-               add(Box.createHorizontalStrut(5));
-               setOpaque(false);
-               this.colour = colour;
-       }
-
-       public void setText(String text) {
-               this.text = text;
-               label.setText("<html><body><b>" + text + "</b></body></html>");
-               invalidate();
-       }
-       
-       public String getText() {
-               return text;
-       }
-
-       @Override
-       protected void paintComponent(Graphics g) {
-               final int width = getWidth();
-               final int height = getHeight();
-               Graphics2D g2d = (Graphics2D) g;
-               Paint oldPaint = g2d.getPaint();
-               g2d.setPaint(new GradientPaint(0, 0, this.colour, width, height,
-                               toColour));
-               g2d.fillRect(0, 0, width, height);
-               g2d.setPaint(oldPaint);
-               super.paintComponent(g);
-       }
-
-       public static Color halfShade(Color colour) {
-               return new Color((colour.getRed() + 510) / 3,
-                               (colour.getGreen() + 510) / 3, 
(colour.getBlue() + 510) / 3);
-       }
-
-       @Override
-       public boolean isFocusable() {
-               return false;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/TableMap.java
----------------------------------------------------------------------
diff --git a/ui/src/main/java/net/sf/taverna/t2/lang/ui/TableMap.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/TableMap.java
deleted file mode 100644
index dbef4c0..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/TableMap.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.lang.ui;
-
-import javax.swing.table.AbstractTableModel;
-import javax.swing.table.TableModel;
-import javax.swing.event.TableModelListener;
-import javax.swing.event.TableModelEvent;
-
-/**
- * Copied from code found at 
http://www.informit.com/guides/content.aspx?g=java&seqNum=57
- *
- */
-public class TableMap extends AbstractTableModel implements TableModelListener 
{
-       protected TableModel model;
-
-       public TableModel getModel() {
-               return model;
-       }
-
-       public void setModel(TableModel model) {
-               this.model = model;
-               model.addTableModelListener(this);
-       }
-
-       // By default, implement TableModel by forwarding all messages
-       // to the model.
-
-       public Object getValueAt(int aRow, int aColumn) {
-               return model.getValueAt(aRow, aColumn);
-       }
-
-       public void setValueAt(Object aValue, int aRow, int aColumn) {
-               model.setValueAt(aValue, aRow, aColumn);
-       }
-
-       public int getRowCount() {
-               return (model == null) ? 0 : model.getRowCount();
-       }
-
-       public int getColumnCount() {
-               return (model == null) ? 0 : model.getColumnCount();
-       }
-
-       public String getColumnName(int aColumn) {
-               return model.getColumnName(aColumn);
-       }
-
-       public Class getColumnClass(int aColumn) {
-               return model.getColumnClass(aColumn);
-       }
-
-       public boolean isCellEditable(int row, int column) {
-               return model.isCellEditable(row, column);
-       }
-       
-       public int transposeRow(int row) {
-               return row;
-       }
-
-       //
-       // Implementation of the TableModelListener interface,
-       //
-       // By default forward all events to all the listeners.
-       public void tableChanged(TableModelEvent e) {
-               fireTableChanged(e);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/TableSorter.java
----------------------------------------------------------------------
diff --git a/ui/src/main/java/net/sf/taverna/t2/lang/ui/TableSorter.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/TableSorter.java
deleted file mode 100644
index 7c7083d..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/TableSorter.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.lang.ui;
-
-/**
- * Copied from code found at 
http://www.informit.com/guides/content.aspx?g=java&seqNum=57
- */
-
-import java.util.Date;
-import java.util.Vector;
-
-import javax.swing.table.TableModel;
-import javax.swing.event.TableModelEvent;
-
-//Imports for picking up mouse events from the JTable.
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.awt.event.InputEvent;
-import javax.swing.JTable;
-import javax.swing.table.JTableHeader;
-import javax.swing.table.TableColumnModel;
-
-public class TableSorter extends TableMap {
-       int indexes[];
-       Vector sortingColumns = new Vector();
-       boolean ascending = true;
-       int compares;
-
-       public TableSorter() {
-               indexes = new int[0]; // for consistency
-       }
-
-       public TableSorter(TableModel model) {
-               setModel(model);
-       }
-
-       public void setModel(TableModel model) {
-               super.setModel(model);
-               reallocateIndexes();
-       }
-
-       public int compareRowsByColumn(int row1, int row2, int column) {
-               Class type = model.getColumnClass(column);
-               TableModel data = model;
-
-               // Check for nulls.
-
-               Object o1 = data.getValueAt(row1, column);
-               Object o2 = data.getValueAt(row2, column);
-
-               // If both values are null, return 0.
-               if (o1 == null && o2 == null) {
-                       return 0;
-               } else if (o1 == null) { // Define null less than everything.
-                       return -1;
-               } else if (o2 == null) {
-                       return 1;
-               }
-
-               if (o1 instanceof Comparable) {
-                       return ((Comparable) o1).compareTo(o2);
-               }
-               /*
-                * We copy all returned values from the getValue call in case an
-                * optimised model is reusing one object to return many values. 
The
-                * Number subclasses in the JDK are immutable and so will not 
be used in
-                * this way but other subclasses of Number might want to do 
this to save
-                * space and avoid unnecessary heap allocation.
-                */
-
-               if (type.getSuperclass() == java.lang.Number.class) {
-                       Number n1 = (Number) data.getValueAt(row1, column);
-                       double d1 = n1.doubleValue();
-                       Number n2 = (Number) data.getValueAt(row2, column);
-                       double d2 = n2.doubleValue();
-
-                       if (d1 < d2) {
-                               return -1;
-                       } else if (d1 > d2) {
-                               return 1;
-                       } else {
-                               return 0;
-                       }
-               } else if (type == java.util.Date.class) {
-                       Date d1 = (Date) data.getValueAt(row1, column);
-                       long n1 = d1.getTime();
-                       Date d2 = (Date) data.getValueAt(row2, column);
-                       long n2 = d2.getTime();
-
-                       if (n1 < n2) {
-                               return -1;
-                       } else if (n1 > n2) {
-                               return 1;
-                       } else {
-                               return 0;
-                       }
-               } else if (type == String.class) {
-                       String s1 = (String) data.getValueAt(row1, column);
-                       String s2 = (String) data.getValueAt(row2, column);
-                       int result = s1.compareTo(s2);
-
-                       if (result < 0) {
-                               return -1;
-                       } else if (result > 0) {
-                               return 1;
-                       } else {
-                               return 0;
-                       }
-               } else if (type == Boolean.class) {
-                       Boolean bool1 = (Boolean) data.getValueAt(row1, column);
-                       boolean b1 = bool1.booleanValue();
-                       Boolean bool2 = (Boolean) data.getValueAt(row2, column);
-                       boolean b2 = bool2.booleanValue();
-
-                       if (b1 == b2) {
-                               return 0;
-                       } else if (b1) { // Define false < true
-                               return 1;
-                       } else {
-                               return -1;
-                       }
-               } else {
-                       Object v1 = data.getValueAt(row1, column);
-                       String s1 = v1.toString();
-                       Object v2 = data.getValueAt(row2, column);
-                       String s2 = v2.toString();
-                       int result = s1.compareTo(s2);
-
-                       if (result < 0) {
-                               return -1;
-                       } else if (result > 0) {
-                               return 1;
-                       } else {
-                               return 0;
-                       }
-               }
-       }
-
-       public int compare(int row1, int row2) {
-               compares++;
-               for (int level = 0; level < sortingColumns.size(); level++) {
-                       Integer column = (Integer) 
sortingColumns.elementAt(level);
-                       int result = compareRowsByColumn(row1, row2, 
column.intValue());
-                       if (result != 0) {
-                               return ascending ? result : -result;
-                       }
-               }
-               return 0;
-       }
-
-       public void reallocateIndexes() {
-               int rowCount = model.getRowCount();
-
-               // Set up a new array of indexes with the right number of 
elements
-               // for the new data model.
-               indexes = new int[rowCount];
-
-               // Initialise with the identity mapping.
-               for (int row = 0; row < rowCount; row++) {
-                       indexes[row] = row;
-               }
-       }
-
-       public void tableChanged(TableModelEvent e) {
-               // System.out.println("Sorter: tableChanged");
-               reallocateIndexes();
-
-               super.tableChanged(e);
-       }
-
-       public void checkModel() {
-               if (indexes.length != model.getRowCount()) {
-                       System.err.println("Sorter not informed of a change in 
model.");
-               }
-       }
-
-       public void sort(Object sender) {
-               checkModel();
-
-               compares = 0;
-               // n2sort();
-               // qsort(0, indexes.length-1);
-               shuttlesort((int[]) indexes.clone(), indexes, 0, 
indexes.length);
-               // System.out.println("Compares: "+compares);
-       }
-
-       public void n2sort() {
-               for (int i = 0; i < getRowCount(); i++) {
-                       for (int j = i + 1; j < getRowCount(); j++) {
-                               if (compare(indexes[i], indexes[j]) == -1) {
-                                       swap(i, j);
-                               }
-                       }
-               }
-       }
-
-       // This is a home-grown implementation which we have not had time
-       // to research - it may perform poorly in some circumstances. It
-       // requires twice the space of an in-place algorithm and makes
-       // NlogN assigments shuttling the values between the two
-       // arrays. The number of compares appears to vary between N-1 and
-       // NlogN depending on the initial order but the main reason for
-       // using it here is that, unlike qsort, it is stable.
-       public void shuttlesort(int from[], int to[], int low, int high) {
-               if (high - low < 2) {
-                       return;
-               }
-               int middle = (low + high) / 2;
-               shuttlesort(to, from, low, middle);
-               shuttlesort(to, from, middle, high);
-
-               int p = low;
-               int q = middle;
-
-               /*
-                * This is an optional short-cut; at each recursive call, check 
to see
-                * if the elements in this subset are already ordered. If so, 
no further
-                * comparisons are needed; the sub-array can just be copied. 
The array
-                * must be copied rather than assigned otherwise sister calls 
in the
-                * recursion might get out of sinc. When the number of elements 
is three
-                * they are partitioned so that the first set, [low, mid), has 
one
-                * element and and the second, [mid, high), has two. We skip the
-                * optimisation when the number of elements is three or less as 
the
-                * first compare in the normal merge will produce the same 
sequence of
-                * steps. This optimisation seems to be worthwhile for 
partially ordered
-                * lists but some analysis is needed to find out how the 
performance
-                * drops to Nlog(N) as the initial order diminishes - it may 
drop very
-                * quickly.
-                */
-
-               if (high - low >= 4 && compare(from[middle - 1], from[middle]) 
<= 0) {
-                       for (int i = low; i < high; i++) {
-                               to[i] = from[i];
-                       }
-                       return;
-               }
-
-               // A normal merge.
-
-               for (int i = low; i < high; i++) {
-                       if (q >= high || (p < middle && compare(from[p], 
from[q]) <= 0)) {
-                               to[i] = from[p++];
-                       } else {
-                               to[i] = from[q++];
-                       }
-               }
-       }
-
-       public void swap(int i, int j) {
-               int tmp = indexes[i];
-               indexes[i] = indexes[j];
-               indexes[j] = tmp;
-       }
-
-       // The mapping only affects the contents of the data rows.
-       // Pass all requests to these rows through the mapping array: "indexes".
-
-       public Object getValueAt(int aRow, int aColumn) {
-               checkModel();
-               return model.getValueAt(indexes[aRow], aColumn);
-       }
-
-       public void setValueAt(Object aValue, int aRow, int aColumn) {
-               checkModel();
-               model.setValueAt(aValue, indexes[aRow], aColumn);
-       }
-
-       public void sortByColumn(int column) {
-               sortByColumn(column, true);
-       }
-
-       public void sortByColumn(int column, boolean ascending) {
-               this.ascending = ascending;
-               sortingColumns.removeAllElements();
-               sortingColumns.addElement(new Integer(column));
-               sort(this);
-               super.tableChanged(new TableModelEvent(this));
-       }
-       
-       private int lastSortedColumn = -1;
-       private boolean lastAscending = false;
-       
-       public void sortColumn(JTable tableView, int column) {
-               int currentlySelectedRow = tableView.getSelectedRow();
-               int underlyingSelectedRow = -1;
-               if (currentlySelectedRow != -1) {
-                       underlyingSelectedRow = 
transposeRow(currentlySelectedRow);
-               }
-               // System.out.println("Sorting ...");
-               boolean ascendingColumn = true;
-               if (lastSortedColumn == column) {
-                       ascendingColumn = !lastAscending;
-               }
-               lastSortedColumn = column;
-               lastAscending = ascendingColumn;
-               this.sortByColumn(column, ascendingColumn);
-               if (underlyingSelectedRow != -1) {
-                       for (int row = 0; row < indexes.length; row++) {
-                               if (transposeRow(row) == underlyingSelectedRow) 
{
-                                       tableView.setRowSelectionInterval(row, 
row);
-                               }
-                       }
-               }               
-       }
-       
-       public void resort(JTable tableView) {
-               if (lastSortedColumn != -1) {
-                       lastAscending = !lastAscending;
-                       sortColumn(tableView, lastSortedColumn);
-               }
-       }
-
-       // There is no-where else to put this.
-       // Add a mouse listener to the Table to trigger a table sort
-       // when a column heading is clicked in the JTable.
-       public void addMouseListenerToHeaderInTable(JTable table) {
-               final TableSorter sorter = this;
-               final JTable tableView = table;
-               tableView.setColumnSelectionAllowed(false);
-               MouseAdapter listMouseListener = new MouseAdapter() {
-                       
-                       private int lastClickedColumn = -1;
-                       private boolean lastAscending = false;
-                       public void mouseClicked(MouseEvent e) {
-                               TableColumnModel columnModel = 
tableView.getColumnModel();
-                               int viewColumn = 
columnModel.getColumnIndexAtX(e.getX());
-                               int column = 
tableView.convertColumnIndexToModel(viewColumn);
-                               if (e.getClickCount() == 1 && column != -1) {
-                                       sortColumn(tableView, column);
-                               }
-                       }
-               };
-               JTableHeader th = tableView.getTableHeader();
-               th.addMouseListener(listMouseListener);
-       }
-       
-       public int transposeRow(int row) {
-               return indexes[row];
-       }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/ValidatingUserInputDialog.java
----------------------------------------------------------------------
diff --git 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/ValidatingUserInputDialog.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/ValidatingUserInputDialog.java
deleted file mode 100644
index 005b4b4..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/ValidatingUserInputDialog.java
+++ /dev/null
@@ -1,274 +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.lang.ui;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Font;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.FocusAdapter;
-import java.awt.event.FocusEvent;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.util.Set;
-
-import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JTextArea;
-import javax.swing.border.EmptyBorder;
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
-import javax.swing.text.JTextComponent;
-
-import net.sf.taverna.t2.lang.ui.icons.Icons;
-
-/**
- * A user input dialog that validates the input as the user is entering the
- * input and gives feedback on why the input is invalid.
- * 
- * @author David Withers
- */
-public class ValidatingUserInputDialog extends JDialog {
-
-       private static final long serialVersionUID = 1L;
-
-       private String inputTitle;
-
-       private JButton okButton;
-
-       private JButton cancelButton;
-
-       private JTextArea inputText;
-
-       private JPanel inputPanel;
-
-       private JLabel iconLabel;
-
-       private boolean valid = true;
-
-       private boolean result = false;
-
-       /**
-        * Constructs a new instance of ValidatingUserInputDialog.
-        * 
-        * @param inputTitle
-        *            the title for the dialog.
-        * @param inputMessage
-        *            the message describing what the user should input.
-        */
-       public ValidatingUserInputDialog(String inputTitle, JPanel inputPanel) {
-               this.inputTitle = inputTitle;
-               this.inputPanel = inputPanel;
-               initialize();
-       }
-
-       /**
-        * Adds a text component and the rules for a valid user entry.
-        * 
-        * @param textComponent
-        *            the text component to validate
-        * @param invalidInputs
-        *            a set of inputs that are not valid. This is typically a 
set of
-        *            already used identifiers to avoid name clashes. Can be an
-        *            empty set or null.
-        * @param invalidInputsMessage
-        *            the message to display if the user enters a value that is 
in
-        *            invalidInputs.
-        * @param inputRegularExpression
-        *            a regular expression that specifies a valid user input. 
Can be
-        *            null.
-        * @param inputRegularExpressionMessage
-        *            the message to display if the user enters a value that 
doesn't
-        *            match the inputRegularExpression.
-        */
-       public void addTextComponentValidation(final JTextComponent 
textComponent,
-                       final String inputMessage, final Set<String> 
invalidInputs,
-                       final String invalidInputsMessage,
-                       final String inputRegularExpression,
-                       final String inputRegularExpressionMessage) {
-               textComponent.getDocument().addDocumentListener(new 
DocumentListener() {
-                       public void changedUpdate(DocumentEvent e) {
-                       }
-
-                       public void insertUpdate(DocumentEvent e) {
-                               verify(textComponent.getText(), inputMessage, 
invalidInputs,
-                                               invalidInputsMessage, 
inputRegularExpression,
-                                               inputRegularExpressionMessage);
-                       }
-
-                       public void removeUpdate(DocumentEvent e) {
-                               verify(textComponent.getText(), inputMessage, 
invalidInputs,
-                                               invalidInputsMessage, 
inputRegularExpression,
-                                               inputRegularExpressionMessage);
-                       }
-               });
-               textComponent.addKeyListener(new KeyAdapter() {
-                       boolean okDown = false;
-                       
-                       public void keyPressed(KeyEvent e) {
-                               if (okButton.isEnabled() && e.getKeyCode() == 
KeyEvent.VK_ENTER) {
-                                       okDown = true;
-                               }
-                       }
-                       public void keyReleased(KeyEvent e) {
-                               if (okDown && okButton.isEnabled() && 
e.getKeyCode() == KeyEvent.VK_ENTER) {
-                                       okButton.doClick();
-                               }
-                       }
-               });
-               textComponent.addFocusListener(new FocusAdapter() {
-                       public void focusGained(FocusEvent e) {
-                               if (valid) {
-                                       setMessage(inputMessage);
-                               }
-                       }
-               });
-       }
-
-       /**
-        * Adds a component and a message to display when the component is in 
focus.
-        * 
-        * @param component
-        *            the component to add
-        * @param message
-        *            the message to display when the component is in focus
-        */
-       public void addMessageComponent(Component component, final String 
message) {
-               component.addFocusListener(new FocusAdapter() {
-                       public void focusGained(FocusEvent e) {
-                               if (valid) {
-                                       setMessage(message);
-                               }
-                       }
-               });
-       }
-
-       private void initialize() {
-               setLayout(new BorderLayout());
-
-               JPanel messagePanel = new JPanel(new BorderLayout());
-               messagePanel.setBorder(new EmptyBorder(5, 5, 0, 0));
-               messagePanel.setBackground(Color.WHITE);
-
-               add(messagePanel, BorderLayout.NORTH);
-
-               JLabel inputLabel = new JLabel(inputTitle);
-               inputLabel.setBackground(Color.WHITE);
-               Font baseFont = inputLabel.getFont();
-               inputLabel.setFont(baseFont.deriveFont(Font.BOLD));
-               messagePanel.add(inputLabel, BorderLayout.NORTH);
-
-               inputText = new JTextArea();
-               inputText.setMargin(new Insets(5, 10, 10, 10));
-               inputText.setMinimumSize(new Dimension(0, 30));
-               inputText.setFont(baseFont.deriveFont(11f));
-               inputText.setEditable(false);
-               inputText.setFocusable(false);
-               messagePanel.add(inputText, BorderLayout.CENTER);
-
-               iconLabel = new JLabel();
-               messagePanel.add(iconLabel, BorderLayout.WEST);
-
-               add(inputPanel, BorderLayout.CENTER);
-
-               JPanel buttonPanel = new JPanel(new 
FlowLayout(FlowLayout.TRAILING));
-               add(buttonPanel, BorderLayout.SOUTH);
-
-               okButton = new JButton("OK");
-               okButton.addActionListener(new ActionListener() {
-                       public void actionPerformed(ActionEvent e) {
-                               result = valid;
-                               setVisible(false);
-                       }
-               });
-               okButton.setEnabled(false);
-               buttonPanel.add(okButton);
-
-               cancelButton = new JButton("Cancel");
-               cancelButton.addActionListener(new ActionListener() {
-                       public void actionPerformed(ActionEvent e) {
-                               setVisible(false);
-                       }
-               });
-               buttonPanel.add(cancelButton);
-
-               setModal(true);
-               setDefaultCloseOperation(HIDE_ON_CLOSE);
-       }
-
-       public void setMessage(String message) {
-               iconLabel.setIcon(null);
-               inputText.setText(message);
-       }
-
-       public void setWarningMessage(String message) {
-               iconLabel.setIcon(Icons.warningIcon);
-               inputText.setText(message);
-       }
-
-       public void setErrorMessage(String message) {
-               iconLabel.setIcon(Icons.severeIcon);
-               inputText.setText(message);
-       }
-
-       private void verify(String text, String inputMessage,
-                       Set<String> invalidInputs, String invalidInputsMessage,
-                       String inputRegularExpression, String 
inputRegularExpressionMessage) {
-               if (invalidInputs != null && invalidInputs.contains(text)) {
-                       setErrorMessage(invalidInputsMessage);
-                       valid = false;
-               } else if (inputRegularExpression != null
-                               && !text.matches(inputRegularExpression)) {
-                       setErrorMessage(inputRegularExpressionMessage);
-                       valid = false;
-               } else {
-                       setMessage(inputMessage);
-                       valid = true;
-               }
-               okButton.setEnabled(valid);
-//             okButton.setSelected(valid);
-       }
-
-       /**
-        * Show the dialog relative to the component. If the component is null 
then
-        * the dialog is shown in the centre of the screen.
-        * 
-        * Returns true if the user input is valid.
-        * 
-        * @param component
-        *            the component that the dialog is shown relative to
-        * @return true if the user input is valid
-        */
-       public boolean show(Component component) {
-               setLocationRelativeTo(component);
-               setVisible(true);
-               dispose();
-               return result;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/icons/Icons.java
----------------------------------------------------------------------
diff --git a/ui/src/main/java/net/sf/taverna/t2/lang/ui/icons/Icons.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/icons/Icons.java
deleted file mode 100644
index 398b3f4..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/icons/Icons.java
+++ /dev/null
@@ -1,48 +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.lang.ui.icons;
-
-import javax.swing.ImageIcon;
-
-import org.apache.log4j.Logger;
-
-public class Icons {
-       
-       private static Logger logger = Logger.getLogger(Icons.class);
-
-
-
-       public static ImageIcon okIcon;
-       public static ImageIcon severeIcon;
-       public static ImageIcon warningIcon;
-
-       static {
-               try {
-                       Class c = Icons.class;
-                       okIcon = new ImageIcon(c.getResource("ok.png"));
-                       severeIcon = new ImageIcon(c.getResource("severe.png"));
-                       warningIcon = new 
ImageIcon(c.getResource("warning.png"));
-
-               } catch (Exception ex) {
-                       logger.error("Unable to load standard icons", ex);
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/ScrollController.java
----------------------------------------------------------------------
diff --git 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/ScrollController.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/ScrollController.java
deleted file mode 100644
index f7218a6..0000000
--- 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/ScrollController.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2013 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.lang.ui.tabselector;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.JButton;
-import javax.swing.JComponent;
-
-/**
- * Controls tab scrolling when there is not enough space to show all the tabs.
- *
- * @author David Withers
- */
-public class ScrollController {
-
-       private int position;
-       private final JButton scrollLeft;
-       private final JButton scrollRight;
-
-       public ScrollController(final JComponent component) {
-               scrollLeft = new JButton("<");
-               scrollRight = new JButton(">");
-               scrollLeft.setOpaque(true);
-               scrollRight.setOpaque(true);
-               scrollLeft.addActionListener(new ActionListener() {
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               increment();
-                               component.doLayout();
-                       }
-               });
-               scrollRight.addActionListener(new ActionListener() {
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               decrement();
-                               component.doLayout();
-                       }
-               });
-       }
-
-       public JButton getScrollLeft() {
-               return scrollLeft;
-       }
-
-       public JButton getScrollRight() {
-               return scrollRight;
-       }
-
-       public int getPosition() {
-               return position;
-       }
-
-       public void reset() {
-               position = 0;
-       }
-
-       public void increment() {
-               position++;
-       }
-
-       public void decrement() {
-               position--;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/Tab.java
----------------------------------------------------------------------
diff --git a/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/Tab.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/Tab.java
deleted file mode 100644
index 3c40b42..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/Tab.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2012 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.lang.ui.tabselector;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.RenderingHints;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.Icon;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JToggleButton;
-import javax.swing.plaf.basic.BasicButtonUI;
-
-/**
- * Tab button that includes a label and a close button.
- *
- * @author David Withers
- */
-public abstract class Tab<T> extends JToggleButton {
-
-       private static final long serialVersionUID = 1L;
-
-       public final static Color midGrey = new Color(160,160,160);
-       public final static Color lightGrey = new Color(200,200,200);
-
-       protected final T selection;
-       private String name;
-       private Icon icon;
-       private JLabel label;
-
-       public Tab(String name, T selection) {
-               this(name, null, selection);
-       }
-
-       public Tab(String name, Icon icon, T selection) {
-               this.name = name;
-               this.icon = icon;
-               this.selection = selection;
-               initialise();
-       }
-
-       private void initialise() {
-               setUI(new BasicButtonUI());
-               setLayout(new GridBagLayout());
-               setOpaque(false);
-               setBackground(Color.red);
-               setBorder(null);
-
-               GridBagConstraints c = new GridBagConstraints();
-
-               label = new JLabel(this.name);
-               label.setIcon(icon);
-               c.anchor = GridBagConstraints.WEST;
-               c.fill = GridBagConstraints.BOTH;
-               c.insets = new Insets(0, 5, 0, 5);
-               c.weightx = 1;
-               add(label, c);
-
-               JButton button = new CloseWorkflowButton();
-               c.fill = GridBagConstraints.NONE;
-               c.insets = new Insets(0, 0, 0, 5);
-               c.weightx = 0;
-               add(button, c);
-
-               addActionListener(new ActionListener() {
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               clickTabAction();
-                       }
-               });
-       }
-
-       public String getName() {
-               return name;
-       }
-
-       public void setName(String name) {
-               if (!this.name.equals(name)) {
-                       this.name = name;
-                       label.setText(name);
-                       repaint();
-               }
-       }
-
-       public void setIcon(Icon icon) {
-               label.setIcon(icon);
-               repaint();
-       }
-
-       @Override
-       public void updateUI() {
-               // override to ignore UI update
-       }
-
-       @Override
-       protected void paintComponent(Graphics g) {
-               super.paintComponent(g);
-               Graphics2D g2 = (Graphics2D) g.create();
-               if (getModel().isPressed()) {
-                       g2.translate(1, 1);
-               }
-               if (!getModel().isSelected()) {
-                       g2.setColor(lightGrey);
-                       g2.fillRoundRect(1, 0, getWidth() - 3, getHeight() - 1, 
4, 10);
-               }
-               g2.setColor(midGrey);
-               g2.drawRoundRect(1, 0, getWidth() - 3, getHeight(), 4, 10);
-               if (getModel().isSelected()) {
-                       g2.setColor(getParent().getBackground());
-                       g2.drawLine(1, getHeight() - 1, getWidth() - 2, 
getHeight() - 1);
-               }
-               g2.dispose();
-       }
-
-       protected abstract void clickTabAction();
-
-       protected abstract void closeTabAction();
-
-       @SuppressWarnings("serial")
-       private class CloseWorkflowButton extends JButton {
-
-               private final int size = 15;
-               private final int border = 4;
-
-               public CloseWorkflowButton() {
-                       setUI(new BasicButtonUI());
-                       setPreferredSize(new Dimension(size, size));
-                       setMinimumSize(new Dimension(size, size));
-                       setContentAreaFilled(false);
-                       setFocusable(false);
-                       setToolTipText("Close workflow");
-
-                       setRolloverEnabled(true);
-                       addActionListener(new ActionListener() {
-                               @Override
-                               public void actionPerformed(ActionEvent e) {
-                                       closeTabAction();
-                               }
-                       });
-               }
-
-               @Override
-               public void updateUI() {
-                       // override to ignore UI update
-               }
-
-               @Override
-               protected void paintComponent(Graphics g) {
-                       super.paintComponent(g);
-                       Graphics2D g2 = (Graphics2D) g.create();
-                       // animate button press
-                       if (getModel().isPressed()) {
-                               g2.translate(1, 1);
-                       }
-                       g2.setColor(midGrey);
-                       if (getModel().isRollover()) {
-                               // draw armed button
-                               g2.fillRoundRect(0, 0, size - 1, size - 1, 4, 
4);
-                               g2.setColor(Color.GRAY);
-                               g2.drawRoundRect(0, 0, size - 1, size - 1, 4, 
4);
-                               g2.setColor(Color.RED);
-                       }
-                       // draw 'x'
-                       g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, 
RenderingHints.VALUE_STROKE_PURE);
-                       g2.setStroke(new BasicStroke(2.5f, 
BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));
-                       g2.drawLine(border, border, size - border, size - 
border);
-                       g2.drawLine(border, size - border, size - border, 
border);
-                       g2.dispose();
-               }
-
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/TabLayout.java
----------------------------------------------------------------------
diff --git 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/TabLayout.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/TabLayout.java
deleted file mode 100644
index 2a12f0e..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/TabLayout.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2012 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.lang.ui.tabselector;
-
-import java.awt.Component;
-import java.awt.Container;
-import java.awt.Dimension;
-import java.awt.Insets;
-import java.awt.LayoutManager;
-
-/**
- * LayoutManager for laying out tabs.
- * <p>
- * Tabs are made all the same width and prefer to be maximumTabWidth. If there 
is more than
- * preferred width available extra space is left blank. If there is not enough 
width for tabs to be
- * maximumTabWidth tab width is reduced until it reaches minimumTabWidth. If 
there is not enough
- * width to show tabs at minimumTabWidth scroll buttons are shows and tabs can 
be scrolled within
- * the available width.
- *
- * @author David Withers
- */
-public class TabLayout implements LayoutManager {
-
-       public static final int DEFAULT_MINIMUM_TAB_WIDTH = 100;
-       public static final int DEFAULT_MAXIMUM_TAB_WIDTH = 250;
-       public static final int DEFAULT_TAB_HEIGHT = 22;
-       public static final int DEFAULT_SCROLL_BUTTON_WIDTH = 22;
-
-       private final int minimumTabWidth, maximumTabWidth, tabHeight, 
scrollButtonWidth;
-       private final ScrollController scrollController;
-
-       public TabLayout(ScrollController scrollController) {
-               this(scrollController, DEFAULT_MINIMUM_TAB_WIDTH, 
DEFAULT_MAXIMUM_TAB_WIDTH,
-                               DEFAULT_TAB_HEIGHT, 
DEFAULT_SCROLL_BUTTON_WIDTH);
-       }
-
-       public TabLayout(ScrollController scrollController, int 
minimumTabWidth, int maximumTabWidth,
-                       int tabHeight, int scrollButtonWidth) {
-               this.scrollController = scrollController;
-               this.minimumTabWidth = minimumTabWidth;
-               this.maximumTabWidth = maximumTabWidth;
-               this.tabHeight = tabHeight;
-               this.scrollButtonWidth = scrollButtonWidth;
-       }
-
-       @Override
-       public void removeLayoutComponent(Component comp) {
-       }
-
-       @Override
-       public void layoutContainer(Container parent) {
-               Component[] components = parent.getComponents();
-               int tabs = components.length - 2;
-               if (tabs > 0) {
-                       Insets insets = parent.getInsets();
-                       int x = insets.left;
-                       int y = insets.top;
-                       int availableWidth = parent.getWidth() - insets.left - 
insets.right;
-                       int tabWidth = availableWidth / tabs;
-                       boolean showScrollButtons = false;
-                       if (tabWidth < minimumTabWidth) {
-                               tabWidth = minimumTabWidth;
-                               showScrollButtons = true;
-                       } else if (tabWidth > maximumTabWidth) {
-                               tabWidth = maximumTabWidth;
-                       }
-                       if (showScrollButtons) {
-                               scrollController.getScrollLeft().setLocation(x, 
y);
-                               scrollController.getScrollLeft().setSize(
-                                               new 
Dimension(scrollButtonWidth, tabHeight));
-                               
scrollController.getScrollLeft().setVisible(true);
-                               
scrollController.getScrollLeft().setEnabled(shouldScrollLeft(tabs, 
availableWidth));
-                               x = x + scrollButtonWidth - 
(scrollController.getPosition() * minimumTabWidth);
-                               scrollController.getScrollRight()
-                                               .setLocation(availableWidth - 
scrollButtonWidth, y);
-                               scrollController.getScrollRight().setSize(
-                                               new 
Dimension(scrollButtonWidth, tabHeight));
-                               
scrollController.getScrollRight().setVisible(true);
-                               
scrollController.getScrollRight().setEnabled(scrollController.getPosition() > 
0);
-                       } else {
-                               
scrollController.getScrollLeft().setVisible(false);
-                               
scrollController.getScrollRight().setVisible(false);
-                               scrollController.reset();
-                       }
-                       for (int i = 2; i < components.length; i++) {
-                               components[i].setLocation(x, y);
-                               components[i].setSize(new Dimension(tabWidth, 
tabHeight));
-                               x = x + tabWidth;
-                       }
-               }
-       }
-
-       @Override
-       public void addLayoutComponent(String name, Component comp) {
-       }
-
-       @Override
-       public Dimension minimumLayoutSize(Container parent) {
-               return calculateSize(parent.getInsets(), 2, minimumTabWidth);
-       }
-
-       @Override
-       public Dimension preferredLayoutSize(Container parent) {
-               return calculateSize(parent.getInsets(), 
parent.getComponents().length, maximumTabWidth);
-       }
-
-       private Dimension calculateSize(Insets insets, int tabs, int tabWidth) {
-               int width = insets.left + insets.right + tabs * tabWidth;
-               int height = insets.top + insets.bottom + tabHeight;
-               return new Dimension(width, height);
-       }
-
-       private boolean shouldScrollLeft(int tabs, int availableWidth) {
-               int tabsToShow = tabs - scrollController.getPosition();
-               return (tabsToShow * minimumTabWidth) > (availableWidth - 
(scrollButtonWidth * 2));
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/TabSelectorComponent.java
----------------------------------------------------------------------
diff --git 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/TabSelectorComponent.java
 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/TabSelectorComponent.java
deleted file mode 100644
index d09b6ec..0000000
--- 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/tabselector/TabSelectorComponent.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2012 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.lang.ui.tabselector;
-
-import java.awt.BorderLayout;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.swing.ButtonGroup;
-import javax.swing.JPanel;
-
-/**
- * Component for selecting objects using tabs.
- *
- * @author David Withers
- */
-public abstract class TabSelectorComponent<T> extends JPanel {
-
-       private static final long serialVersionUID = 1L;
-
-       private Map<T, Tab<T>> tabMap;
-       private ButtonGroup tabGroup;
-       private ScrollController scrollController;
-
-       public TabSelectorComponent() {
-               tabMap = new HashMap<T, Tab<T>>();
-               tabGroup = new ButtonGroup();
-               setLayout(new BorderLayout());
-               scrollController = new ScrollController(this);
-               add(scrollController.getScrollLeft());
-               add(scrollController.getScrollRight());
-               setLayout(new TabLayout(scrollController));
-       }
-
-       @Override
-       protected void paintComponent(Graphics g) {
-               super.paintComponent(g);
-               Graphics2D g2 = (Graphics2D) g.create();
-               g2.setColor(Tab.midGrey);
-               g2.drawLine(0, getHeight() - 1, getWidth(), getHeight() - 1);
-               g2.dispose();
-       }
-
-       protected abstract Tab<T> createTab(T object);
-
-       public Tab<T> getTab(T object) {
-               return tabMap.get(object);
-       }
-
-       public void addObject(T object) {
-               Tab<T> button = createTab(object);
-               tabMap.put(object, button);
-               tabGroup.add(button);
-               add(button);
-               revalidate();
-               repaint();
-               button.setSelected(true);
-       }
-
-       public void removeObject(T object) {
-               Tab<T> button = tabMap.remove(object);
-               if (button != null) {
-                       tabGroup.remove(button);
-                       remove(button);
-                       revalidate();
-                       repaint();
-               }
-       }
-
-       public void selectObject(T object) {
-               Tab<T> button = tabMap.get(object);
-               if (button != null) {
-                       button.setSelected(true);
-               } else {
-                       addObject(object);
-               }
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/AbstractCellEditor.java
----------------------------------------------------------------------
diff --git 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/AbstractCellEditor.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/AbstractCellEditor.java
deleted file mode 100644
index 63827bb..0000000
--- 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/AbstractCellEditor.java
+++ /dev/null
@@ -1,81 +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.lang.ui.treetable;
-
-import java.util.EventObject;
-
-import javax.swing.CellEditor;
-import javax.swing.event.CellEditorListener;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.EventListenerList;
-
-public class AbstractCellEditor implements CellEditor {
-
-    protected EventListenerList listenerList = new EventListenerList();
-
-    public Object getCellEditorValue() { return null; }
-    public boolean isCellEditable(EventObject e) { return true; }
-    public boolean shouldSelectCell(EventObject anEvent) { return false; }
-    public boolean stopCellEditing() { return true; }
-    public void cancelCellEditing() {}
-
-    public void addCellEditorListener(CellEditorListener l) {
-       listenerList.add(CellEditorListener.class, l);
-    }
-
-    public void removeCellEditorListener(CellEditorListener l) {
-       listenerList.remove(CellEditorListener.class, l);
-    }
-
-    /*
-     * Notify all listeners that have registered interest for
-     * notification on this event type.  
-     * @see EventListenerList
-     */
-    protected void fireEditingStopped() {
-       // Guaranteed to return a non-null array
-       Object[] listeners = listenerList.getListenerList();
-       // Process the listeners last to first, notifying
-       // those that are interested in this event
-       for (int i = listeners.length-2; i>=0; i-=2) {
-           if (listeners[i]==CellEditorListener.class) {
-               ((CellEditorListener)listeners[i+1]).editingStopped(new 
ChangeEvent(this));
-           }          
-       }
-    }
-
-    /*
-     * Notify all listeners that have registered interest for
-     * notification on this event type.  
-     * @see EventListenerList
-     */
-    protected void fireEditingCanceled() {
-       // Guaranteed to return a non-null array
-       Object[] listeners = listenerList.getListenerList();
-       // Process the listeners last to first, notifying
-       // those that are interested in this event
-       for (int i = listeners.length-2; i>=0; i-=2) {
-           if (listeners[i]==CellEditorListener.class) {
-               ((CellEditorListener)listeners[i+1]).editingCanceled(new 
ChangeEvent(this));
-           }          
-       }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/AbstractTreeTableModel.java
----------------------------------------------------------------------
diff --git 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/AbstractTreeTableModel.java
 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/AbstractTreeTableModel.java
deleted file mode 100644
index afec8f3..0000000
--- 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/AbstractTreeTableModel.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * @(#)AbstractTreeTableModel.java     1.2 98/10/27
- *
- * Copyright 1997, 1998 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information").  You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- */
-package net.sf.taverna.t2.lang.ui.treetable;
-
-import javax.swing.event.EventListenerList;
-import javax.swing.event.TreeModelEvent;
-import javax.swing.event.TreeModelListener;
-import javax.swing.tree.TreePath;
- 
-/**
- * @version 1.2 10/27/98
- * An abstract implementation of the TreeTableModel interface, handling the 
list 
- * of listeners. 
- * @author Philip Milne
- */
-
-public abstract class AbstractTreeTableModel implements TreeTableModel {
-    protected Object root;     
-    protected EventListenerList listenerList = new EventListenerList();
-  
-    public AbstractTreeTableModel(Object root) {
-        this.root = root; 
-    }
-
-    //
-    // Default implementations for methods in the TreeModel interface. 
-    //
-
-    public Object getRoot() {
-        return root;
-    }
-
-    public boolean isLeaf(Object node) {
-        return getChildCount(node) == 0; 
-    }
-
-    public void valueForPathChanged(TreePath path, Object newValue) {}
-
-    // This is not called in the JTree's default mode: use a naive 
implementation. 
-    public int getIndexOfChild(Object parent, Object child) {
-        for (int i = 0; i < getChildCount(parent); i++) {
-           if (getChild(parent, i).equals(child)) { 
-               return i; 
-           }
-        }
-       return -1; 
-    }
-
-    public void addTreeModelListener(TreeModelListener l) {
-        listenerList.add(TreeModelListener.class, l);
-    }
-
-    public void removeTreeModelListener(TreeModelListener l) {
-        listenerList.remove(TreeModelListener.class, l);
-    }
-
-    /*
-     * Notify all listeners that have registered interest for
-     * notification on this event type.  The event instance 
-     * is lazily created using the parameters passed into 
-     * the fire method.
-     * @see EventListenerList
-     */
-    protected void fireTreeNodesChanged(Object source, Object[] path, 
-                                        int[] childIndices, 
-                                        Object[] children) {
-        // Guaranteed to return a non-null array
-        Object[] listeners = listenerList.getListenerList();
-        TreeModelEvent e = null;
-        // Process the listeners last to first, notifying
-        // those that are interested in this event
-        for (int i = listeners.length-2; i>=0; i-=2) {
-            if (listeners[i]==TreeModelListener.class) {
-                // Lazily create the event:
-                if (e == null)
-                    e = new TreeModelEvent(source, path, 
-                                           childIndices, children);
-                ((TreeModelListener)listeners[i+1]).treeNodesChanged(e);
-            }          
-        }
-    }
-
-    /*
-     * Notify all listeners that have registered interest for
-     * notification on this event type.  The event instance 
-     * is lazily created using the parameters passed into 
-     * the fire method.
-     * @see EventListenerList
-     */
-    protected void fireTreeNodesInserted(Object source, Object[] path, 
-                                        int[] childIndices, 
-                                        Object[] children) {
-        // Guaranteed to return a non-null array
-        Object[] listeners = listenerList.getListenerList();
-        TreeModelEvent e = null;
-        // Process the listeners last to first, notifying
-        // those that are interested in this event
-        for (int i = listeners.length-2; i>=0; i-=2) {
-            if (listeners[i]==TreeModelListener.class) {
-                // Lazily create the event:
-                if (e == null)
-                    e = new TreeModelEvent(source, path, 
-                                           childIndices, children);
-                ((TreeModelListener)listeners[i+1]).treeNodesInserted(e);
-            }          
-        }
-    }
-
-    /*
-     * Notify all listeners that have registered interest for
-     * notification on this event type.  The event instance 
-     * is lazily created using the parameters passed into 
-     * the fire method.
-     * @see EventListenerList
-     */
-    protected void fireTreeNodesRemoved(Object source, Object[] path, 
-                                        int[] childIndices, 
-                                        Object[] children) {
-        // Guaranteed to return a non-null array
-        Object[] listeners = listenerList.getListenerList();
-        TreeModelEvent e = null;
-        // Process the listeners last to first, notifying
-        // those that are interested in this event
-        for (int i = listeners.length-2; i>=0; i-=2) {
-            if (listeners[i]==TreeModelListener.class) {
-                // Lazily create the event:
-                if (e == null)
-                    e = new TreeModelEvent(source, path, 
-                                           childIndices, children);
-                ((TreeModelListener)listeners[i+1]).treeNodesRemoved(e);
-            }          
-        }
-    }
-
-    /*
-     * Notify all listeners that have registered interest for
-     * notification on this event type.  The event instance 
-     * is lazily created using the parameters passed into 
-     * the fire method.
-     * @see EventListenerList
-     */
-    protected void fireTreeStructureChanged(Object source, Object[] path, 
-                                        int[] childIndices, 
-                                        Object[] children) {
-        // Guaranteed to return a non-null array
-        Object[] listeners = listenerList.getListenerList();
-        TreeModelEvent e = null;
-        // Process the listeners last to first, notifying
-        // those that are interested in this event
-        for (int i = listeners.length-2; i>=0; i-=2) {
-            if (listeners[i]==TreeModelListener.class) {
-                // Lazily create the event:
-                if (e == null)
-                    e = new TreeModelEvent(source, path, 
-                                           childIndices, children);
-                ((TreeModelListener)listeners[i+1]).treeStructureChanged(e);
-            }          
-        }
-    }
-
-    //
-    // Default impelmentations for methods in the TreeTableModel interface. 
-    //
-
-    public Class getColumnClass(int column) { return Object.class; }
-
-   /** By default, make the column with the Tree in it the only editable one. 
-    *  Making this column editable causes the JTable to forward mouse 
-    *  and keyboard events in the Tree column to the underlying JTree. 
-    */ 
-    public boolean isCellEditable(Object node, int column) { 
-         return getColumnClass(column) == TreeTableModel.class; 
-    }
-
-    public void setValueAt(Object aValue, Object node, int column) {}
-
-
-    // Left to be implemented in the subclass:
-
-    /* 
-     *   public Object getChild(Object parent, int index)
-     *   public int getChildCount(Object parent) 
-     *   public int getColumnCount() 
-     *   public String getColumnName(Object node, int column)  
-     *   public Object getValueAt(Object node, int column) 
-     */
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/JTreeTable.LICENSE
----------------------------------------------------------------------
diff --git 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/JTreeTable.LICENSE 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/JTreeTable.LICENSE
deleted file mode 100644
index 7500c7a..0000000
--- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/JTreeTable.LICENSE
+++ /dev/null
@@ -1,59 +0,0 @@
-The license below applies to the classes contained within the 
-package net.sf.taverna.t2.lang.ui.treetable package. These classes have been 
taken 
-from the Sun Developer Network tutorial on using JTree components within 
JTables. The URLs for the tutorials are as follows :
-
-http://java.sun.com/products/jfc/tsc/articles/treetable1/index.html
-http://java.sun.com/products/jfc/tsc/articles/treetable2/index.html
-http://java.sun.com/products/jfc/tsc/articles/bookmarks/index.html#editableJTreeTable
-
-The original web page form of this license is available at :
-
-http://developers.sun.com/license/berkeley_license.html?uid=6910008
-
-Tom Oinn, [email protected], 23rd Feb 2004
-
--------------------------------------------------------------------------------------
-
-Code sample 
-
-License
-
-      Copyright 1994-2004 Sun Microsystems, Inc. All Rights Reserved. 
-      Redistribution and use in source and binary forms, with or without 
-      modification, are permitted provided that the following conditions are 
-      met: 
-       
-
-      1 Redistribution of source code must retain the above copyright notice, 
-        this list of conditions and the following disclaimer.
-
-
-      2 Redistribution in binary form must reproduce the above copyright 
notice, 
-        this list of conditions and the following disclaimer in the 
-        documentation and/or other materials provided with the distribution. 
-       
-
-      Neither the name of Sun Microsystems, Inc. or the names of contributors 
-      may be used to endorse or promote products derived from this software 
-      without specific prior written permission. 
-       
-
-      This software is provided "AS IS," without a warranty of any kind. ALL 
-      EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING 
-      ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 
PURPOSE 
-      OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") 
-      AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY 
LICENSEE 
-      AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS 
-      DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY 
LOST 
-      REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, 
CONSEQUENTIAL, 
-      INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE 
-      THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS 
-      SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 
DAMAGES. 
-
-       
-
-      You acknowledge that this software is not designed, licensed or intended 
-      for use in the design, construction, operation or maintenance of any 
-      nuclear facility.
-
--------------------------------------------------------------------------------------
\ No newline at end of file

Reply via email to