Repository: incubator-taverna-workbench-common-activities
Updated Branches:
  refs/heads/master 9e37ea395 -> 163747de9


http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/config/xmltree/XPathActivityXMLTreeNode.java
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/config/xmltree/XPathActivityXMLTreeNode.java
 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/config/xmltree/XPathActivityXMLTreeNode.java
new file mode 100644
index 0000000..200e7e2
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/config/xmltree/XPathActivityXMLTreeNode.java
@@ -0,0 +1,81 @@
+package org.apache.taverna.activities.xpath.ui.config.xmltree;
+
+import javax.swing.tree.DefaultMutableTreeNode;
+
+import org.dom4j.QName;
+
+
+/**
+ * 
+ * @author Sergejs Aleksejevs
+ */
+public abstract class XPathActivityXMLTreeNode extends DefaultMutableTreeNode
+{
+  protected static final int DISPLAY_LABEL_MAX_LENGTH = 200;
+  
+  private final boolean isAttribute;
+
+  public XPathActivityXMLTreeNode(Object userObject, boolean isAttribute)
+  {
+    super(userObject);
+    this.isAttribute = isAttribute;
+  }
+  
+  public boolean isAttribute() {
+    return (isAttribute);
+  }
+  
+  
+  public QName getNodeQName() {
+    if (this.isAttribute()) {
+      return 
(((XPathActivityXMLTreeAttributeNode)this).getAssociatedAttribute().getQName());
+    }
+    else {
+      return 
(((XPathActivityXMLTreeElementNode)this).getAssociatedElement().getQName());
+    }
+  }
+  
+  
+  public String getTreeNodeDisplayLabel(boolean bIncludeValue, boolean 
bIncludeElementNamespace, boolean bUseStyling)
+  {
+    if (this.isAttribute()) {
+      return 
(((XPathActivityXMLTreeAttributeNode)this).getTreeNodeDisplayLabel(bIncludeValue,
 bUseStyling));
+    }
+    else {
+      return 
(((XPathActivityXMLTreeElementNode)this).getTreeNodeDisplayLabel(bIncludeValue, 
bIncludeElementNamespace, bUseStyling));
+    }
+  }
+  
+  
+  protected String truncateElementTextValue(String textValue)
+  {
+    if (textValue != null && textValue.length() > DISPLAY_LABEL_MAX_LENGTH) {
+      textValue = textValue.substring(0, DISPLAY_LABEL_MAX_LENGTH) + "(...)";
+    }
+    return (textValue);
+  }
+  
+  
+  /**
+   * Tiny helper to strip out all HTML tags. This will not leave any HTML tags
+   * at all (so that the content can be displayed in DialogTextArea - and the
+   * like - components. This helps to present HTML content inside JAVA easier.
+   */
+  public static String stripAllHTML(String source) {
+        // don't do anything if not string is provided
+        if (source == null)
+          return ("");
+
+        // need to preserve at least all line breaks
+        // (ending and starting paragraph also make a line break)
+        source = source.replaceAll("</p>[\r\n]*<p>", "<br>");
+        source = source.replaceAll("\\<br/?\\>", "\n\n");
+
+        // strip all HTML
+        source = source.replaceAll("\\<.*?\\>", ""); // any HTML tags
+        source = source.replaceAll("&\\w{1,4};", ""); // this is for things 
like "&nbsp;", "&gt;", etc
+
+        return (source);
+  }
+  
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/config/xmltree/XPathActivityXMLTreeSelectionHandler.java
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/config/xmltree/XPathActivityXMLTreeSelectionHandler.java
 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/config/xmltree/XPathActivityXMLTreeSelectionHandler.java
new file mode 100644
index 0000000..a293e68
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/config/xmltree/XPathActivityXMLTreeSelectionHandler.java
@@ -0,0 +1,251 @@
+package org.apache.taverna.activities.xpath.ui.config.xmltree;
+
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+
+import javax.swing.JOptionPane;
+import javax.swing.event.TreeSelectionEvent;
+import javax.swing.event.TreeSelectionListener;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreeNode;
+import javax.swing.tree.TreePath;
+
+import 
org.apache.taverna.activities.xpath.ui.config.XPathActivityConfigurationPanel;
+
+import org.dom4j.DocumentHelper;
+
+
+/**
+ * 
+ * @author Sergejs Aleksejevs
+ */
+public class XPathActivityXMLTreeSelectionHandler implements 
TreeSelectionListener
+{
+  private final XPathActivityXMLTree theTree;
+  private final XPathActivityConfigurationPanel parentConfigPanel;
+
+
+  public XPathActivityXMLTreeSelectionHandler(XPathActivityConfigurationPanel 
parentConfigPanel,
+                  XPathActivityXMLTree tree)
+  {
+    this.parentConfigPanel = parentConfigPanel;
+    this.theTree = tree;
+  }
+  
+  
+  public void valueChanged(TreeSelectionEvent e)
+  {
+    // get the newly made selection
+    TreePath newSelectedPath = e.getNewLeadSelectionPath();
+    
+    // NB! Safety check - sometimes the container of the XML tree will remove 
all selections,
+    //     in such case this listener is not supposed to perform any action -> 
terminate 
+    if (newSelectedPath == null) return;
+    
+    
+    // --- XPath GENERATION ---
+    
+    // get the XPath expression for the new selection + taking into 
consideration all previous ones
+    List<String> wildcardedXPath = 
generateWildcardedXPathExpression(newSelectedPath);
+    
+    // assemble the xpath expression as one string
+    StringBuilder xpath = new StringBuilder();
+    for (String leg : wildcardedXPath) {
+      xpath.append(leg);
+    }
+    
theTree.setCurrentXPathExpression(DocumentHelper.createXPath(xpath.toString()));
+    
theTree.getCurrentXPathExpression().setNamespaceURIs(theTree.getCurrentXPathNamespaces());
+    
+    
+    // --- UPDATE CONFIG PANEL ---
+    // (with new values for XPath expression and namespace mappings)
+    
+    // inform the parent activity configuration panel to update the XPath 
expression in the UI
+    /* We do not update the XPath expression after changes in selection in the 
XML tree - we
+     * now have a button to explicitly do that.
+     * theTree.getParentConfigPanel().updateXPathEditingPanelValues();
+     */
+    
+    // --- SELECTION ---
+    selectAllNodesThatMatchTheCurrentXPath(wildcardedXPath, newSelectedPath);
+  }
+  
+  
+  /**
+   * Selects all nodes that match the <code>wildcardedXPath</code> expression.
+   * 
+   * Keyboard focus is set to remain on the "deepest" (e.g. furthest from root)
+   * element of the <code>lastSelectedPath</code>. 
+   * 
+   * @param wildcardedXPath List of strings, where each string contains one 
"leg" of the XPath expression
+   *                        (e.g. a string starting with a "/" and containing 
the name of one node of the tree).
+   * 
+   * @param lastSelectedPath The path that was last selected in the tree 
(normally,
+   *                         because of this selection {@link 
XPathActivityXMLTreeSelectionHandler#valueChanged(TreeSelectionEvent)}
+   *                         was executed and this method was started as a 
part of that.
+   */
+  public void selectAllNodesThatMatchTheCurrentXPath(List<String> 
wildcardedXPath, TreePath lastSelectedPath)
+  {
+    // first of all - calculate the number of nodes that match this XPath
+    // expression in the XML tree
+    int numberOfMatchingNodes = parentConfigPanel.runXPath(false);
+    
+    
+    // store all tree selection listeners in order to temporarily remove them;
+    // this is necessary as selection modifications will be made here -- don't
+    // want any listeners to respond to these new events
+    theTree.removeAllSelectionListeners();
+    
+    
+    // remove all previous selections - safest way to get the new ones 
correctly
+    theTree.clearSelection();
+    
+    
+    if (numberOfMatchingNodes <= 
XPathActivityConfigurationPanel.MAX_NUMBER_OF_MATCHING_NODES_TO_HIGHLIGHT_IN_THE_TREE)
+    {
+      // find all nodes that match the XPath expression
+      List<XPathActivityXMLTreeNode> matchingNodes = new 
ArrayList<XPathActivityXMLTreeNode>();
+      findAllNodesThatMatchWildcardedXPath(
+          (XPathActivityXMLTreeNode)theTree.getModel().getRoot(),
+          wildcardedXPath.subList(1, wildcardedXPath.size()),
+          matchingNodes);
+      
+      // obtain and select TreePaths for each of the matching nodes
+      for (XPathActivityXMLTreeNode matchingNode : matchingNodes) {
+        TreeNode[] pathAsObjects = 
((DefaultTreeModel)theTree.getModel()).getPathToRoot(matchingNode);
+        TreePath path = new TreePath(pathAsObjects);
+        selectTreePathAndAllItsAncestors(path);
+      }
+    }
+    else {
+      JOptionPane.showMessageDialog(parentConfigPanel,
+          "Current XPath expression matches " + numberOfMatchingNodes + " 
nodes in the XML tree.\n" +
+          "The XPath Activity is unable to highlight all these nodes in the 
tree due to\n" +
+          "performance reasons.\n\n" +
+          "The XPath Activity will still work correctly - both during the 
workflow execution\n" +
+          "and if 'Run XPath' button is clicked to run this expression against 
the example XML.",
+          "XPath Activity", JOptionPane.INFORMATION_MESSAGE);
+    }
+    
+    
+    // make sure the keyboard focus stays on the actual node that was clicked 
on -
+    // no direct way to do this, so simply de-select and re-select again
+    if (lastSelectedPath != null) {
+      theTree.removeSelectionPath(lastSelectedPath);
+      theTree.addSelectionPath(lastSelectedPath);
+    }
+    
+    // restore all previously stored selection listeners
+    theTree.restoreAllSelectionListeners();
+  }
+  
+  
+  
+  /**
+   * This cannot work for XPath expressions that were modified manually -
+   * only works for the type generated by the click in the XML tree. 
+   * 
+   * @param nodeToStartAt
+   * @param xpathLegs From <code>nodeToStartAt</code>.
+   * @param matchingNodes
+   */
+  private void findAllNodesThatMatchWildcardedXPath(XPathActivityXMLTreeNode 
nodeToStartAt, 
+                  List<String> xpathLegs, List<XPathActivityXMLTreeNode> 
matchingNodes)
+  {
+    // some of the input data is missing, just return...
+    if (nodeToStartAt == null || xpathLegs == null || matchingNodes == null) {
+      return;
+    }
+    
+    // no XPath expression to match against the 'nodeToStartAt', therefore
+    // we've "found" the macthing node: 'nodeToStartAt'
+    if (xpathLegs.size() == 0) {
+      matchingNodes.add(nodeToStartAt);
+      return;
+    }
+    
+    // standard case - there is something to match, proceed as normal
+    Enumeration<XPathActivityXMLTreeNode> startNodeChildren = 
nodeToStartAt.children();
+    while (startNodeChildren.hasMoreElements()) {
+      XPathActivityXMLTreeNode child = startNodeChildren.nextElement();
+      
+      if (xpathLegs.get(0).equals("/*") ||
+          
xpathLegs.get(0).equals(this.theTree.getXMLTreeNodeEffectiveQualifiedNameAsXPathLeg(child)))
+      {
+        // this node matches current section of the XPath expression
+        if (xpathLegs.size() == 1) {
+          // no more sections in the XPath leg list to match, so this child
+          // node is the one we were looking for - add to the result
+          matchingNodes.add(child);
+        }
+        else {
+          // ...or process its children recursively
+          findAllNodesThatMatchWildcardedXPath(child, xpathLegs.subList(1, 
xpathLegs.size()), matchingNodes);
+        }
+      }
+    }
+  }
+
+
+  private List<String> generateWildcardedXPathExpression(TreePath 
newSelectedPath)
+  {
+    // look through previous selection to find paths of the same length, as 
the newly selected one
+    List<TreePath> pathsOfSameLength = new ArrayList<TreePath>();
+    TreePath[] previouslySelectedPaths = theTree.getSelectionPaths();
+    for (TreePath path : previouslySelectedPaths) {
+      if (path.getPathCount() == newSelectedPath.getPathCount()) {
+        pathsOfSameLength.add(path);
+      }
+    }
+    
+    // if there were found any paths of the same length, we have a "wildcard" 
situation
+    List<String> wildcardXPathLegs = 
theTree.generateXPathFromTreePathAsLegList(newSelectedPath);
+    
+    if (pathsOfSameLength.size() > 0)
+    {
+      // it's okay to use just the first path - TODO: explain that this is 
because of previous comparisons
+      List<String> firstMatchingLengthPathLegs = 
theTree.generateXPathFromTreePathAsLegList(pathsOfSameLength.get(0));
+      
+      int pathLength = wildcardXPathLegs.size();
+      
+      // only use wildcards if the last segments of both paths are identical
+      if (wildcardXPathLegs.get(pathLength - 
1).equals(firstMatchingLengthPathLegs.get(pathLength - 1)))
+      {
+        // continue all the way to the last segment, but don't touch it
+        for (int i = 0; i < wildcardXPathLegs.size() - 1; i++)
+        {
+          if 
(!wildcardXPathLegs.get(i).equals(firstMatchingLengthPathLegs.get(i))) {
+            // set wildcard
+            // TODO - make wildcard a constant
+            // TODO - may need to make the wildcard to have a namespace? (e.g. 
"/default:*" instead of simply "/*")
+            wildcardXPathLegs.set(i, "/*"); // definitely an element, not an 
attribute (as not the last segment in the path)
+          }
+        }
+      }
+    }
+    
+    return (wildcardXPathLegs);
+  }
+  
+  
+  
+  private void selectTreePathAndAllItsAncestors(TreePath path)
+  {
+    // select all ancestors of that path
+    TreePath pathToSelect = path;
+    for (int i = 0; i < path.getPathCount(); i++)
+    {
+      pathToSelect = pathToSelect.getParentPath();
+      theTree.addSelectionPath(pathToSelect);
+    }
+    
+    // select the specified path itself
+    //
+    // NB! important to do this after the ancestors, so that the supplied
+    // path is the one that retains the keyboard focus after this method 
terminates
+    theTree.addSelectionPath(path);
+  }
+  
+  
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/contextualview/ConfigureXPathActivityMenuAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/contextualview/ConfigureXPathActivityMenuAction.java
 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/contextualview/ConfigureXPathActivityMenuAction.java
new file mode 100644
index 0000000..3527767
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/contextualview/ConfigureXPathActivityMenuAction.java
@@ -0,0 +1,65 @@
+package org.apache.taverna.activities.xpath.ui.contextualview;
+
+import javax.swing.Action;
+
+import 
org.apache.taverna.activities.xpath.ui.config.XPathActivityConfigureAction;
+import 
org.apache.taverna.activities.xpath.ui.servicedescription.XPathTemplateService;
+import org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry;
+import org.apache.taverna.workbench.activityicons.ActivityIconManager;
+import 
org.apache.taverna.workbench.activitytools.AbstractConfigureActivityMenuAction;
+import org.apache.taverna.workbench.edits.EditManager;
+import org.apache.taverna.workbench.file.FileManager;
+import org.apache.taverna.commons.services.ServiceRegistry;
+
+/**
+ * This action is responsible for enabling the contextual menu entry on 
processors that perform
+ * XPathActivity'ies.
+ * NB! As a side-effect this also enables the pop-up with for configuration of 
the processor when it
+ * is added to the workflow from the Service Panel.
+ *
+ * @author Sergejs Aleksejevs
+ * @author David Withers
+ */
+public class ConfigureXPathActivityMenuAction extends 
AbstractConfigureActivityMenuAction {
+
+       private EditManager editManager;
+       private FileManager fileManager;
+       private ActivityIconManager activityIconManager;
+       private ServiceDescriptionRegistry serviceDescriptionRegistry;
+       private ServiceRegistry serviceRegistry;
+
+       public ConfigureXPathActivityMenuAction() {
+               super(XPathTemplateService.ACTIVITY_TYPE);
+       }
+
+       @Override
+       protected Action createAction() {
+               XPathActivityConfigureAction configAction = new 
XPathActivityConfigureAction(
+                               findActivity(), getParentFrame(), editManager, 
fileManager, activityIconManager,
+                               serviceDescriptionRegistry, serviceRegistry);
+               configAction.putValue(Action.NAME, "Configure XPath service");
+               addMenuDots(configAction);
+               return configAction;
+       }
+
+       public void setEditManager(EditManager editManager) {
+               this.editManager = editManager;
+       }
+
+       public void setFileManager(FileManager fileManager) {
+               this.fileManager = fileManager;
+       }
+
+       public void setActivityIconManager(ActivityIconManager 
activityIconManager) {
+               this.activityIconManager = activityIconManager;
+       }
+
+       public void setServiceDescriptionRegistry(ServiceDescriptionRegistry 
serviceDescriptionRegistry) {
+               this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+       }
+
+       public void setServiceRegistry(ServiceRegistry serviceRegistry) {
+               this.serviceRegistry = serviceRegistry;
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/contextualview/XPathActivityMainContextViewFactory.java
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/contextualview/XPathActivityMainContextViewFactory.java
 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/contextualview/XPathActivityMainContextViewFactory.java
new file mode 100644
index 0000000..57f194f
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/contextualview/XPathActivityMainContextViewFactory.java
@@ -0,0 +1,59 @@
+package org.apache.taverna.activities.xpath.ui.contextualview;
+
+import java.util.Arrays;
+import java.util.List;
+
+import 
org.apache.taverna.activities.xpath.ui.servicedescription.XPathTemplateService;
+import org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry;
+import org.apache.taverna.workbench.activityicons.ActivityIconManager;
+import org.apache.taverna.workbench.edits.EditManager;
+import org.apache.taverna.workbench.file.FileManager;
+import org.apache.taverna.workbench.ui.views.contextualviews.ContextualView;
+import 
org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
+import org.apache.taverna.commons.services.ServiceRegistry;
+import org.apache.taverna.scufl2.api.activity.Activity;
+
+/**
+ * @author Sergejs Aleksejevs
+ */
+public class XPathActivityMainContextViewFactory implements 
ContextualViewFactory<Activity> {
+
+       private EditManager editManager;
+       private FileManager fileManager;
+       private ActivityIconManager activityIconManager;
+       private ServiceDescriptionRegistry serviceDescriptionRegistry;
+       private ServiceRegistry serviceRegistry;
+
+       public boolean canHandle(Object selection) {
+               return selection instanceof Activity
+                               && ((Activity) selection).getType()
+                                               
.equals(XPathTemplateService.ACTIVITY_TYPE);
+       }
+
+       public List<ContextualView> getViews(Activity selection) {
+               return Arrays.<ContextualView> asList(new 
XPathActivityMainContextualView(selection,
+                               editManager, fileManager, activityIconManager, 
serviceDescriptionRegistry,
+                               serviceRegistry));
+       }
+
+       public void setEditManager(EditManager editManager) {
+               this.editManager = editManager;
+       }
+
+       public void setFileManager(FileManager fileManager) {
+               this.fileManager = fileManager;
+       }
+
+       public void setActivityIconManager(ActivityIconManager 
activityIconManager) {
+               this.activityIconManager = activityIconManager;
+       }
+
+       public void setServiceDescriptionRegistry(ServiceDescriptionRegistry 
serviceDescriptionRegistry) {
+               this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+       }
+
+       public void setServiceRegistry(ServiceRegistry serviceRegistry) {
+               this.serviceRegistry = serviceRegistry;
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/contextualview/XPathActivityMainContextualView.java
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/contextualview/XPathActivityMainContextualView.java
 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/contextualview/XPathActivityMainContextualView.java
new file mode 100644
index 0000000..41df2ea
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/contextualview/XPathActivityMainContextualView.java
@@ -0,0 +1,209 @@
+package org.apache.taverna.activities.xpath.ui.contextualview;
+
+import java.awt.Color;
+import java.awt.Cursor;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+
+import javax.swing.Action;
+import javax.swing.BorderFactory;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.table.DefaultTableModel;
+
+import 
org.apache.taverna.activities.xpath.ui.config.XPathActivityConfigureAction;
+import org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry;
+import org.apache.taverna.workbench.activityicons.ActivityIconManager;
+import org.apache.taverna.workbench.edits.EditManager;
+import org.apache.taverna.workbench.file.FileManager;
+import org.apache.taverna.workbench.ui.views.contextualviews.ContextualView;
+import org.apache.taverna.commons.services.ServiceRegistry;
+import org.apache.taverna.scufl2.api.activity.Activity;
+import org.apache.taverna.scufl2.api.common.Scufl2Tools;
+import org.apache.taverna.scufl2.api.configurations.Configuration;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+/**
+ *
+ * @author Sergejs Aleksejevs
+ * @author David Withers
+ */
+@SuppressWarnings("serial")
+public class XPathActivityMainContextualView extends ContextualView {
+
+       private final Scufl2Tools scufl2Tools = new Scufl2Tools();
+
+       private XPathActivityMainContextualView thisContextualView;
+
+       private final Activity activity;
+
+       private JPanel jpMainPanel;
+       private JTextField tfXPathExpression;
+
+       private DefaultTableModel xpathNamespaceMappingsTableModel;
+       private JTable jtXPathNamespaceMappings;
+       private JScrollPane spXPathNamespaceMappings;
+       private final EditManager editManager;
+       private final FileManager fileManager;
+       private final ActivityIconManager activityIconManager;
+       private final ServiceDescriptionRegistry serviceDescriptionRegistry;
+       private final ServiceRegistry serviceRegistry;
+
+       public XPathActivityMainContextualView(Activity activity, EditManager 
editManager,
+                       FileManager fileManager, ActivityIconManager 
activityIconManager,
+                       ServiceDescriptionRegistry serviceDescriptionRegistry, 
ServiceRegistry serviceRegistry) {
+               this.editManager = editManager;
+               this.fileManager = fileManager;
+               this.activityIconManager = activityIconManager;
+               this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+               this.serviceRegistry = serviceRegistry;
+               this.thisContextualView = this;
+               this.activity = activity;
+               initView();
+       }
+
+       @Override
+       public JComponent getMainFrame() {
+               jpMainPanel = new JPanel(new GridBagLayout());
+               jpMainPanel.setBorder(BorderFactory.createCompoundBorder(
+                               BorderFactory.createEmptyBorder(4, 2, 4, 2), 
BorderFactory.createEmptyBorder()));
+
+               GridBagConstraints c = new GridBagConstraints();
+               c.fill = GridBagConstraints.HORIZONTAL;
+               c.anchor = GridBagConstraints.WEST;
+               c.weighty = 0;
+
+               // --- XPath Expression ---
+
+               c.gridx = 0;
+               c.gridy = 0;
+               c.insets = new Insets(5, 5, 5, 5);
+               JLabel jlXPathExpression = new JLabel("XPath Expression:");
+               
jlXPathExpression.setFont(jlXPathExpression.getFont().deriveFont(Font.BOLD));
+               jpMainPanel.add(jlXPathExpression, c);
+
+               c.gridx++;
+               c.weightx = 1.0;
+               tfXPathExpression = new JTextField();
+               tfXPathExpression.setEditable(false);
+               jpMainPanel.add(tfXPathExpression, c);
+
+               // --- Label to Show/Hide Mapping Table ---
+
+               final JLabel jlShowHideNamespaceMappings = new JLabel("Show 
namespace mappings...");
+               jlShowHideNamespaceMappings.setForeground(Color.BLUE);
+               jlShowHideNamespaceMappings.setCursor(new 
Cursor(Cursor.HAND_CURSOR));
+               jlShowHideNamespaceMappings.addMouseListener(new MouseAdapter() 
{
+                       public void mouseClicked(MouseEvent e) {
+                               
spXPathNamespaceMappings.setVisible(!spXPathNamespaceMappings.isVisible());
+                               
jlShowHideNamespaceMappings.setText((spXPathNamespaceMappings.isVisible() ? 
"Hide"
+                                               : "Show") + " namespace 
mappings...");
+                               thisContextualView.revalidate();
+                       }
+               });
+
+               c.gridx = 0;
+               c.gridy++;
+               c.gridwidth = 2;
+               c.weightx = 1.0;
+               c.weighty = 0;
+               c.fill = GridBagConstraints.HORIZONTAL;
+               jpMainPanel.add(jlShowHideNamespaceMappings, c);
+
+               // --- Namespace Mapping Table ---
+
+               xpathNamespaceMappingsTableModel = new DefaultTableModel() {
+                       /**
+                        * No cells should be editable
+                        */
+                       public boolean isCellEditable(int rowIndex, int 
columnIndex) {
+                               return (false);
+                       }
+               };
+               xpathNamespaceMappingsTableModel.addColumn("Namespace Prefix");
+               xpathNamespaceMappingsTableModel.addColumn("Namespace URI");
+
+               jtXPathNamespaceMappings = new JTable();
+               
jtXPathNamespaceMappings.setModel(xpathNamespaceMappingsTableModel);
+               jtXPathNamespaceMappings.setPreferredScrollableViewportSize(new 
Dimension(200, 90));
+               // TODO - next line is to be enabled when Taverna is migrated 
to Java
+               // 1.6; for now it's fine to run without this
+               // jtXPathNamespaceMappings.setFillsViewportHeight(true); // 
makes sure
+               // that when the dedicated area is larger than the table, the 
latter is
+               // stretched vertically to fill the empty space
+
+               
jtXPathNamespaceMappings.getColumnModel().getColumn(0).setPreferredWidth(20); 
// set
+                                                                               
                                                                                
                // relative
+                                                                               
                                                                                
                // sizes of
+                                                                               
                                                                                
                // columns
+               
jtXPathNamespaceMappings.getColumnModel().getColumn(1).setPreferredWidth(300);
+
+               c.gridy++;
+               spXPathNamespaceMappings = new 
JScrollPane(jtXPathNamespaceMappings);
+               spXPathNamespaceMappings.setVisible(false);
+               jpMainPanel.add(spXPathNamespaceMappings, c);
+
+               // populate the view with values
+               refreshView();
+
+               return jpMainPanel;
+       }
+
+       @Override
+       /**
+        * This is the title of the contextual view - shown in the list of 
other available
+        * views (even when this contextual view is collapsed).
+        */
+       public String getViewTitle() {
+               return "XPath Service Details";
+       }
+
+       /**
+        * Typically called when the activity configuration has changed.
+        */
+       @Override
+       public void refreshView() {
+               Configuration configuration = 
scufl2Tools.configurationFor(activity, activity.getParent());
+               JsonNode json = configuration.getJson();
+
+               // Set XPath Expression
+               tfXPathExpression.setText(json.get("xpathExpression").asText());
+
+               // Populate Namespace Mappings
+               
xpathNamespaceMappingsTableModel.getDataVector().removeAllElements();
+               if (json.has("xpathNamespaceMap")) {
+                       for (JsonNode mapping : json.get("xpathNamespaceMap")) {
+                               xpathNamespaceMappingsTableModel.addRow(new 
Object[] {
+                                               mapping.get("prefix").asText(), 
mapping.get("uri").asText() });
+                       }
+               }
+       }
+
+       /**
+        * View position hint
+        */
+       @Override
+       public int getPreferredPosition() {
+               // want to be on top, as it's the main contextual view for this 
activity
+               return 100;
+       }
+
+       @Override
+       public Action getConfigureAction(final Frame owner) {
+               // "Configure" button appears because of this action being 
returned
+               return new XPathActivityConfigureAction(activity, owner, 
editManager, fileManager,
+                               activityIconManager, 
serviceDescriptionRegistry, serviceRegistry);
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/menu/AddXPathTemplateAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/menu/AddXPathTemplateAction.java
 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/menu/AddXPathTemplateAction.java
new file mode 100644
index 0000000..b5ba45a
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/menu/AddXPathTemplateAction.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (C) 2007-2009 The University of Manchester
+ *
+ *  Modifications to the initial code base are copyright of their
+ *  respective authors, or their employers as appropriate.
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public License
+ *  as published by the Free Software Foundation; either version 2.1 of
+ *  the License, or (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful, but
+ *  WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ 
******************************************************************************/
+package org.apache.taverna.activities.xpath.ui.menu;
+
+import java.awt.event.ActionEvent;
+import java.net.URI;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+
+import 
org.apache.taverna.activities.xpath.ui.servicedescription.XPathTemplateService;
+import org.apache.taverna.ui.menu.AbstractContextualMenuAction;
+import org.apache.taverna.ui.menu.MenuManager;
+import org.apache.taverna.workbench.activityicons.ActivityIconManager;
+import org.apache.taverna.workbench.edits.EditManager;
+import org.apache.taverna.workbench.selection.SelectionManager;
+import org.apache.taverna.workbench.ui.workflowview.WorkflowView;
+import org.apache.taverna.commons.services.ServiceRegistry;
+import org.apache.taverna.scufl2.api.core.Workflow;
+
+/**
+ * An action to add a REST activity + a wrapping processor to the workflow.
+ *
+ * @author Alex Nenadic
+ */
+@SuppressWarnings("serial")
+public class AddXPathTemplateAction extends AbstractContextualMenuAction {
+
+       private static final String ADD_XPATH = "XPath";
+
+       private static final URI insertSection = URI
+                       
.create("http://taverna.sf.net/2009/contextMenu/insert";);
+
+       private EditManager editManager;
+
+       private MenuManager menuManager;
+
+       private SelectionManager selectionManager;
+
+       private ActivityIconManager activityIconManager;
+
+       private ServiceRegistry serviceRegistry;
+
+       public AddXPathTemplateAction() {
+               super(insertSection, 1000);
+       }
+
+       @Override
+       public boolean isEnabled() {
+               return super.isEnabled() && 
getContextualSelection().getSelection() instanceof Workflow;
+       }
+
+       @Override
+       protected Action createAction() {
+
+               return new AddXPathAction();
+       }
+
+       protected class AddXPathAction extends AbstractAction {
+               AddXPathAction() {
+                       super(ADD_XPATH, activityIconManager
+                                       
.iconForActivity(XPathTemplateService.ACTIVITY_TYPE));
+               }
+
+               public void actionPerformed(ActionEvent e) {
+
+                       
WorkflowView.importServiceDescription(XPathTemplateService.getServiceDescription(),
+                                       false, editManager, menuManager, 
selectionManager, serviceRegistry);
+               }
+       }
+
+       public void setEditManager(EditManager editManager) {
+               this.editManager = editManager;
+       }
+
+       public void setMenuManager(MenuManager menuManager) {
+               this.menuManager = menuManager;
+       }
+
+       public void setSelectionManager(SelectionManager selectionManager) {
+               this.selectionManager = selectionManager;
+       }
+
+       public void setActivityIconManager(ActivityIconManager 
activityIconManager) {
+               this.activityIconManager = activityIconManager;
+       }
+
+       public void setServiceRegistry(ServiceRegistry serviceRegistry) {
+               this.serviceRegistry = serviceRegistry;
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/menu/AddXPathTemplateMenuAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/menu/AddXPathTemplateMenuAction.java
 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/menu/AddXPathTemplateMenuAction.java
new file mode 100644
index 0000000..e8ab4ef
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/menu/AddXPathTemplateMenuAction.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (C) 2007-2009 The University of Manchester
+ *
+ *  Modifications to the initial code base are copyright of their
+ *  respective authors, or their employers as appropriate.
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public License
+ *  as published by the Free Software Foundation; either version 2.1 of
+ *  the License, or (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful, but
+ *  WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ 
******************************************************************************/
+package org.apache.taverna.activities.xpath.ui.menu;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.net.URI;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.KeyStroke;
+
+import 
org.apache.taverna.activities.xpath.ui.servicedescription.XPathTemplateService;
+import org.apache.taverna.ui.menu.AbstractMenuAction;
+import org.apache.taverna.ui.menu.DesignOnlyAction;
+import org.apache.taverna.ui.menu.MenuManager;
+import org.apache.taverna.workbench.activityicons.ActivityIconManager;
+import org.apache.taverna.workbench.edits.EditManager;
+import org.apache.taverna.workbench.selection.SelectionManager;
+import org.apache.taverna.workbench.ui.workflowview.WorkflowView;
+import org.apache.taverna.commons.services.ServiceRegistry;
+
+/**
+ * An action to add a REST activity + a wrapping processor to the workflow.
+ *
+ * @author Alex Nenadic
+ * @author alanrw
+ */
+@SuppressWarnings("serial")
+public class AddXPathTemplateMenuAction extends AbstractMenuAction {
+
+       private static final String ADD_XPATH = "XPath";
+
+       private static final URI INSERT = URI
+                       
.create("http://taverna.sf.net/2008/t2workbench/menu#insert";);
+
+       private static final URI ADD_XPATH_URI = URI
+                       
.create("http://taverna.sf.net/2008/t2workbench/menu#graphMenuAddXPath";);
+
+       private EditManager editManager;
+
+       private MenuManager menuManager;
+
+       private SelectionManager selectionManager;
+
+       private ActivityIconManager activityIconManager;
+
+       private ServiceRegistry serviceRegistry;
+
+       public AddXPathTemplateMenuAction() {
+               super(INSERT, 1000, ADD_XPATH_URI);
+       }
+
+       @Override
+       protected Action createAction() {
+               return new AddXPathMenuAction();
+       }
+
+       protected class AddXPathMenuAction extends AbstractAction implements 
DesignOnlyAction {
+               AddXPathMenuAction() {
+                       super();
+                       putValue(SMALL_ICON,
+                                       
activityIconManager.iconForActivity(XPathTemplateService.ACTIVITY_TYPE));
+                       putValue(NAME, ADD_XPATH);
+                       putValue(SHORT_DESCRIPTION, "XPath service");
+                       putValue(
+                                       Action.ACCELERATOR_KEY,
+                                       KeyStroke.getKeyStroke(KeyEvent.VK_P, 
InputEvent.SHIFT_DOWN_MASK
+                                                       | 
InputEvent.ALT_DOWN_MASK));
+               }
+
+               public void actionPerformed(ActionEvent e) {
+                       
WorkflowView.importServiceDescription(XPathTemplateService.getServiceDescription(),
+                                       false, editManager, menuManager, 
selectionManager, serviceRegistry);
+               }
+       }
+
+       public void setEditManager(EditManager editManager) {
+               this.editManager = editManager;
+       }
+
+       public void setMenuManager(MenuManager menuManager) {
+               this.menuManager = menuManager;
+       }
+
+       public void setSelectionManager(SelectionManager selectionManager) {
+               this.selectionManager = selectionManager;
+       }
+
+       public void setActivityIconManager(ActivityIconManager 
activityIconManager) {
+               this.activityIconManager = activityIconManager;
+       }
+
+       public void setServiceRegistry(ServiceRegistry serviceRegistry) {
+               this.serviceRegistry = serviceRegistry;
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/servicedescription/XPathActivityIcon.java
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/servicedescription/XPathActivityIcon.java
 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/servicedescription/XPathActivityIcon.java
new file mode 100644
index 0000000..10cb2c6
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/servicedescription/XPathActivityIcon.java
@@ -0,0 +1,86 @@
+package org.apache.taverna.activities.xpath.ui.servicedescription;
+
+import java.awt.Color;
+import java.net.URI;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+
+import org.apache.taverna.workbench.activityicons.ActivityIconSPI;
+import org.apache.taverna.workbench.configuration.colour.ColourManager;
+
+/**
+ * @author Sergejs Aleksejevs
+ */
+public class XPathActivityIcon implements ActivityIconSPI {
+       private static final Color PROCESSOR_COLOUR = Color.decode("#E6FF5E");
+
+       // --- LOCATIONS OF ICONS USED IN THE XPath ACTIVITY ---
+
+       private static final String FAMFAMFAM_SILK_PATH = "famfamfam_silk/";
+       private static final String FOLDS_PATH = "folds/";
+
+       public static final String XPATH_ACTIVITY_ICON = FAMFAMFAM_SILK_PATH + 
"page_white_code.png";
+       public static final String XPATH_ACTIVITY_CONFIGURATION_PARSE_XML_ICON 
= "arrow_right.png";
+
+       public static final String XML_TREE_ROOT_ICON = FAMFAMFAM_SILK_PATH + 
"page_white_code.png";
+       public static final String XML_TREE_NODE_ICON = FAMFAMFAM_SILK_PATH + 
"tag.png";
+       public static final String XML_TREE_ATTRIBUTE_ICON = 
"xpath_attribute.png";
+
+       public static final String XML_TREE_EXPAND_ALL_ICON = 
FAMFAMFAM_SILK_PATH
+                       + "text_linespacing.png";
+       public static final String XML_TREE_COLLAPSE_ALL_ICON = 
FAMFAMFAM_SILK_PATH
+                       + "text_linespacing (collapse).png";
+
+       public static final String XPATH_STATUS_OK_ICON = FAMFAMFAM_SILK_PATH + 
"accept.png";
+       public static final String XPATH_STATUS_ERROR_ICON = 
FAMFAMFAM_SILK_PATH + "exclamation.png";
+       public static final String XPATH_STATUS_UNKNOWN_ICON = 
FAMFAMFAM_SILK_PATH + "help.png";
+
+       public static final String FOLD_ICON = FOLDS_PATH + "fold.png";
+       public static final String UNFOLD_ICON = FOLDS_PATH + "unfold.png";
+
+       // ------
+
+       private static ImageIcon icon;
+
+       public int canProvideIconScore(URI activityType) {
+               if (XPathTemplateService.ACTIVITY_TYPE.equals(activityType))
+                       return DEFAULT_ICON + 1;
+               else
+                       return NO_ICON;
+       }
+
+       public Icon getIcon(URI activityType) {
+               return getXPathActivityIcon();
+       }
+
+       public static Icon getXPathActivityIcon() {
+               if (icon == null) {
+                       synchronized (XPathActivityIcon.class) {
+                               if (icon == null) {
+                                       try {
+                                               icon = new ImageIcon(
+                                                               
XPathActivityIcon.class.getResource(XPATH_ACTIVITY_ICON));
+                                       } catch (NullPointerException e) {
+                                               /* icon wasn't found - do 
nothing, but no icon will be available */
+                                       }
+                               }
+                       }
+               }
+               return (icon);
+       }
+
+       public static Icon getIconById(String iconID) {
+               try {
+                       return (new 
ImageIcon(XPathActivityIcon.class.getResource(iconID)));
+               } catch (NullPointerException e) {
+                       // requested icon wasn't found - just return null
+                       return (null);
+               }
+       }
+
+       public void setColourManager(ColourManager colourManager) {
+               
colourManager.setPreferredColour(XPathTemplateService.ACTIVITY_TYPE.toString(), 
PROCESSOR_COLOUR);
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/servicedescription/XPathTemplateService.java
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/servicedescription/XPathTemplateService.java
 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/servicedescription/XPathTemplateService.java
new file mode 100644
index 0000000..9abf37a
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/java/org/apache/taverna/activities/xpath/ui/servicedescription/XPathTemplateService.java
@@ -0,0 +1,62 @@
+package org.apache.taverna.activities.xpath.ui.servicedescription;
+
+import java.net.URI;
+
+import javax.swing.Icon;
+
+import org.apache.taverna.servicedescriptions.AbstractTemplateService;
+import org.apache.taverna.servicedescriptions.ServiceDescription;
+import org.apache.taverna.scufl2.api.configurations.Configuration;
+
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+/**
+ * @author Sergejs Aleksejevs
+ * @author David Withers
+ */
+public class XPathTemplateService extends AbstractTemplateService {
+
+       public static final URI ACTIVITY_TYPE = 
URI.create("http://ns.taverna.org.uk/2010/activity/xpath";);
+
+       @Override
+       public URI getActivityType() {
+               return ACTIVITY_TYPE;
+       }
+
+       @Override
+       public Configuration getActivityConfiguration() {
+               Configuration configuration = new Configuration();
+               configuration.setType(ACTIVITY_TYPE.resolve("#Config"));
+               ObjectNode json = (ObjectNode) configuration.getJson();
+               json.put("xpathExpression", "/");
+               return configuration;
+       }
+
+       @Override
+       public Icon getIcon() {
+               return XPathActivityIcon.getXPathActivityIcon();
+       }
+
+       public String getName() {
+               return "XPath";
+       }
+
+       public String getDescription() {
+               return "Service for point-and-click creation of XPath 
expressions for XML data";
+       }
+
+       public static ServiceDescription getServiceDescription() {
+               XPathTemplateService gts = new XPathTemplateService();
+               return gts.templateService;
+       }
+
+       public String getId() {
+               return "http://www.taverna.org.uk/2010/services/xpath";;
+       }
+
+    @Override
+    public XPathTemplateService newInstance() {
+        return new XPathTemplateService();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
deleted file mode 100644
index be7da5f..0000000
--- 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
+++ /dev/null
@@ -1 +0,0 @@
-net.sf.taverna.t2.activities.xpath.ui.servicedescription.XPathTemplateService
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
deleted file mode 100644
index 7700abb..0000000
--- 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
+++ /dev/null
@@ -1,3 +0,0 @@
-net.sf.taverna.t2.activities.xpath.ui.contextualview.ConfigureXPathActivityMenuAction
-net.sf.taverna.t2.activities.xpath.ui.menu.AddXPathTemplateAction
-net.sf.taverna.t2.activities.xpath.ui.menu.AddXPathTemplateMenuAction
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
deleted file mode 100644
index b759c2e..0000000
--- 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
+++ /dev/null
@@ -1 +0,0 @@
-net.sf.taverna.t2.activities.xpath.ui.servicedescription.XPathActivityIcon
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
deleted file mode 100644
index e248981..0000000
--- 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
+++ /dev/null
@@ -1 +0,0 @@
- 
net.sf.taverna.t2.activities.xpath.ui.contextualview.XPathActivityMainContextViewFactory

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider
 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider
new file mode 100644
index 0000000..49f4b21
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider
@@ -0,0 +1 @@
+org.apache.taverna.activities.xpath.ui.servicedescription.XPathTemplateService
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent
 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent
new file mode 100644
index 0000000..079c0bb
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent
@@ -0,0 +1,3 @@
+org.apache.taverna.activities.xpath.ui.contextualview.ConfigureXPathActivityMenuAction
+org.apache.taverna.activities.xpath.ui.menu.AddXPathTemplateAction
+org.apache.taverna.activities.xpath.ui.menu.AddXPathTemplateMenuAction
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI
 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI
new file mode 100644
index 0000000..69903f8
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI
@@ -0,0 +1 @@
+org.apache.taverna.activities.xpath.ui.servicedescription.XPathActivityIcon
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory
 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory
new file mode 100644
index 0000000..248a92e
--- /dev/null
+++ 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory
@@ -0,0 +1 @@
+ 
org.apache.taverna.activities.xpath.ui.contextualview.XPathActivityMainContextViewFactory

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/META-INF/spring/xpath-activity-ui-context-osgi.xml
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/spring/xpath-activity-ui-context-osgi.xml
 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/spring/xpath-activity-ui-context-osgi.xml
index 1e53ea6..f368183 100644
--- 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/spring/xpath-activity-ui-context-osgi.xml
+++ 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/spring/xpath-activity-ui-context-osgi.xml
@@ -6,23 +6,23 @@
                       http://www.springframework.org/schema/osgi
                       
http://www.springframework.org/schema/osgi/spring-osgi.xsd";>
 
-       <service ref="XPathActivityIcon" 
interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI" />
+       <service ref="XPathActivityIcon" 
interface="org.apache.taverna.workbench.activityicons.ActivityIconSPI" />
 
-       <service ref="XPathTemplateService" 
interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider" />
+       <service ref="XPathTemplateService" 
interface="org.apache.taverna.servicedescriptions.ServiceDescriptionProvider" />
 
        <service ref="ConfigureXPathActivityMenuAction" 
auto-export="interfaces" />
        <service ref="AddXPathTemplateAction" auto-export="interfaces" />
        <service ref="AddXPathTemplateMenuAction" auto-export="interfaces" />
 
-       <service ref="XPathActivityMainContextViewFactory" 
interface="net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory"
 />
+       <service ref="XPathActivityMainContextViewFactory" 
interface="org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory"
 />
 
-       <reference id="editManager" 
interface="net.sf.taverna.t2.workbench.edits.EditManager" />
-       <reference id="fileManager" 
interface="net.sf.taverna.t2.workbench.file.FileManager" />
-       <reference id="menuManager" 
interface="net.sf.taverna.t2.ui.menu.MenuManager" />
-       <reference id="selectionManager" 
interface="net.sf.taverna.t2.workbench.selection.SelectionManager" />
-       <reference id="activityIconManager" 
interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconManager" />
-       <reference id="colourManager" 
interface="net.sf.taverna.t2.workbench.configuration.colour.ColourManager" />
-       <reference id="serviceDescriptionRegistry" 
interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry" />
+       <reference id="editManager" 
interface="org.apache.taverna.workbench.edits.EditManager" />
+       <reference id="fileManager" 
interface="org.apache.taverna.workbench.file.FileManager" />
+       <reference id="menuManager" 
interface="org.apache.taverna.ui.menu.MenuManager" />
+       <reference id="selectionManager" 
interface="org.apache.taverna.workbench.selection.SelectionManager" />
+       <reference id="activityIconManager" 
interface="org.apache.taverna.workbench.activityicons.ActivityIconManager" />
+       <reference id="colourManager" 
interface="org.apache.taverna.workbench.configuration.colour.ColourManager" />
+       <reference id="serviceDescriptionRegistry" 
interface="org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry" />
        <reference id="serviceRegistry" 
interface="uk.org.taverna.commons.services.ServiceRegistry" />
 
 </beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/META-INF/spring/xpath-activity-ui-context.xml
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/spring/xpath-activity-ui-context.xml
 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/spring/xpath-activity-ui-context.xml
index 0116b2e..d10f141 100644
--- 
a/taverna-xpath-activity-ui/src/main/resources/META-INF/spring/xpath-activity-ui-context.xml
+++ 
b/taverna-xpath-activity-ui/src/main/resources/META-INF/spring/xpath-activity-ui-context.xml
@@ -5,15 +5,15 @@
                       
http://www.springframework.org/schema/beans/spring-beans.xsd";>
 
        <bean id="XPathActivityIcon"
-               
class="net.sf.taverna.t2.activities.xpath.ui.servicedescription.XPathActivityIcon">
+               
class="org.apache.taverna.activities.xpath.ui.servicedescription.XPathActivityIcon">
                <property name="colourManager" ref="colourManager" />
        </bean>
 
        <bean id="XPathTemplateService"
-               
class="net.sf.taverna.t2.activities.xpath.ui.servicedescription.XPathTemplateService"
 />
+               
class="org.apache.taverna.activities.xpath.ui.servicedescription.XPathTemplateService"
 />
 
        <bean id="ConfigureXPathActivityMenuAction"
-               
class="net.sf.taverna.t2.activities.xpath.ui.contextualview.ConfigureXPathActivityMenuAction">
+               
class="org.apache.taverna.activities.xpath.ui.contextualview.ConfigureXPathActivityMenuAction">
                <property name="editManager" ref="editManager" />
                <property name="fileManager" ref="fileManager" />
                <property name="activityIconManager" ref="activityIconManager" 
/>
@@ -21,7 +21,7 @@
                <property name="serviceRegistry" ref="serviceRegistry" />
        </bean>
        <bean id="AddXPathTemplateAction"
-               
class="net.sf.taverna.t2.activities.xpath.ui.menu.AddXPathTemplateAction">
+               
class="org.apache.taverna.activities.xpath.ui.menu.AddXPathTemplateAction">
                <property name="editManager" ref="editManager" />
                <property name="menuManager" ref="menuManager" />
                <property name="selectionManager" ref="selectionManager" />
@@ -29,7 +29,7 @@
                <property name="serviceRegistry" ref="serviceRegistry" />
        </bean>
        <bean id="AddXPathTemplateMenuAction"
-               
class="net.sf.taverna.t2.activities.xpath.ui.menu.AddXPathTemplateMenuAction">
+               
class="org.apache.taverna.activities.xpath.ui.menu.AddXPathTemplateMenuAction">
                <property name="editManager" ref="editManager" />
                <property name="menuManager" ref="menuManager" />
                <property name="selectionManager" ref="selectionManager" />
@@ -38,7 +38,7 @@
        </bean>
 
        <bean id="XPathActivityMainContextViewFactory"
-               
class="net.sf.taverna.t2.activities.xpath.ui.contextualview.XPathActivityMainContextViewFactory">
+               
class="org.apache.taverna.activities.xpath.ui.contextualview.XPathActivityMainContextViewFactory">
                <property name="editManager" ref="editManager" />
                <property name="fileManager" ref="fileManager" />
                <property name="activityIconManager" ref="activityIconManager" 
/>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/arrow_right.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/arrow_right.png
 
b/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/arrow_right.png
deleted file mode 100644
index 2cf15f1..0000000
Binary files 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/arrow_right.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/accept.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/accept.png
 
b/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/accept.png
deleted file mode 100644
index 89c8129..0000000
Binary files 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/accept.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/exclamation.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/exclamation.png
 
b/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/exclamation.png
deleted file mode 100644
index c37bd06..0000000
Binary files 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/exclamation.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/help.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/help.png
 
b/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/help.png
deleted file mode 100644
index 5c87017..0000000
Binary files 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/help.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/page_white_code.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/page_white_code.png
 
b/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/page_white_code.png
deleted file mode 100644
index 0c76bd1..0000000
Binary files 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/page_white_code.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/tag.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/tag.png
 
b/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/tag.png
deleted file mode 100644
index e093032..0000000
Binary files 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/tag.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing
 (collapse).png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing
 (collapse).png 
b/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing
 (collapse).png
deleted file mode 100644
index ff09e31..0000000
Binary files 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing
 (collapse).png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing.png
 
b/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing.png
deleted file mode 100644
index 1a91cbd..0000000
Binary files 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/folds/fold.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/folds/fold.png
 
b/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/folds/fold.png
deleted file mode 100644
index a13d280..0000000
Binary files 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/folds/fold.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/folds/unfold.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/folds/unfold.png
 
b/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/folds/unfold.png
deleted file mode 100644
index 589e2c9..0000000
Binary files 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/folds/unfold.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/xpath_attribute.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/xpath_attribute.png
 
b/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/xpath_attribute.png
deleted file mode 100644
index 3fa7811..0000000
Binary files 
a/taverna-xpath-activity-ui/src/main/resources/net/sf/taverna/t2/activities/xpath/ui/servicedescription/xpath_attribute.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/arrow_right.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/arrow_right.png
 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/arrow_right.png
new file mode 100644
index 0000000..2cf15f1
Binary files /dev/null and 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/arrow_right.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/accept.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/accept.png
 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/accept.png
new file mode 100644
index 0000000..89c8129
Binary files /dev/null and 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/accept.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/exclamation.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/exclamation.png
 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/exclamation.png
new file mode 100644
index 0000000..c37bd06
Binary files /dev/null and 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/exclamation.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/help.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/help.png
 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/help.png
new file mode 100644
index 0000000..5c87017
Binary files /dev/null and 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/help.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/page_white_code.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/page_white_code.png
 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/page_white_code.png
new file mode 100644
index 0000000..0c76bd1
Binary files /dev/null and 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/page_white_code.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/tag.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/tag.png
 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/tag.png
new file mode 100644
index 0000000..e093032
Binary files /dev/null and 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/tag.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing
 (collapse).png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing
 (collapse).png 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing
 (collapse).png
new file mode 100644
index 0000000..ff09e31
Binary files /dev/null and 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing
 (collapse).png differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing.png
 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing.png
new file mode 100644
index 0000000..1a91cbd
Binary files /dev/null and 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/famfamfam_silk/text_linespacing.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/folds/fold.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/folds/fold.png
 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/folds/fold.png
new file mode 100644
index 0000000..a13d280
Binary files /dev/null and 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/folds/fold.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/folds/unfold.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/folds/unfold.png
 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/folds/unfold.png
new file mode 100644
index 0000000..589e2c9
Binary files /dev/null and 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/folds/unfold.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/xpath_attribute.png
----------------------------------------------------------------------
diff --git 
a/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/xpath_attribute.png
 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/xpath_attribute.png
new file mode 100644
index 0000000..3fa7811
Binary files /dev/null and 
b/taverna-xpath-activity-ui/src/main/resources/org/apache/taverna/activities/xpath/ui/servicedescription/xpath_attribute.png
 differ

Reply via email to