You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/02/23 11:38:14 UTC
[06/17] incubator-taverna-plugin-bioinformatics git commit: Revert
"temporarily empty repository"
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/ui/BiomobyObjectTree.java
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/ui/BiomobyObjectTree.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/ui/BiomobyObjectTree.java
new file mode 100644
index 0000000..7ca2578
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/ui/BiomobyObjectTree.java
@@ -0,0 +1,635 @@
+/*
+ * This file is a component of the Taverna project,
+ * and is licensed under the GNU LGPL.
+ * Copyright Edward Kawas, The BioMoby Project
+ */
+package net.sf.taverna.t2.activities.biomoby.ui;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.swing.ImageIcon;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
+import javax.swing.JScrollPane;
+import javax.swing.JSeparator;
+import javax.swing.JTextField;
+import javax.swing.JTree;
+import javax.swing.ToolTipManager;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreePath;
+import javax.swing.tree.TreeSelectionModel;
+
+import net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivity;
+import net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivityConfigurationBean;
+import net.sf.taverna.t2.activities.biomoby.actions.MobyPanel;
+import net.sf.taverna.t2.activities.biomoby.datatypedescriptions.BiomobyDatatypeDescription;
+import net.sf.taverna.t2.activities.biomoby.edits.AddUpstreamObjectEdit;
+import net.sf.taverna.t2.activities.biomoby.query.BiomobyObjectActivityItem;
+import net.sf.taverna.t2.activities.biomoby.query.BiomobyQueryHelper;
+import net.sf.taverna.t2.workbench.edits.EditManager;
+import net.sf.taverna.t2.workbench.file.FileManager;
+import net.sf.taverna.t2.workflowmodel.CompoundEdit;
+import net.sf.taverna.t2.workflowmodel.Dataflow;
+import net.sf.taverna.t2.workflowmodel.Edit;
+import net.sf.taverna.t2.workflowmodel.Edits;
+import net.sf.taverna.t2.workflowmodel.utils.Tools;
+
+import org.apache.log4j.Logger;
+import org.biomoby.client.CentralImpl;
+import org.biomoby.shared.MobyException;
+
+/**
+ * Creates a Datatype tree for any BioMOBY registry. The tree allows the user to
+ * add nodes to the workflow. Includes the ability to search for datatypes too.
+ *
+ * @author Eddie Kawas, The BioMoby Project
+ *
+ */
+public class BiomobyObjectTree {
+
+ private static Logger logger = Logger
+ .getLogger(BiomobyObjectTree.class);
+
+ private JTree tree;
+ private String registryEndpoint = "";
+ private String registryNamespace = "";
+ private static String SEARCH_DATATYPE_TEXT = "Type to search!";
+ private FilterTreeModel model;
+ private final EditManager editManager;
+ private final FileManager fileManager;
+
+ /**
+ * Default constructor. Creates a BiomobyObjectTree for the default Biomoby
+ * registry
+ */
+ public BiomobyObjectTree(EditManager editManager, FileManager fileManager) {
+ this(CentralImpl.DEFAULT_ENDPOINT, CentralImpl.DEFAULT_NAMESPACE, editManager, fileManager);
+ }
+
+ /**
+ *
+ * @param url
+ * the Biomoby registry endpoint URL to build a tree for
+ * @param uri
+ * the Biomoby registry namespace URI to build a tree for
+ */
+ public BiomobyObjectTree(String url, String uri, EditManager editManager, FileManager fileManager) {
+ this.registryEndpoint = url;
+ this.registryNamespace = uri;
+ this.editManager = editManager;
+ this.fileManager = fileManager;
+ }
+
+ /*
+ * method that inserts our BiomobyDatatypeDescription object into our tree
+ */
+ private void insertDescriptionIntoTree(
+ BiomobyDatatypeDescription description,
+ HashMap<String, FilterTreeNode> nodeMap,
+ HashMap<String, BiomobyDatatypeDescription> descriptionMap) {
+ FilterTreeNode node = nodeMap.containsKey(description.getName()) ? nodeMap
+ .get(description.getName())
+ : new FilterTreeNode(description);
+
+ String parent = description.getParent();
+ if (parent.equals(""))
+ parent = "Object";
+ FilterTreeNode pNode = nodeMap.containsKey(parent) ? nodeMap
+ .get(parent) : new FilterTreeNode(descriptionMap.get(parent));
+ pNode.add(node);
+ nodeMap.put(description.getName(), node);
+ nodeMap.put(parent, pNode);
+ }
+
+ /**
+ *
+ * @return a Tree containing the datatype ontology for the specified biomoby
+ * registry
+ * @throws MobyException
+ * if there is a problem comunicating with the specified biomoby
+ * registry
+ */
+ public Component getDatatypeTree() throws MobyException {
+ BiomobyQueryHelper bqh = new BiomobyQueryHelper(getRegistryEndpoint(),
+ getRegistryNamespace());
+ List<BiomobyDatatypeDescription> descriptions = bqh
+ .findDatatypeDescriptions();
+
+ // create a tree from all of the nodes
+ HashMap<String, BiomobyDatatypeDescription> descriptionMap = new HashMap<String, BiomobyDatatypeDescription>();
+ HashMap<String, FilterTreeNode> nodeMap = new HashMap<String, FilterTreeNode>();
+ for (BiomobyDatatypeDescription d : descriptions) {
+ // PRECONDITION: datatype names are unique across the ontology
+ descriptionMap.put(d.getDatatypeName(), d);
+ }
+
+ nodeMap.put("Object", new FilterTreeNode(descriptionMap.get("Object")));
+ for (BiomobyDatatypeDescription d : descriptions) {
+ if (!d.getName().equals("Object"))
+ insertDescriptionIntoTree(d, nodeMap, descriptionMap);
+ }
+ // construct a new tree with our root node
+ tree = new JTree(nodeMap.get("Object"));
+
+ // only allow one node to be selected at once
+ tree.getSelectionModel().setSelectionMode(
+ TreeSelectionModel.SINGLE_TREE_SELECTION);
+ model = new FilterTreeModel((FilterTreeNode) tree.getModel().getRoot());
+ tree.setModel(model);
+
+ // set up the icon and tooltips for the nodes in the tree
+ ImageIcon icon = new ImageIcon(BiomobyObjectActivityItem.class
+ .getResource("/biomoby_object.png"));
+ if (icon != null) {
+ DefaultTreeCellRenderer renderer = new DatatypeTreeRenderer();
+ renderer.setLeafIcon(icon);
+ renderer.setOpenIcon(icon);
+ renderer.setClosedIcon(icon);
+ renderer.setIcon(icon);
+ tree.setCellRenderer(renderer);
+ }
+
+ // add a mouse listener to catch context clicks
+ // the listener adds the selected datatype to the workflow
+ // it also adds the datatype's container relationships
+ tree.addMouseListener(new BiomobyObjectTreeMouseListener());
+ // clear the hashmaps to clear some memory
+ nodeMap.clear();
+ descriptionMap.clear();
+ // register our tree for tool tips
+ ToolTipManager.sharedInstance().registerComponent(tree);
+ // insert the tree into a scrollpane
+ JScrollPane treeView = new JScrollPane(tree);
+ treeView.setSize(getFrameSize());
+
+ // create a new panel to hold the scrollpane and a search box
+ JPanel panel = new JPanel(new BorderLayout());
+ panel.add(treeView, BorderLayout.CENTER);
+ JTextField search = new JTextField(SEARCH_DATATYPE_TEXT);
+ panel.add(search, BorderLayout.PAGE_END);
+ search.addKeyListener(new KeyListener() {
+ public void keyPressed(KeyEvent e) {
+ if (e.getSource() instanceof JTextField) {
+ JTextField field = (JTextField) e.getSource();
+ if (field.getText().trim().equals(
+ BiomobyObjectTree.SEARCH_DATATYPE_TEXT)) {
+ field.setText("");
+ }
+ }
+ }
+
+ public void keyReleased(KeyEvent e) {
+ if (e.getSource() instanceof JTextField) {
+ JTextField field = (JTextField) e.getSource();
+ if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
+ field.setText(SEARCH_DATATYPE_TEXT);
+ model.setFilter(null);
+ return;
+ }
+ // filter our tree
+ if (!field.getText().trim().equals(
+ BiomobyObjectTree.SEARCH_DATATYPE_TEXT)) {
+ // does our filter tree model exist yet?
+ model.setFilter(field.getText().trim());
+ }
+ }
+ }
+
+ public void keyTyped(KeyEvent e) {
+
+ }
+ });
+ search.addFocusListener(new FocusListener() {
+
+ public void focusGained(FocusEvent e) {
+ if (e.getSource() instanceof JTextField) {
+ JTextField field = (JTextField) e.getSource();
+ if (field.getText().trim().equals(
+ BiomobyObjectTree.SEARCH_DATATYPE_TEXT)) {
+ field.setText("");
+ }
+ }
+ }
+
+ public void focusLost(FocusEvent e) {
+ if (e.getSource() instanceof JTextField) {
+ JTextField field = (JTextField) e.getSource();
+ if (field.getText().trim().equals("")) {
+ field.setText(SEARCH_DATATYPE_TEXT);
+ }
+ }
+ }
+ });
+ // done
+ panel.setToolTipText("Datatype Viewer for " + getRegistryEndpoint().toString());
+ return panel;
+ }
+
+ /**
+ *
+ * @param registryEndpoint
+ * the endpoint to set
+ */
+ public void setRegistryEndpoint(String registryEndpoint) {
+ this.registryEndpoint = registryEndpoint;
+ }
+
+ /**
+ *
+ * @param registryNamespace
+ * the namespace to set
+ */
+ public void setRegistryNamespace(String registryNamespace) {
+ this.registryNamespace = registryNamespace;
+ }
+
+ /**
+ *
+ * @return the registry endpoint that this tree is using
+ */
+ public String getRegistryEndpoint() {
+ return registryEndpoint;
+ }
+
+ /**
+ *
+ * @return the registry namespace that this tree is using
+ */
+ public String getRegistryNamespace() {
+ return registryNamespace;
+ }
+
+ /**
+ * returns the frame size as a dimension for the content pane housing this
+ * action
+ */
+ public Dimension getFrameSize() {
+ return new Dimension(550, 450);
+ }
+
+ /*
+ * A mouse listener for our datatype tree
+ */
+ private class BiomobyObjectTreeMouseListener implements MouseListener {
+ public void mouseClicked(MouseEvent me) {
+ }
+
+ public void mousePressed(MouseEvent me) {
+ mouseReleased(me);
+ }
+
+ public void mouseReleased(MouseEvent me) {
+ if (me.isPopupTrigger()) // right click, show popup menu
+ {
+ TreePath path = tree.getPathForLocation(me.getX(), me.getY());
+ if (path == null)
+ return;
+
+ DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree
+ .getLastSelectedPathComponent();
+ if (node == null)
+ return;
+
+ final String selectedObject = node.toString();
+ final BiomobyDatatypeDescription bdd = (BiomobyDatatypeDescription) node
+ .getUserObject();
+ final JPopupMenu menu = new JPopupMenu();
+ // Create and add a menu item for adding to the
+ // item to the workflow
+ JMenuItem item = new JMenuItem("Add Datatype - '"
+ + selectedObject + "' to the workflow?");
+
+ item.addActionListener(new ActionListener() {
+
+ public void actionPerformed(ActionEvent ae) {
+
+ try {
+ Dataflow dataflow = fileManager.getCurrentDataflow();
+ List<Edit<?>> compoundEdits = new ArrayList<Edit<?>>();
+ List<Edit<?>> editList = new ArrayList<Edit<?>>();
+
+ String name = Tools.uniqueProcessorName(
+ selectedObject, dataflow);
+
+ BiomobyObjectActivityConfigurationBean configBean = new BiomobyObjectActivityConfigurationBean();
+ configBean.setMobyEndpoint(bdd
+ .getActivityConfiguration()
+ .getMobyEndpoint());
+ configBean.setAuthorityName("");
+ configBean.setServiceName(selectedObject);
+
+ Edits edits = editManager.getEdits();
+ net.sf.taverna.t2.workflowmodel.Processor sourceProcessor = edits
+ .createProcessor(name);
+ BiomobyObjectActivity boActivity = new BiomobyObjectActivity();
+ Edit<?> configureActivityEdit = edits
+ .getConfigureActivityEdit(boActivity,
+ configBean);
+ editList.add(configureActivityEdit);
+
+ editList
+ .add(edits
+ .getDefaultDispatchStackEdit(sourceProcessor));
+
+ Edit<?> addActivityToProcessorEdit = edits
+ .getAddActivityEdit(sourceProcessor,
+ boActivity);
+ editList.add(addActivityToProcessorEdit);
+
+ editList.add(edits.getAddProcessorEdit(dataflow,
+ sourceProcessor));
+
+ CompoundEdit compoundEdit = new CompoundEdit(
+ editList);
+ compoundEdits.add(compoundEdit);
+ compoundEdit.doEdit();
+
+ // process relationships
+ Edit<?> edit = new AddUpstreamObjectEdit(dataflow,
+ sourceProcessor, boActivity, edits);
+ editManager.doDataflowEdit(dataflow, edit);
+
+ } catch (Exception e) {
+ logger.error("Could not add datatype", e);
+ }
+ }
+ });
+ item.setIcon(MobyPanel.getIcon("/Add24.gif"));
+
+ // add the components to the menus
+ menu.add(new JLabel("Add to workflow ... ", JLabel.CENTER));
+ menu.add(new JSeparator());
+ menu.add(item);
+ // show the window
+ menu.show(me.getComponent(), me.getX(), me.getY());
+ }
+ }
+
+ public void mouseEntered(MouseEvent me) {
+ }
+
+ public void mouseExited(MouseEvent me) {
+ }
+ }
+
+ private static class DatatypeTreeRenderer extends DefaultTreeCellRenderer {
+
+ private static final long serialVersionUID = 7287097980554656834L;
+
+ // the max tool tip length
+ private static int MAX_TOOLTIP_LENGTH = 300;
+
+ @Override
+ public Component getTreeCellRendererComponent(JTree tree, Object value,
+ boolean sel, boolean expanded, boolean leaf, int row,
+ boolean hasFocus) {
+ if (value instanceof DefaultMutableTreeNode) {
+ if (((DefaultMutableTreeNode) value).getUserObject() instanceof BiomobyDatatypeDescription) {
+ BiomobyDatatypeDescription desc = (BiomobyDatatypeDescription) ((DefaultMutableTreeNode) value)
+ .getUserObject();
+ String d = desc.getDescription().trim();
+ // we only keep MAX_TOOLTIP_LENGTH characters of the string
+ if (d.length() > MAX_TOOLTIP_LENGTH)
+ d = d.substring(0, MAX_TOOLTIP_LENGTH) + "...";
+ setToolTipText("<html><body><div style='width:200px;'><span>"
+ + d + "</span></div></body></html>");
+
+ ToolTipManager.sharedInstance().setDismissDelay(
+ Integer.MAX_VALUE);
+ }
+ }
+ return super.getTreeCellRendererComponent(tree, value, sel,
+ expanded, leaf, row, hasFocus);
+ }
+ }
+
+ /*
+ * Shamelessly stolen from t2. Made the Filter a simple string filter and
+ * modified the code a bit to make it relevant to my tree
+ */
+ private final class FilterTreeModel extends DefaultTreeModel {
+
+ private static final long serialVersionUID = 8446366558654481274L;
+ String currentFilter;
+
+ /**
+ *
+ * @param node
+ * the node to apply filtering to
+ */
+ public FilterTreeModel(FilterTreeNode node) {
+ this(node, null);
+ }
+
+ /**
+ *
+ * @param node
+ * the node to apply filtering to
+ * @param filter
+ * the actual filter we will apply
+ */
+ public FilterTreeModel(FilterTreeNode node, String filter) {
+ super(node);
+ currentFilter = filter;
+ node.setFilter(filter);
+ }
+
+ /**
+ *
+ * @param filter
+ * the filter to set and apply to our node
+ */
+ public void setFilter(String filter) {
+ if (root != null) {
+ currentFilter = filter;
+ ((FilterTreeNode) root).setFilter(filter);
+ Object[] path = { root };
+ fireTreeStructureChanged(this, path, null, null);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * javax.swing.tree.DefaultTreeModel#getChildCount(java.lang.Object)
+ */
+ public int getChildCount(Object parent) {
+ if (parent instanceof FilterTreeNode) {
+ return (((FilterTreeNode) parent).getChildCount());
+ }
+ return 0;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.swing.tree.DefaultTreeModel#getChild(java.lang.Object,
+ * int)
+ */
+ public Object getChild(Object parent, int index) {
+ if (parent instanceof FilterTreeNode) {
+ return (((FilterTreeNode) parent).getChildAt(index));
+ }
+ return null;
+ }
+
+ /**
+ * Getter
+ *
+ * @return the filter that we are currently using
+ */
+ public String getCurrentFilter() {
+ return currentFilter;
+ }
+ }
+
+ private class FilterTreeNode extends DefaultMutableTreeNode {
+
+ private static final long serialVersionUID = -5269485070471940445L;
+ private String filter;
+ private boolean passed = true;
+ private List<FilterTreeNode> filteredChildren = new ArrayList<FilterTreeNode>();
+
+ public FilterTreeNode(Object userObject) {
+ super(userObject);
+ }
+
+ public String getFilter() {
+ return filter;
+ }
+
+ public void setFilter(String filter) {
+ this.filter = filter == null ? "" : filter;
+ passed = false;
+ filteredChildren.clear();
+ if (filter == null) {
+ passed = true;
+ passFilterDown(null);
+ } else if (pass(this)) {
+ passed = true;
+ passFilterDown(filter);
+ } else {
+ passFilterDown(filter);
+ passed = filteredChildren.size() != 0;
+ }
+ }
+
+ private boolean pass(FilterTreeNode node) {
+ if (getFilter().trim().equals("")) {
+ return true;
+ }
+ return node.getUserObject().toString().toLowerCase().trim()
+ .contains(getFilter().toLowerCase().trim());
+ }
+
+ private void passFilterDown(String filter) {
+ int realChildCount = super.getChildCount();
+ for (int i = 0; i < realChildCount; i++) {
+ FilterTreeNode realChild = (FilterTreeNode) super.getChildAt(i);
+ realChild.setFilter(filter);
+ if (realChild.isPassed()) {
+ filteredChildren.add(realChild);
+ }
+ }
+ }
+
+ public void add(FilterTreeNode node) {
+ super.add(node);
+ node.setFilter(filter);
+ if (node.isPassed()) {
+ filteredChildren.add(node);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.swing.tree.DefaultMutableTreeNode#remove(int)
+ */
+ public void remove(int childIndex) {
+ if (filter != null) {
+ // as child indexes might be inconsistent..
+ throw new IllegalStateException(
+ "Can't remove while the filter is active");
+ }
+ super.remove(childIndex);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.swing.tree.DefaultMutableTreeNode#getChildCount()
+ */
+ public int getChildCount() {
+ if (filter == null) {
+ return super.getChildCount();
+ }
+ return (filteredChildren.size());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.swing.tree.DefaultMutableTreeNode#getChildAt(int)
+ */
+ public FilterTreeNode getChildAt(int index) {
+ if (filter == null) {
+ return (FilterTreeNode) super.getChildAt(index);
+ }
+ return filteredChildren.get(index);
+ }
+
+ /**
+ *
+ * @return
+ */
+ public boolean isPassed() {
+ return passed;
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+ // Create a frame
+ String title = "TeST";
+ JFrame frame = new JFrame(title);
+
+ // Create a component to add to the frame
+/* Component comp = new BiomobyObjectTree(CentralImpl.DEFAULT_ENDPOINT,
+ CentralImpl.DEFAULT_NAMESPACE).getDatatypeTree();*/
+
+ Component comp = new BiomobyObjectTree("http://cropwiki.irri.org/cgi-bin/MOBY-Central.pl",
+ CentralImpl.DEFAULT_NAMESPACE, null, null).getDatatypeTree();
+
+ // Add the component to the frame's content pane;
+ // by default, the content pane has a border layout
+ frame.getContentPane().add(comp, BorderLayout.CENTER);
+
+ // Show the frame
+ int width = 300;
+ int height = 300;
+ frame.setSize(width, height);
+ frame.setVisible(true);
+
+ // Set to exit on close
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/ui/DatatypeMenuItem.java
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/ui/DatatypeMenuItem.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/ui/DatatypeMenuItem.java
new file mode 100644
index 0000000..c5a7468
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/ui/DatatypeMenuItem.java
@@ -0,0 +1,196 @@
+/*
+ * This file is a component of the Taverna project,
+ * and is licensed under the GNU LGPL.
+ * Copyright Edward Kawas, The BioMoby Project
+ */
+package net.sf.taverna.t2.activities.biomoby.ui;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.BorderFactory;
+import javax.swing.ImageIcon;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
+
+import net.sf.taverna.t2.activities.biomoby.actions.MobyPanel;
+import net.sf.taverna.t2.activities.biomoby.query.BiomobyObjectActivityItem;
+import net.sf.taverna.t2.workbench.MainWindow;
+import net.sf.taverna.t2.workbench.edits.EditManager;
+import net.sf.taverna.t2.workbench.file.FileManager;
+import net.sf.taverna.t2.workbench.helper.HelpEnabledDialog;
+
+import org.apache.log4j.Logger;
+import org.biomoby.client.CentralImpl;
+import org.biomoby.shared.MobyException;
+
+import com.sun.java.help.impl.SwingWorker;
+
+/**
+ * DatatypeMenuItem is a JMenuItem that onClick produces a biomoby datatype tree
+ * that workbench users can utilize to add datatypes to any workflow.
+ *
+ * @author Edward Kawas
+ *
+ */
+public class DatatypeMenuItem extends JMenuItem {
+
+ private static Logger logger = Logger.getLogger(DatatypeMenuItem.class);
+ private static final long serialVersionUID = -1010828167358361441L;
+
+ private String endpoint;
+ private String namespace;
+
+ private final EditManager editManager;
+ private final FileManager fileManager;
+
+ /**
+ * Default constructor; Creates a menu item for the default registry
+ */
+ public DatatypeMenuItem(EditManager editManager, FileManager fileManager) {
+ this(CentralImpl.DEFAULT_ENDPOINT, CentralImpl.DEFAULT_NAMESPACE, editManager, fileManager);
+ }
+
+ /**
+ * Create a Datatype menu item for a biomoby registry given a specific
+ * endpoint and namespace
+ *
+ * @param endpoint
+ * the registry endpoint
+ * @param namespace
+ * the registry namespace
+ */
+ public DatatypeMenuItem(String endpoint, String namespace, EditManager editManager, FileManager fileManager) {
+ this(endpoint, namespace, endpoint, editManager, fileManager);
+ }
+
+ /*
+ * A private constructor. Every constructor ends up here
+ */
+ private DatatypeMenuItem(String endpoint, String namespace, String label, EditManager editManager, FileManager fileManager) {
+ // set up some specifics
+ this.endpoint = endpoint;
+ this.namespace = namespace;
+ this.editManager = editManager;
+ this.fileManager = fileManager;
+ // set up the name, label and icon for this menu item
+ setName(label);
+ setText(label);
+ setIcon(new ImageIcon(BiomobyObjectActivityItem.class
+ .getResource("/biomoby_object.png")));
+ // enable the item
+ setEnabled(true);
+ // create an action listener to catch clicks
+ addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ if (e.getSource() instanceof DatatypeMenuItem) {
+ final DatatypeMenuItem item = (DatatypeMenuItem) e
+ .getSource();
+ // create a swing worker that creates our tree
+ SwingWorker worker = new SwingWorker() {
+ @Override
+ public Object construct() {
+ // create a progress bar ...
+ JProgressBar bar = new JProgressBar();
+ bar.setIndeterminate(true);
+ bar.setString("Creating datatype tree ...");
+ bar.setStringPainted(true);
+ // a dialog frame hold the bar
+ String title = "Datatype Tree Builder";
+ JDialog frame = new HelpEnabledDialog(MainWindow.getMainWindow(), title, false, null);
+ JLabel label = new JLabel(
+ "Constructing tree for:\n\t"
+ + item.getEndpoint());
+ JPanel panel = new JPanel();
+ panel.add(bar);
+ // the panel that holds the label and bar
+ JPanel panel1 = new JPanel();
+ panel1.setLayout(new BorderLayout());
+ panel1.add(panel, BorderLayout.NORTH);
+ panel1.add(label, BorderLayout.CENTER);
+ panel1.setBorder(BorderFactory.createEmptyBorder(
+ 20, 20, 20, 20));
+ frame.setContentPane(panel1);
+ frame.setResizable(false);
+ frame.pack();
+ frame.setVisible(true);
+ // do our task
+ getTreeForRegistry(item.getEndpoint(), item
+ .getNamespace());
+ // hide the progress bar ...
+ frame.setVisible(false);
+ frame.removeAll();
+ frame = null;
+ return null;
+ }
+ };
+ worker.start();
+ }
+ }
+ });
+ }
+
+ /**
+ * Set the registry namespace
+ *
+ * @param namespace
+ * the registry namespace that this menu item will use
+ */
+ public void setNamespace(String namespace) {
+ this.namespace = namespace;
+ }
+
+ /**
+ * Set the registry endpoint
+ *
+ * @param endpoint
+ * the registry endpoint that this menu item will use
+ */
+ public void setEndpoint(String endpoint) {
+ this.endpoint = endpoint;
+ }
+
+ /**
+ * Get the registry endpoint
+ *
+ * @return the registry endpoint that this menu item is using
+ */
+ public String getEndpoint() {
+ return endpoint;
+ }
+
+ /**
+ * Get the registry namespace
+ *
+ * @return the registry namespace that this menu item is using
+ */
+ public String getNamespace() {
+ return namespace;
+ }
+
+ /*
+ * Creates a tree for a given registry
+ */
+ private void getTreeForRegistry(String endpoint, String namespace) {
+ Frame f = MobyPanel.CreateFrame("Datatype Viewer for " + endpoint);
+ try {
+ Component c = new BiomobyObjectTree(endpoint, namespace, editManager, fileManager)
+ .getDatatypeTree();
+ f.add(c);
+ f.setPreferredSize(c.getPreferredSize());
+ f.setMinimumSize(c.getPreferredSize());
+ f.pack();
+ } catch (MobyException e) {
+ logger.error(
+ "Error encountered while constructing datatype viewer:\n",
+ e);
+ }
+ f.setVisible(true);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyActivityContextualView.java
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyActivityContextualView.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyActivityContextualView.java
new file mode 100644
index 0000000..4911721
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyActivityContextualView.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * This file is a component of the Taverna project, and is licensed under the
+ * GNU LGPL. Copyright Edward Kawas, The BioMoby Project
+ ******************************************************************************/
+package net.sf.taverna.t2.activities.biomoby.view;
+
+import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+import java.awt.Frame;
+import java.util.Map.Entry;
+
+import javax.swing.Action;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+
+import net.sf.taverna.t2.activities.biomoby.BiomobyActivity;
+import net.sf.taverna.t2.activities.biomoby.BiomobyActivityConfigurationBean;
+import net.sf.taverna.t2.activities.biomoby.actions.BiomobyActivityConfigurationAction;
+import net.sf.taverna.t2.activities.biomoby.actions.MobyParserAction;
+import net.sf.taverna.t2.activities.biomoby.actions.MobyServiceDetailsAction;
+import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager;
+import net.sf.taverna.t2.workbench.configuration.colour.ColourManager;
+import net.sf.taverna.t2.workbench.edits.EditManager;
+import net.sf.taverna.t2.workbench.file.FileManager;
+import net.sf.taverna.t2.workbench.ui.actions.activity.HTMLBasedActivityContextualView;
+import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
+
+@SuppressWarnings("serial")
+public class BiomobyActivityContextualView extends
+ HTMLBasedActivityContextualView<BiomobyActivityConfigurationBean> {
+
+ private EditManager editManager;
+ private final FileManager fileManager;
+ private final ActivityIconManager activityIconManager;
+
+ @Override
+ public Action getConfigureAction(Frame owner) {
+ BiomobyActivity activity = (BiomobyActivity) getActivity();
+ if (activity.getMobyService() != null && activity.containsSecondaries()) {
+ return new BiomobyActivityConfigurationAction((BiomobyActivity) getActivity(), owner,
+ editManager, fileManager, activityIconManager);
+ } else {
+ return null;
+ }
+ }
+
+ public BiomobyActivityContextualView(Activity<?> activity, EditManager editManager,
+ FileManager fileManager, ActivityIconManager activityIconManager,
+ ColourManager colourManager) {
+ super(activity, colourManager);
+ this.editManager = editManager;
+ this.editManager = editManager;
+ this.fileManager = fileManager;
+ this.activityIconManager = activityIconManager;
+ }
+
+ @Override
+ protected String getRawTableRowsHtml() {
+ String html = "<tr><td>Endpoint</td><td>" + getConfigBean().getMobyEndpoint()
+ + "</td></tr>";
+ html += "<tr><td>Authority</td><td>" + getConfigBean().getAuthorityName() + "</td></tr>";
+ html += "<tr><td>Service</td><td>" + getConfigBean().getServiceName() + "</td></tr>";
+ if (getConfigBean().getSecondaries().size() > 0) {
+ html += "<tr><th colspan='2' align='left'>Secondaries</th></tr>";
+ for (Entry<String, String> entry : getConfigBean().getSecondaries().entrySet()) {
+ html += "<tr><td>" + entry.getKey() + "</td><td>" + entry.getValue() + "</td></tr>";
+ }
+ }
+ return html;
+ }
+
+ @Override
+ public String getViewTitle() {
+ return "Biomoby service";
+ }
+
+ /**
+ * Gets the component from the {@link HTMLBasedActivityContextualView} and adds buttons to it
+ * allowing Moby service details
+ */
+ @Override
+ public JComponent getMainFrame() {
+ final JComponent mainFrame = super.getMainFrame();
+ JPanel flowPanel = new JPanel(new FlowLayout());
+
+ BiomobyActivity activity = (BiomobyActivity) getActivity();
+
+ JButton button = new JButton(new MobyServiceDetailsAction(activity, null, editManager,
+ fileManager));
+ flowPanel.add(button);
+ if (activity.getMobyService() != null) {
+ JButton button2 = new JButton(new MobyParserAction(activity, null, editManager,
+ fileManager));
+ flowPanel.add(button2);
+ }
+ mainFrame.add(flowPanel, BorderLayout.SOUTH);
+ return mainFrame;
+ }
+
+ @Override
+ public int getPreferredPosition() {
+ return 100;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyActivityContextualViewFactory.java
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyActivityContextualViewFactory.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyActivityContextualViewFactory.java
new file mode 100644
index 0000000..942e52c
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyActivityContextualViewFactory.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * This file is a component of the Taverna project, and is licensed under the
+ * GNU LGPL. Copyright Edward Kawas, The BioMoby Project
+ ******************************************************************************/
+package net.sf.taverna.t2.activities.biomoby.view;
+
+import java.util.Arrays;
+import java.util.List;
+
+import net.sf.taverna.t2.activities.biomoby.BiomobyActivity;
+import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager;
+import net.sf.taverna.t2.workbench.configuration.colour.ColourManager;
+import net.sf.taverna.t2.workbench.edits.EditManager;
+import net.sf.taverna.t2.workbench.file.FileManager;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
+
+public class BiomobyActivityContextualViewFactory implements ContextualViewFactory<BiomobyActivity> {
+
+ private EditManager editManager;
+ private FileManager fileManager;
+ private ActivityIconManager activityIconManager;
+ private ColourManager colourManager;
+
+ public boolean canHandle(Object activity) {
+ return activity instanceof BiomobyActivity;
+ }
+
+ public List<ContextualView> getViews(BiomobyActivity activity) {
+ return Arrays.asList(new ContextualView[] { new BiomobyActivityContextualView(activity,
+ editManager, fileManager, activityIconManager, colourManager) });
+ }
+
+ 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 setColourManager(ColourManager colourManager) {
+ this.colourManager = colourManager;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyConfigView.java
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyConfigView.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyConfigView.java
new file mode 100644
index 0000000..0e08e0b
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyConfigView.java
@@ -0,0 +1,108 @@
+/**
+ *
+ */
+package net.sf.taverna.t2.activities.biomoby.view;
+
+import java.awt.BorderLayout;
+import java.util.Map;
+
+import javax.swing.JComponent;
+
+import net.sf.taverna.t2.activities.biomoby.BiomobyActivity;
+import net.sf.taverna.t2.activities.biomoby.BiomobyActivityConfigurationBean;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationPanel;
+
+import org.apache.log4j.Logger;
+import org.biomoby.service.dashboard.data.ParametersTable;
+
+/**
+ * @author alanrw
+ *
+ */
+public class BiomobyConfigView extends ActivityConfigurationPanel<BiomobyActivity, BiomobyActivityConfigurationBean> {
+
+ private BiomobyActivity activity;
+ private BiomobyActivityConfigurationBean configuration;
+ private boolean changed = false;
+
+ private static Logger logger = Logger
+ .getLogger(BiomobyConfigView.class);
+ private ParametersTable parameterTable;
+
+ public BiomobyConfigView(BiomobyActivity activity) {
+ this.activity = activity;
+ initialise();
+ }
+
+ private void initialise() {
+ configuration = activity.getConfiguration();
+ this.setLayout(new BorderLayout());
+ parameterTable = activity.getParameterTable();
+ JComponent component = parameterTable.scrollable();
+ this.add(component, BorderLayout.NORTH);
+ validate();
+ }
+
+ /* (non-Javadoc)
+ * @see net.sf.taverna.t2.workbench.ui.views.contextualviews.ActivityConfigurationPanel#getConfiguration()
+ */
+ @Override
+ public BiomobyActivityConfigurationBean getConfiguration() {
+ return configuration;
+ }
+
+ /* (non-Javadoc)
+ * @see net.sf.taverna.t2.workbench.ui.views.contextualviews.ActivityConfigurationPanel#isConfigurationChanged()
+ */
+ @Override
+ public boolean isConfigurationChanged() {
+ Map<String,String> secondaries = configuration.getSecondaries();
+ int rows = parameterTable.getModel().getRowCount();
+ for (int i = 0; i < rows; i++) {
+ String key = (String)parameterTable.getModel().getValueAt(i,0);
+ String newValue = parameterTable.getModel().getValueAt(i,1).toString();
+ String currentValue = secondaries.get(key);
+ if (!currentValue.equals(newValue)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see net.sf.taverna.t2.workbench.ui.views.contextualviews.ActivityConfigurationPanel#noteConfiguration()
+ */
+ @Override
+ public void noteConfiguration() {
+ BiomobyActivityConfigurationBean newConfiguration =
+ (BiomobyActivityConfigurationBean) cloneBean(configuration);
+ Map<String,String> secondaries = newConfiguration.getSecondaries();
+ int rows = parameterTable.getModel().getRowCount();
+ for (int i = 0; i < rows; i++) {
+ String key = (String)parameterTable.getModel().getValueAt(i,0);
+ String value = parameterTable.getModel().getValueAt(i,1).toString();
+ secondaries.put(key, value);
+ }
+// logger.info(convertBeanToString(configuration));
+// logger.info("COnfiguration was " + configuration.hashCode());
+// logger.info(convertBeanToString(newConfiguration));
+// logger.info("New configuration is " + newConfiguration.hashCode());
+ configuration = newConfiguration;
+ }
+
+ @Override
+ public void refreshConfiguration() {
+ logger.info(convertBeanToString(activity.getConfiguration()));
+ removeAll();
+ initialise();
+ }
+
+ @Override
+ public boolean checkValues() {
+ // TODO Not yet implemented
+ return true;
+ }
+
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyObjectActivityContextualView.java
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyObjectActivityContextualView.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyObjectActivityContextualView.java
new file mode 100644
index 0000000..4ceed9b
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyObjectActivityContextualView.java
@@ -0,0 +1,95 @@
+/**
+ * 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
+ * USA.
+ *
+ */
+package net.sf.taverna.t2.activities.biomoby.view;
+
+import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+
+import net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivity;
+import net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivityConfigurationBean;
+import net.sf.taverna.t2.activities.biomoby.actions.MobyObjectDetailsAction;
+import net.sf.taverna.t2.workbench.configuration.colour.ColourManager;
+import net.sf.taverna.t2.workbench.edits.EditManager;
+import net.sf.taverna.t2.workbench.file.FileManager;
+import net.sf.taverna.t2.workbench.ui.actions.activity.HTMLBasedActivityContextualView;
+import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
+
+/**
+ * @author Stuart Owen
+ *
+ */
+@SuppressWarnings("serial")
+public class BiomobyObjectActivityContextualView extends
+ HTMLBasedActivityContextualView<BiomobyObjectActivityConfigurationBean> {
+
+ private EditManager editManager;
+ private final FileManager fileManager;
+
+ public BiomobyObjectActivityContextualView(Activity<?> activity, EditManager editManager,
+ FileManager fileManager, ColourManager colourManager) {
+ super(activity, colourManager);
+ this.editManager = editManager;
+ this.fileManager = fileManager;
+ }
+
+ @Override
+ protected String getRawTableRowsHtml() {
+ String html = "<tr><td>Endpoint</td><td>" + getConfigBean().getMobyEndpoint()
+ + "</td></tr>";
+ html += "<tr><td>Authority</td><td>" + getConfigBean().getAuthorityName() + "</td></tr>";
+ html += "<tr><td>Datatype</td><td>" + getConfigBean().getServiceName() + "</td></tr>";
+ return html;
+ }
+
+ @Override
+ public String getViewTitle() {
+ return "Biomoby Object service";
+ }
+
+ /**
+ * Gets the component from the {@link HTMLBasedActivityContextualView} and adds buttons to it
+ * allowing Moby object details
+ */
+ @Override
+ public JComponent getMainFrame() {
+ final JComponent mainFrame = super.getMainFrame();
+ BiomobyObjectActivity activity = (BiomobyObjectActivity) getActivity();
+ if (activity.getMobyObject() != null) {
+ JPanel flowPanel = new JPanel(new FlowLayout());
+ JButton button = new JButton(new MobyObjectDetailsAction(activity, null, editManager,
+ fileManager));
+ flowPanel.add(button);
+ mainFrame.add(flowPanel, BorderLayout.SOUTH);
+ }
+ return mainFrame;
+ }
+
+ @Override
+ public int getPreferredPosition() {
+ return 100;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyObjectActivityContextualViewFactory.java
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyObjectActivityContextualViewFactory.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyObjectActivityContextualViewFactory.java
new file mode 100644
index 0000000..0e6ea55
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyObjectActivityContextualViewFactory.java
@@ -0,0 +1,67 @@
+/**
+ * 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
+ * USA.
+ *
+ */
+package net.sf.taverna.t2.activities.biomoby.view;
+
+import java.util.Arrays;
+import java.util.List;
+
+import net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivity;
+import net.sf.taverna.t2.workbench.configuration.colour.ColourManager;
+import net.sf.taverna.t2.workbench.edits.EditManager;
+import net.sf.taverna.t2.workbench.file.FileManager;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
+
+/**
+ * @author Stuart Owen
+ *
+ */
+public class BiomobyObjectActivityContextualViewFactory implements
+ ContextualViewFactory<BiomobyObjectActivity> {
+
+ private EditManager editManager;
+ private FileManager fileManager;
+ private ColourManager colourManager;
+
+ public boolean canHandle(Object activity) {
+ return activity instanceof BiomobyObjectActivity;
+ }
+
+ public List<ContextualView> getViews(BiomobyObjectActivity activity) {
+ return Arrays.asList(new ContextualView[] { new BiomobyObjectActivityContextualView(
+ activity, editManager, fileManager, colourManager) });
+ }
+
+ public void setEditManager(EditManager editManager) {
+ this.editManager = editManager;
+ }
+
+ public void setFileManager(FileManager fileManager) {
+ this.fileManager = fileManager;
+ }
+
+ public void setColourManager(ColourManager colourManager) {
+ this.colourManager = colourManager;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/MobyParseDatatypeContextualView.java
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/MobyParseDatatypeContextualView.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/MobyParseDatatypeContextualView.java
new file mode 100644
index 0000000..91d4cd6
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/MobyParseDatatypeContextualView.java
@@ -0,0 +1,62 @@
+/**
+ * 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
+ * USA.
+ *
+ */
+package net.sf.taverna.t2.activities.biomoby.view;
+
+import net.sf.taverna.t2.activities.biomoby.MobyParseDatatypeActivityConfigurationBean;
+import net.sf.taverna.t2.workbench.configuration.colour.ColourManager;
+import net.sf.taverna.t2.workbench.ui.actions.activity.HTMLBasedActivityContextualView;
+import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
+
+/**
+ * @author Stuart Owen
+ *
+ */
+@SuppressWarnings("serial")
+public class MobyParseDatatypeContextualView extends
+ HTMLBasedActivityContextualView<MobyParseDatatypeActivityConfigurationBean> {
+
+ public MobyParseDatatypeContextualView(Activity<?> activity, ColourManager colourManager) {
+ super(activity, colourManager);
+ }
+
+ @Override
+ protected String getRawTableRowsHtml() {
+ String html = "<tr><td>Article name used by service</td><td>"
+ + getConfigBean().getArticleNameUsedByService() + "</td></tr>";
+ html += "<tr><td>Datatype</td><td>" + getConfigBean().getDatatypeName() + "</td></tr>";
+ html += "<tr><td>Registry endpoint</td><td>" + getConfigBean().getRegistryEndpoint()
+ + "</td></tr>";
+ return html;
+ }
+
+ @Override
+ public String getViewTitle() {
+ return "Moby parse datatype service";
+ }
+
+ @Override
+ public int getPreferredPosition() {
+ return 100;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/MobyParseDatatypeContextualViewFactory.java
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/MobyParseDatatypeContextualViewFactory.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/MobyParseDatatypeContextualViewFactory.java
new file mode 100644
index 0000000..5179642
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/view/MobyParseDatatypeContextualViewFactory.java
@@ -0,0 +1,69 @@
+/**
+ * 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
+ * USA.
+ *
+ */
+package net.sf.taverna.t2.activities.biomoby.view;
+
+import java.util.Arrays;
+import java.util.List;
+
+import net.sf.taverna.t2.activities.biomoby.MobyParseDatatypeActivity;
+import net.sf.taverna.t2.workbench.configuration.colour.ColourManager;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
+
+/**
+ * @author Stuart Owen
+ *
+ */
+public class MobyParseDatatypeContextualViewFactory implements
+ ContextualViewFactory<MobyParseDatatypeActivity> {
+
+ private ColourManager colourManager;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory#canHandle
+ * (java.lang.Object)
+ */
+ public boolean canHandle(Object activity) {
+ return activity instanceof MobyParseDatatypeActivity;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory#getView
+ * (java.lang.Object)
+ */
+ public List<ContextualView> getViews(MobyParseDatatypeActivity activity) {
+ return Arrays.asList(new ContextualView[] { new MobyParseDatatypeContextualView(activity,
+ colourManager) });
+ }
+
+ public void setColourManager(ColourManager colourManager) {
+ this.colourManager = colourManager;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/Add24.gif
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/Add24.gif b/taverna-biomoby-activity-ui/src/main/resources/Add24.gif
new file mode 100644
index 0000000..fecc7a8
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/Add24.gif differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/Cut24.gif
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/Cut24.gif b/taverna-biomoby-activity-ui/src/main/resources/Cut24.gif
new file mode 100644
index 0000000..5c37d3a
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/Cut24.gif differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/Information24.gif
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/Information24.gif b/taverna-biomoby-activity-ui/src/main/resources/Information24.gif
new file mode 100644
index 0000000..16cb3de
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/Information24.gif differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.partition.PartitionAlgorithmSetSPI
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.partition.PartitionAlgorithmSetSPI b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.partition.PartitionAlgorithmSetSPI
new file mode 100644
index 0000000..926b5e3
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.partition.PartitionAlgorithmSetSPI
@@ -0,0 +1 @@
+net.sf.taverna.t2.activities.biomoby.partition.BiomobyPartitionAlgorithmSetSPI
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.partition.PropertyExtractorSPI
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.partition.PropertyExtractorSPI b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.partition.PropertyExtractorSPI
new file mode 100644
index 0000000..afaed0e
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.partition.PropertyExtractorSPI
@@ -0,0 +1 @@
+net.sf.taverna.t2.activities.biomoby.partition.BiomobyPropertyExtractor
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.partition.QueryFactory
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.partition.QueryFactory b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.partition.QueryFactory
new file mode 100644
index 0000000..12241b2
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.partition.QueryFactory
@@ -0,0 +1 @@
+net.sf.taverna.t2.activities.biomoby.query.BiomobyQueryFactory
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
new file mode 100644
index 0000000..604022f
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
@@ -0,0 +1 @@
+net.sf.taverna.t2.activities.biomoby.servicedescriptions.BiomobyServiceProvider
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
new file mode 100644
index 0000000..312b88c
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
@@ -0,0 +1,5 @@
+net.sf.taverna.t2.activities.biomoby.menu.BiomobyActivityDetailsMenuAction
+net.sf.taverna.t2.activities.biomoby.menu.BiomobyActivityParserMenuAction
+#net.sf.taverna.t2.activities.biomoby.actions.BiomobyAdvancedMenuAction
+net.sf.taverna.t2.activities.biomoby.menu.ConfigureBiomobyMenuAction
+
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
new file mode 100644
index 0000000..cca5a06
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
@@ -0,0 +1,2 @@
+net.sf.taverna.t2.activities.biomoby.query.BiomobyActivityIcon
+net.sf.taverna.t2.activities.biomoby.query.BiomobyObjectActivityIcon
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
new file mode 100644
index 0000000..43017c3
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
@@ -0,0 +1,3 @@
+net.sf.taverna.t2.activities.biomoby.view.BiomobyActivityContextualViewFactory
+net.sf.taverna.t2.activities.biomoby.view.BiomobyObjectActivityContextualViewFactory
+net.sf.taverna.t2.activities.biomoby.view.MobyParseDatatypeContextualViewFactory
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/META-INF/spring/biomoby-activity-ui-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/META-INF/spring/biomoby-activity-ui-context-osgi.xml b/taverna-biomoby-activity-ui/src/main/resources/META-INF/spring/biomoby-activity-ui-context-osgi.xml
new file mode 100644
index 0000000..c67a55b
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/resources/META-INF/spring/biomoby-activity-ui-context-osgi.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns="http://www.springframework.org/schema/osgi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:beans="http://www.springframework.org/schema/beans"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/osgi
+ http://www.springframework.org/schema/osgi/spring-osgi.xsd">
+
+ <service ref="BiomobyActivityIcon" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI" />
+ <service ref="BiomobyObjectActivityIcon" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI" />
+
+ <service ref="BiomobyServiceProvider" interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider" />
+
+ <service ref="BiomobyActivityDetailsMenuAction" auto-export="interfaces" />
+ <service ref="BiomobyActivityParserMenuAction" auto-export="interfaces" />
+ <service ref="ConfigureBiomobyMenuAction" auto-export="interfaces" />
+
+ <service ref="BiomobyActivityContextualViewFactory" interface="net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory" />
+ <service ref="BiomobyObjectActivityContextualViewFactory" interface="net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory" />
+ <service ref="MobyParseDatatypeContextualViewFactory" interface="net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory" />
+
+ <reference id="editManager" interface="net.sf.taverna.t2.workbench.edits.EditManager" />
+ <reference id="fileManager" interface="net.sf.taverna.t2.workbench.file.FileManager" />
+ <reference id="activityIconManager" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconManager" />
+ <reference id="colourManager" interface="net.sf.taverna.t2.workbench.configuration.colour.ColourManager" />
+ <reference id="serviceDescriptionRegistry" interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry" />
+
+</beans:beans>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/META-INF/spring/biomoby-activity-ui-context.xml
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/META-INF/spring/biomoby-activity-ui-context.xml b/taverna-biomoby-activity-ui/src/main/resources/META-INF/spring/biomoby-activity-ui-context.xml
new file mode 100644
index 0000000..87c832a
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/main/resources/META-INF/spring/biomoby-activity-ui-context.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+ <bean id="BiomobyActivityIcon" class="net.sf.taverna.t2.activities.biomoby.query.BiomobyActivityIcon" />
+ <bean id="BiomobyObjectActivityIcon" class="net.sf.taverna.t2.activities.biomoby.query.BiomobyObjectActivityIcon" />
+
+ <bean id="BiomobyServiceProvider" class="net.sf.taverna.t2.activities.biomoby.servicedescriptions.BiomobyServiceProvider">
+ <property name="serviceDescriptionRegistry" ref="serviceDescriptionRegistry" />
+ </bean>
+
+ <bean id="BiomobyActivityDetailsMenuAction" class="net.sf.taverna.t2.activities.biomoby.menu.BiomobyActivityDetailsMenuAction">
+ <property name="editManager" ref="editManager" />
+ <property name="fileManager" ref="fileManager" />
+ </bean>
+ <bean id="BiomobyActivityParserMenuAction" class="net.sf.taverna.t2.activities.biomoby.menu.BiomobyActivityParserMenuAction">
+ <property name="editManager" ref="editManager" />
+ <property name="fileManager" ref="fileManager" />
+ </bean>
+ <bean id="ConfigureBiomobyMenuAction" class="net.sf.taverna.t2.activities.biomoby.menu.ConfigureBiomobyMenuAction">
+ <property name="editManager" ref="editManager" />
+ <property name="fileManager" ref="fileManager" />
+ <property name="activityIconManager" ref="activityIconManager" />
+ </bean>
+
+ <bean id="BiomobyActivityContextualViewFactory" class="net.sf.taverna.t2.activities.biomoby.view.BiomobyActivityContextualViewFactory">
+ <property name="editManager" ref="editManager" />
+ <property name="fileManager" ref="fileManager" />
+ <property name="activityIconManager" ref="activityIconManager" />
+ <property name="colourManager" ref="colourManager" />
+ </bean>
+ <bean id="BiomobyObjectActivityContextualViewFactory" class="net.sf.taverna.t2.activities.biomoby.view.BiomobyObjectActivityContextualViewFactory">
+ <property name="editManager" ref="editManager" />
+ <property name="fileManager" ref="fileManager" />
+ <property name="colourManager" ref="colourManager" />
+ </bean>
+ <bean id="MobyParseDatatypeContextualViewFactory" class="net.sf.taverna.t2.activities.biomoby.view.MobyParseDatatypeContextualViewFactory">
+ <property name="colourManager" ref="colourManager" />
+ </bean>
+
+</beans>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/Search24.gif
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/Search24.gif b/taverna-biomoby-activity-ui/src/main/resources/Search24.gif
new file mode 100644
index 0000000..24fc7c1
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/Search24.gif differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/authority.png
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/authority.png b/taverna-biomoby-activity-ui/src/main/resources/authority.png
new file mode 100644
index 0000000..33e239a
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/authority.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/biomoby_object.png
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/biomoby_object.png b/taverna-biomoby-activity-ui/src/main/resources/biomoby_object.png
new file mode 100644
index 0000000..73175f8
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/biomoby_object.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/collection.png
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/collection.png b/taverna-biomoby-activity-ui/src/main/resources/collection.png
new file mode 100644
index 0000000..feab424
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/collection.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/input.png
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/input.png b/taverna-biomoby-activity-ui/src/main/resources/input.png
new file mode 100644
index 0000000..d162a72
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/input.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/moby.png
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/moby.png b/taverna-biomoby-activity-ui/src/main/resources/moby.png
new file mode 100644
index 0000000..73175f8
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/moby.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/moby_small.gif
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/moby_small.gif b/taverna-biomoby-activity-ui/src/main/resources/moby_small.gif
new file mode 100644
index 0000000..0fd0366
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/moby_small.gif differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/output.png
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/output.png b/taverna-biomoby-activity-ui/src/main/resources/output.png
new file mode 100644
index 0000000..bd9cc94
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/output.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/parse.png
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/parse.png b/taverna-biomoby-activity-ui/src/main/resources/parse.png
new file mode 100644
index 0000000..49e2828
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/parse.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/registry.gif
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/registry.gif b/taverna-biomoby-activity-ui/src/main/resources/registry.gif
new file mode 100644
index 0000000..404b126
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/registry.gif differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/main/resources/service.png
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/main/resources/service.png b/taverna-biomoby-activity-ui/src/main/resources/service.png
new file mode 100644
index 0000000..912efb2
Binary files /dev/null and b/taverna-biomoby-activity-ui/src/main/resources/service.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity-ui/src/test/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyContextualViewFactoryTest.java
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity-ui/src/test/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyContextualViewFactoryTest.java b/taverna-biomoby-activity-ui/src/test/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyContextualViewFactoryTest.java
new file mode 100644
index 0000000..a9c51c6
--- /dev/null
+++ b/taverna-biomoby-activity-ui/src/test/java/net/sf/taverna/t2/activities/biomoby/view/BiomobyContextualViewFactoryTest.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * This file is a component of the Taverna project, and is licensed under the
+ * GNU LGPL. Copyright Edward Kawas, The BioMoby Project
+ ******************************************************************************/
+package net.sf.taverna.t2.activities.biomoby.view;
+
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
+import net.sf.taverna.t2.activities.biomoby.BiomobyActivity;
+import net.sf.taverna.t2.activities.biomoby.BiomobyActivityConfigurationBean;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactoryRegistry;
+import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class BiomobyContextualViewFactoryTest {
+ BiomobyActivity activity;
+ @Before
+ public void setup() throws ActivityConfigurationException {
+ activity=new BiomobyActivity() { //need to prevent the activity trying to configure itself, but store a copy of the config bean
+
+ @Override
+ public void configure(
+ BiomobyActivityConfigurationBean configurationBean)
+ throws ActivityConfigurationException {
+ this.configurationBean=configurationBean;
+ }
+
+ };
+ BiomobyActivityConfigurationBean b = new BiomobyActivityConfigurationBean();
+ b.setAuthorityName("a");
+ b.setMobyEndpoint("e");
+ b.setServiceName("s");
+ activity.configure(b);
+ }
+
+ @Test
+ public void testGetConfigureAction() throws Exception {
+ ContextualView view = new BiomobyActivityContextualView(activity, null, null, null, null);
+ //will be null because its not a valid activity so therefore has no secondaries
+ assertNull("The action should be null",view.getConfigureAction(null));
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomoby-activity/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-biomoby-activity/pom.xml b/taverna-biomoby-activity/pom.xml
new file mode 100644
index 0000000..21f220e
--- /dev/null
+++ b/taverna-biomoby-activity/pom.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>net.sf.taverna</groupId>
+ <artifactId>taverna-parent</artifactId>
+ <version>3.0.1-SNAPSHOT</version>
+ </parent>
+ <groupId>net.sf.taverna.t2.activities</groupId>
+ <artifactId>biomoby-activity</artifactId>
+ <version>2.0.1-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+ <name>Taverna 2 Biomoby Activity</name>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <instructions>
+ <Embed-Transitive>true</Embed-Transitive>
+ <Embed-Dependency>jmoby;jmoby-dashboard</Embed-Dependency>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>net.sf.taverna.t2.core</groupId>
+ <artifactId>workflowmodel-api</artifactId>
+ <version>${t2.core.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.taverna.t2.core</groupId>
+ <artifactId>reference-api</artifactId>
+ <version>${t2.core.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.biomoby</groupId>
+ <artifactId>jmoby</artifactId>
+ <version>${jmoby.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.biomoby</groupId>
+ <artifactId>taverna-for-moby</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xerces</groupId>
+ <artifactId>xmlParserAPIs</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.xml.ws</groupId>
+ <artifactId>jaxws-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.xml.soap</groupId>
+ <artifactId>saaj-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.biomoby</groupId>
+ <artifactId>jmoby-dashboard</artifactId>
+ <version>${jmoby.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jdom</groupId>
+ <artifactId>com.springsource.org.jdom</artifactId>
+ <version>${jdom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>com.springsource.org.apache.commons.httpclient</artifactId>
+ <version>${commons.httpclient.version}</version>
+ </dependency>
+ <!--<dependency> <groupId>org.apache.xmlcommons</groupId> <artifactId>com.springsource.org.apache.xmlcommons</artifactId>
+ <version>1.3.4</version> </dependency> -->
+ <!--<dependency> <groupId>javax.xml.ws</groupId> <artifactId>jaxws-api</artifactId>
+ <version>2.1</version> </dependency> -->
+ <!--<dependency> <groupId>com.sun.org.apache</groupId> <artifactId>jaxp-ri</artifactId>
+ <version>1.4</version> </dependency> -->
+ <dependency>
+ <groupId>org.apache.log4j</groupId>
+ <artifactId>com.springsource.org.apache.log4j</artifactId>
+ <version>${log4j.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.taverna.t2.activities</groupId>
+ <artifactId>activity-test-utils</artifactId>
+ <version>${t2.activities.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <repositories>
+ <repository>
+ <releases />
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <id>mygrid-repository</id>
+ <name>myGrid Repository</name>
+ <url>http://www.mygrid.org.uk/maven/repository</url>
+ </repository>
+ <repository>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots />
+ <id>mygrid-snapshot-repository</id>
+ <name>myGrid Snapshot Repository</name>
+ <url>http://www.mygrid.org.uk/maven/snapshot-repository</url>
+ </repository>
+ </repositories>
+ <scm>
+ <connection>scm:git:https://github.com/taverna/taverna-biomoby-activity.git</connection>
+ <developerConnection>scm:git:ssh://git@github.com/taverna/taverna-biomoby-activity.git</developerConnection>
+ <url>https://github.com/taverna/taverna-biomoby-activity/</url>
+ <tag>HEAD</tag>
+ </scm>
+
+</project>