http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/BiomobyObjectActionHelper.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/BiomobyObjectActionHelper.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/BiomobyObjectActionHelper.java deleted file mode 100644 index 9ff9d67..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/BiomobyObjectActionHelper.java +++ /dev/null @@ -1,787 +0,0 @@ -/* - * 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.actions; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.Frame; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeMap; -import java.util.TreeSet; -import java.util.Vector; - -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JMenuItem; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JPopupMenu; -import javax.swing.JProgressBar; -import javax.swing.JScrollPane; -import javax.swing.JSeparator; -import javax.swing.JTree; -import javax.swing.ToolTipManager; -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.MutableTreeNode; -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.edits.AddBiomobyConsumingServiceEdit; -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.file.FileManager; -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.OutputPort; - -import org.apache.log4j.Logger; -import org.biomoby.client.CentralImpl; -import org.biomoby.registry.meta.Registry; -import org.biomoby.shared.Central; -import org.biomoby.shared.MobyData; -import org.biomoby.shared.MobyDataType; -import org.biomoby.shared.MobyException; -import org.biomoby.shared.MobyNamespace; -import org.biomoby.shared.MobyPrimaryDataSet; -import org.biomoby.shared.MobyPrimaryDataSimple; -import org.biomoby.shared.MobyService; -import org.biomoby.shared.data.MobyDataInstance; -import org.biomoby.shared.data.MobyDataObject; -import org.biomoby.shared.data.MobyDataObjectSet; - -public class BiomobyObjectActionHelper { - - private static Logger logger = Logger - .getLogger(BiomobyObjectActionHelper.class); - - private boolean searchParentTypes = false; - - private OutputPort outputPort = null; - - private MobyNamespace[] namespaces = null; - - private EditManager editManager; - - private final FileManager fileManager; - - public BiomobyObjectActionHelper(boolean searchParentTypes, EditManager editManager, FileManager fileManager) { - super(); - this.searchParentTypes = searchParentTypes; - this.editManager = editManager; - this.fileManager = fileManager; - } - - public BiomobyObjectActionHelper(OutputPort outputPort, boolean searchParentTypes, EditManager editManager, FileManager fileManager) { - super(); - this.searchParentTypes = searchParentTypes; - this.outputPort = outputPort; - this.editManager = editManager; - this.fileManager = fileManager; - } - - public BiomobyObjectActionHelper(EditManager editManager, FileManager fileManager) { - super(); - this.editManager = editManager; - this.fileManager = fileManager; - } - - private class Worker extends Thread { - private BiomobyObjectActivity activity; - - private BiomobyObjectActionHelper action; - - private JPanel panel = new JPanel(new BorderLayout()); - - private JPanel namespacePanel = new JPanel(new BorderLayout()); - - private JProgressBar bar = new JProgressBar(); - - private JTree namespaceList = null; - - public Worker(BiomobyObjectActivity activity, BiomobyObjectActionHelper object) { - super("Biomoby object action worker"); - this.activity = activity; - this.action = object; - } - - /* - * method to show the progress bar - */ - private void setUpProgressBar(String text) { - bar = new JProgressBar(); - bar.setIndeterminate(true); - bar.setValue(0); - bar.setStringPainted(true); - bar.setVisible(true); - bar.setString(text); - if (panel != null){ - panel.add(bar, BorderLayout.PAGE_END); - panel.updateUI(); - } - } - - private void takeDownProgressBar() { - if (panel != null) { - panel.remove(bar); - panel.updateUI(); - } - - } - - public JPanel getPanel() { - return this.panel; - } - - public void run() { - Central central = activity.getCentral(); - // ask if we should restrict query by namespace - // only do this if we dont have an output port - if (action.outputPort == null) { - if (JOptionPane.YES_OPTION == - JOptionPane.showConfirmDialog(null, "Would you like to restrict your search by based upon a namespace?\n" + - "This can allow you to find only those services that operate on a specific kind of data.", - "Restrict query space", JOptionPane.YES_NO_OPTION)) { - // create a JList chooser with a done button here - setUpProgressBar("Getting namespaces list"); - try { - namespacePanel = new JPanel(new BorderLayout()); - createNamespaceList(central.getFullNamespaces()); - JButton button = new JButton("Done"); - button.addActionListener(new ActionListener(){ - @SuppressWarnings("unchecked") - public void actionPerformed( - ActionEvent e) { - ArrayList<MobyNamespace> chosen = new ArrayList<MobyNamespace>(); - TreePath[] paths = namespaceList.getSelectionPaths(); - for (TreePath p : paths) { - if (p.getLastPathComponent() instanceof DefaultMutableTreeNode) { - DefaultMutableTreeNode node = (DefaultMutableTreeNode)p.getLastPathComponent(); - if (node.isRoot()) { - chosen = new ArrayList<MobyNamespace>(); - break; - } - if (!node.isLeaf()) { - // get the children and add them to chosen - Enumeration<DefaultMutableTreeNode> children = node.children(); - while (children.hasMoreElements() ) - chosen.add(new MobyNamespace(children.nextElement().toString())); - } else { - // is a leaf ... add to chosen - chosen.add(new MobyNamespace(node.toString())); - } - } - } - // set the namespaces that were selected - setNamespaces(chosen.toArray(new MobyNamespace[]{})); - // get the tree - in a new thread - Thread t = new Thread(){ - public void run() { - namespacePanel.setVisible(false); - setUpProgressBar("Getting BioMOBY details for " + activity.getConfiguration().getServiceName() + " ..."); - getSemanticServiceTree(); - }}; - t.setDaemon(true); - t.start(); - - }}); - // add the list and button to the panel - namespacePanel.add(new JScrollPane(namespaceList), BorderLayout.CENTER); - namespacePanel.add(button, BorderLayout.PAGE_END); - panel.add(namespacePanel, BorderLayout.CENTER); - panel.updateUI(); - } catch (MobyException e) { - logger.error("", e); - takeDownProgressBar(); - } - takeDownProgressBar(); - // once done is pressed, insert selected namespace into the namespaces array - // show the progress bar - - } else { - // start our search - setNamespaces(null); - setUpProgressBar("Getting BioMOBY details for " + activity.getConfiguration().getServiceName() + " ..."); - getSemanticServiceTree(); - } - } else { - // search only for those services that consume the correct namespaces - if (this.action != null && this.action.getNamespaces() != null) { - setNamespaces(this.action.getNamespaces()); - } else { - setNamespaces(null); - } - setUpProgressBar("Getting BioMOBY details for " + activity.getConfiguration().getServiceName() + " ..."); - // start our search - getSemanticServiceTree(); - } - - - } - - /** - * @param central - */ - private void getSemanticServiceTree() { - Central central = activity.getCentral(); - MobyDataType object = activity.getMobyObject(); - MobyService template = new MobyService("dummy"); - - // strip the lsid portion of the name - String name = object.getName(); - if (name.indexOf(":") > 0) { - name = name.substring(name.lastIndexOf(":") + 1); - } - // initialize a data object to pass into the service template - Registry mRegistry = new Registry(central.getRegistryEndpoint(),central.getRegistryEndpoint(),"http://domain.com/MOBY/Central"); - MobyDataObject data = new MobyDataObject("", mRegistry); - data.setDataType(new MobyDataType(name)); - data.setXmlMode(MobyDataInstance.CENTRAL_XML_MODE); - if (action.namespaces != null) - data.setNamespaces(action.namespaces); - // create the nodes for the tree - MutableTreeNode parent = new DefaultMutableTreeNode(name); - MutableTreeNode inputNode = new DefaultMutableTreeNode("Feeds into"); - MutableTreeNode outputNode = new DefaultMutableTreeNode("Produced by"); - - // what services does this object feed into? - template.setInputs(new MobyData[] { data }); - template.setCategory(""); - MobyService[] services = null; - Set<MobyService> theServices = new TreeSet<MobyService>(); - try { - services = central.findService(template, null, true, action.searchParentTypes); - - theServices.addAll(Arrays.asList(services)); - MobyDataObjectSet set = new MobyDataObjectSet(""); - set.add(data); - template.setInputs(null); - template.setInputs(new MobyData[]{set}); - services = central.findService(template, null, true, action.searchParentTypes); - theServices.addAll(Arrays.asList(services)); - } catch (MobyException e) { - panel.add(new JTree(new String[] { "Error finding services", - "TODO: create a better Error" }), BorderLayout.CENTER); - panel.updateUI(); - return; - } - createTreeNodes(inputNode, theServices.toArray(new MobyService[]{})); - if (inputNode.getChildCount() == 0) - inputNode.insert(new DefaultMutableTreeNode( - "Object Doesn't Currently Feed Into Any Services"), 0); - - // what services return this object? - template = null; - template = new MobyService("dummy"); - template.setCategory(""); - template.setOutputs(new MobyData[] { data }); - services = null; - theServices = new TreeSet<MobyService>(); - try { - services = central.findService(template, null, true, action.searchParentTypes); - theServices.addAll(Arrays.asList(services)); - MobyDataObjectSet set = new MobyDataObjectSet(""); - set.add(data); - template.setOutputs(null); - template.setOutputs(new MobyData[]{set}); - services = central.findService(template, null, true, action.searchParentTypes); - theServices.addAll(Arrays.asList(services)); - } catch (MobyException e) { - panel.add(new JTree(new String[] { "Error finding services", - "TODO: create a better Error" }), BorderLayout.CENTER); - panel.updateUI(); - return; - } - createTreeNodes(outputNode, theServices.toArray(new MobyService[]{})); - if (outputNode.getChildCount() == 0) - outputNode.insert(new DefaultMutableTreeNode( - "Object Isn't Produced By Any Services"), 0); - // what kind of object is this? - - // set up the nodes - parent.insert(inputNode, 0); - parent.insert(outputNode, 1); - - // finally return a tree describing the object - final JTree tree = new JTree(parent); - tree.setCellRenderer(new BioMobyObjectTreeCustomRenderer()); - ToolTipManager.sharedInstance().registerComponent(tree); - tree.addMouseListener(new 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; - if (path.getPathCount() == 4) { - if (path.getParentPath().getParentPath().getLastPathComponent() - .toString().equals("Feeds into")) { - - DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree - .getLastSelectedPathComponent(); - if (node == null) - return; - final String selectedService = node.toString(); - // ensure that the last selected item is a - // service! - if (!selectedService.equals(path.getLastPathComponent().toString())) - return; - final String selectedAuthority = path.getParentPath() - .getLastPathComponent().toString(); - final JPopupMenu menu = new JPopupMenu(); - // Create and add a menu item for adding to the - // item - // to the workflow - JMenuItem item = new JMenuItem("Add service - " + selectedService - + " to the workflow?"); - item - .setIcon(MobyPanel.getIcon("/Add24.gif")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent ae) { - - try { - if (outputPort==null) { - outputPort = activity.getOutputPorts().iterator().next(); - } - Dataflow currentDataflow = fileManager.getCurrentDataflow(); - Edit<?> edit = new AddBiomobyConsumingServiceEdit( - currentDataflow, activity, - selectedService,selectedAuthority,outputPort, editManager.getEdits()); - editManager.doDataflowEdit( - currentDataflow, edit); - - } catch (Exception e) { - logger.error("Could not perform action", e); - } - } - }); - // Create and add a menu item for service - // details - JMenuItem details = new JMenuItem("Find out about " - + selectedService); - details - .setIcon(MobyPanel.getIcon("/Information24.gif")); - details.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent ae) { - // Create a frame - Frame frame = MobyPanel.CreateFrame("A BioMoby Service Description"); - frame.setSize(getFrameSize()); - JPanel panel = new MobyPanel(selectedService,"A BioMoby Service Description", - createServiceDescription(selectedService, - selectedAuthority, activity.getConfiguration().getMobyEndpoint())); - frame.add(panel); - frame.pack(); - frame.setVisible(true); - } - - @SuppressWarnings("unchecked") - private String createServiceDescription(String selectedService, - String selectedAuthority, String endpoint) { - StringBuffer sb = new StringBuffer(); - String newline = System.getProperty("line.separator"); - MobyService service = new MobyService(selectedService); - try { - Central central = new CentralImpl(endpoint); - service.setAuthority(selectedAuthority); - service.setCategory(""); - MobyService[] services = central.findService(service); - if (services == null || services.length != 1) { - return "Couldn't retrieve a description on the BioMoby service '" - + selectedService + "'"; - } - service = services[0]; - - } catch (MobyException e) { - logger.error("Could not retrieve a description on the BioMoby service " - + selectedService, e); - return "Couldn't retrieve a description on the BioMoby service '" - + selectedService + "'"; - } - sb.append("Service Contact: " + newline + "\t" - + service.getEmailContact() + newline); - sb.append("Service Category: " + newline + "\t" - + service.getCategory() + newline); - sb.append("Service Authority: " + newline + "\t" - + service.getAuthority() + newline); - sb.append("Service Type: " + newline + "\t" - + service.getType() + newline); - sb.append("Service Description: " + newline + "\t" - + service.getDescription() + newline); - sb.append("Location of Service: " + newline + "\t" - + service.getURL() + newline); - sb.append("Service Signature RDF Document is located at: " - + newline + "\t" + service.getSignatureURL() - + newline); - MobyData[] data = service.getPrimaryInputs(); - Vector primaryDataSimples = new Vector(); - Vector primaryDataSets = new Vector(); - for (int x = 0; x < data.length; x++) { - if (data[x] instanceof MobyPrimaryDataSimple) - primaryDataSimples.add(data[x]); - else - primaryDataSets.add(data[x]); - } - // describe inputs simple then - // collections - sb.append("Inputs:" + newline); - if (primaryDataSimples.size() == 0) { - sb.append("\t\tNo Simple input datatypes consumed." - + newline); - } else { - Iterator it = primaryDataSimples.iterator(); - sb - .append("\t\tService consumes the following Simple(s):" - + newline); - while (it.hasNext()) { - MobyPrimaryDataSimple simple = (MobyPrimaryDataSimple) it - .next(); - MobyNamespace[] namespaces = simple.getNamespaces(); - sb.append("\t\tData type: " - + simple.getDataType().getName() + newline); - sb.append("\t\t\tArticle name: " + simple.getName() - + newline); - if (namespaces.length == 0) { - sb.append("\t\t\tValid Namespaces: ANY" - + newline); - } else { - sb.append("\t\t\tValid Namespaces: "); - for (int x = 0; x < namespaces.length; x++) - sb.append(namespaces[x].getName() + " "); - sb.append(newline); - } - } - } - if (primaryDataSets.size() == 0) { - sb.append(newline - + "\t\tNo Collection input datatypes consumed." - + newline); - } else { - Iterator it = primaryDataSets.iterator(); - sb - .append(newline - + "\t\tService consumes the following collection(s) of datatypes:" - + newline); - while (it.hasNext()) { - MobyPrimaryDataSet set = (MobyPrimaryDataSet) it - .next(); - MobyPrimaryDataSimple simple = null; - sb.append("\t\tCollection Name:" + set.getName() - + newline); - MobyPrimaryDataSimple[] simples = set.getElements(); - for (int i = 0; i < simples.length; i++) { - simple = simples[i]; - MobyNamespace[] namespaces = simple - .getNamespaces(); - // iterate through set and - // do - // the following - sb.append("\t\tData type: " - + simple.getDataType().getName() - + newline); - sb.append("\t\t\tArticle name: " - + simple.getName() + newline); - if (namespaces.length == 0) { - sb.append("\t\t\tValid Namespaces: ANY" - + newline); - } else { - sb.append("\t\t\tValid Namespaces: "); - for (int x = 0; x < namespaces.length; x++) - sb - .append(namespaces[x].getName() - + " "); - sb.append(newline); - } - } - } - } - // describe secondary inputs - // describe outputs simple then - // collections - data = service.getPrimaryOutputs(); - primaryDataSimples = new Vector(); - primaryDataSets = new Vector(); - for (int x = 0; x < data.length; x++) { - if (data[x] instanceof MobyPrimaryDataSimple) - primaryDataSimples.add(data[x]); - else - primaryDataSets.add(data[x]); - } - sb.append("Outputs:" + newline); - if (primaryDataSimples.size() == 0) { - sb.append("\t\tNo Simple output datatypes produced." - + newline); - } else { - Iterator it = primaryDataSimples.iterator(); - sb - .append("\t\tService produces the following Simple(s):" - + newline); - while (it.hasNext()) { - MobyPrimaryDataSimple simple = (MobyPrimaryDataSimple) it - .next(); - MobyNamespace[] namespaces = simple.getNamespaces(); - sb.append("\t\tData type: " - + simple.getDataType().getName() + newline); - sb.append("\t\t\tArticle name: " + simple.getName() - + newline); - if (namespaces.length == 0) { - sb.append("\t\t\tValid Namespaces: ANY" - + newline); - } else { - sb.append("\t\t\tValid Namespaces: "); - for (int x = 0; x < namespaces.length; x++) - sb.append(namespaces[x].getName() + " "); - sb.append(newline); - } - } - } - if (primaryDataSets.size() == 0) { - sb - .append(newline - + "\t\tNo Collection output datatypes produced." - + newline); - } else { - Iterator it = primaryDataSets.iterator(); - sb - .append(newline - + "\t\tService produces the following collection(s) of datatypes:" - + newline); - while (it.hasNext()) { - MobyPrimaryDataSet set = (MobyPrimaryDataSet) it - .next(); - MobyPrimaryDataSimple simple = null; - sb.append("\t\tCollection Name:" + set.getName() - + newline); - MobyPrimaryDataSimple[] simples = set.getElements(); - for (int i = 0; i < simples.length; i++) { - simple = simples[i]; - MobyNamespace[] namespaces = simple - .getNamespaces(); - // iterate through set and - // do - // the following - sb.append("\t\tData type: " - + simple.getDataType().getName() - + newline); - sb.append("\t\t\tArticle name: " - + simple.getName() + newline); - if (namespaces.length == 0) { - sb.append("\t\t\tValid Namespaces: ANY" - + newline); - } else { - sb.append("\t\t\tValid Namespaces: "); - for (int x = 0; x < namespaces.length; x++) - sb - .append(namespaces[x].getName() - + " "); - sb.append(newline); - } - } - } - } - sb.append((service.isAuthoritative()) ? newline - + "The service belongs to this author." + newline - : newline - + "The service was wrapped by it's author." - + newline); - return sb.toString(); - } - }); - // add the components to the menus - menu.add(new JLabel("Add to workflow ... ", JLabel.CENTER)); - menu.add(new JSeparator()); - menu.add(item); - menu.add(new JSeparator()); - menu.add(new JLabel("Service Details ... ", JLabel.CENTER)); - menu.add(new JSeparator()); - menu.add(details); - // show the window - menu.show(me.getComponent(), me.getX(), me.getY()); - } - } - } - } - - public void mouseEntered(MouseEvent me) { - } - - public void mouseExited(MouseEvent me) { - } - }); - tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); - panel.add(new JScrollPane(tree), BorderLayout.CENTER); - takeDownProgressBar(); - } - - private void createNamespaceList(MobyNamespace[] fullNamespaces) { - // sort the namespaces alphabetically - DefaultMutableTreeNode root = new DefaultMutableTreeNode("ANY"); - // assuming that they increment by one ... - TreeMap<String, TreeSet<String>> sorted = new TreeMap<String, TreeSet<String>>(); - for (MobyNamespace n : fullNamespaces) { - String name = n.getName(); - String key = name.toUpperCase().substring(0, 1); - if (sorted.get(key) == null) { - sorted.put(key, new TreeSet<String>()); - } - sorted.get(key).add(name); - } - for (String o : sorted.keySet()) { - if (sorted.get(o) == null) - continue; - TreeSet<String> set = sorted.get(o); - String first = set.first().toUpperCase().charAt(0) + ""; - DefaultMutableTreeNode node = new DefaultMutableTreeNode(first); - for (String s : set) { - node.add(new DefaultMutableTreeNode(s)); - } - root.add(node); - } - namespaceList = new JTree(root); - } - } - - /* - * (non-Javadoc) - * - * @see org.embl.ebi.escience.scuflui.processoractions.AbstractProcessorAction#getComponent(org.embl.ebi.escience.scufl.Processor) - */ - public JComponent getComponent(BiomobyObjectActivity activity) { - - // this was done so that for longer requests, something is shown visually and the user then wont think that nothing happened. - Worker worker = new Worker(activity, this); - worker.start(); - return worker.getPanel(); - } - - /* - * method that processes the services returned by findService and adds them - * to the TreeNode parentNode, sorted by authority - */ - @SuppressWarnings("unchecked") - private void createTreeNodes(MutableTreeNode parentNode, MobyService[] services) { - HashMap inputHash; - inputHash = new HashMap(); - for (int x = 0; x < services.length; x++) { - DefaultMutableTreeNode authorityNode = null; - if (!inputHash.containsKey(services[x].getAuthority())) { - authorityNode = new DefaultMutableTreeNode(services[x].getAuthority()); - } else { - authorityNode = (DefaultMutableTreeNode) inputHash.get(services[x].getAuthority()); - } - MobyServiceTreeNode serv = new MobyServiceTreeNode(services[x].getName(), services[x] - .getDescription()); - MutableTreeNode temp = new DefaultMutableTreeNode(serv); - DefaultMutableTreeNode objects = new DefaultMutableTreeNode("Produces"); - // add to this node the MobyObjectTreeNodes that it produces! - MobyData[] outputs = services[x].getPrimaryOutputs(); - for (int i = 0; i < outputs.length; i++) { - if (outputs[i] instanceof MobyPrimaryDataSimple) { - MobyPrimaryDataSimple simple = (MobyPrimaryDataSimple) outputs[i]; - StringBuffer sb = new StringBuffer("Namespaces used by this object: "); - MobyNamespace[] namespaces = simple.getNamespaces(); - for (int j = 0; j < namespaces.length; j++) { - sb.append(namespaces[j].getName() + " "); - } - if (namespaces.length == 0) - sb.append("ANY "); - MobyObjectTreeNode mobyObjectTreeNode = new MobyObjectTreeNode(simple - .getDataType().getName() - + "('" + simple.getName() + "')", sb.toString()); - objects.insert(new DefaultMutableTreeNode(mobyObjectTreeNode), objects - .getChildCount()); - } else { - // we have a collection - MobyPrimaryDataSet collection = (MobyPrimaryDataSet) outputs[i]; - DefaultMutableTreeNode collectionNode = new DefaultMutableTreeNode( - "Collection('" + collection.getName() + "')"); - objects.insert(collectionNode, objects.getChildCount()); - MobyPrimaryDataSimple[] simples = collection.getElements(); - for (int j = 0; j < simples.length; j++) { - MobyPrimaryDataSimple simple = simples[j]; - StringBuffer sb = new StringBuffer("Namespaces used by this object: "); - MobyNamespace[] namespaces = simple.getNamespaces(); - for (int k = 0; k < namespaces.length; k++) { - sb.append(namespaces[k].getName() + " "); - } - if (namespaces.length == 0) - sb.append("ANY "); - MobyObjectTreeNode mobyObjectTreeNode = new MobyObjectTreeNode(simple - .getDataType().getName() - + "('" + simple.getName() + "')", sb.toString()); - collectionNode.insert(new DefaultMutableTreeNode(mobyObjectTreeNode), - collectionNode.getChildCount()); - } - - } - } - - temp.insert(objects, temp.getChildCount()); - - authorityNode.insert(temp, authorityNode.getChildCount()); - inputHash.put(services[x].getAuthority(), authorityNode); - - } - Set set = inputHash.keySet(); - SortedSet sortedset = new TreeSet(set); - for (Iterator it = sortedset.iterator(); it.hasNext();) { - parentNode.insert((DefaultMutableTreeNode) inputHash.get((String) it.next()), - parentNode.getChildCount()); - } - } - - - /* - * (non-Javadoc) - * - * @see org.embl.ebi.escience.scuflui.processoractions.ProcessorActionSPI#getDescription() - */ - public String getDescription() { - return "Moby Object Details"; - } - - /* - * - */ - public ImageIcon getIcon() { - return MobyPanel.getIcon("/moby_small.gif"); - } - - /** - * returns the frame size as a dimension for the content pane housing this - * action - */ - public Dimension getFrameSize() { - return new Dimension(450, 450); - } - - public void setNamespaces(MobyNamespace[] namespaces) { - if (namespaces != null && namespaces.length == 0) - this.namespaces = null; - else - this.namespaces = namespaces; - } - public MobyNamespace[] getNamespaces() { - return this.namespaces == null ? new MobyNamespace[]{} : this.namespaces; - } -} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/BiomobyScavengerDialog.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/BiomobyScavengerDialog.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/BiomobyScavengerDialog.java deleted file mode 100644 index 4419bf9..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/BiomobyScavengerDialog.java +++ /dev/null @@ -1,136 +0,0 @@ -/******************************************************************************* - * This file is a component of the Taverna project, and is licensed under the - * GNU LGPL. Copyright Edward Kawas, The BioMoby Project - ******************************************************************************/ -/* - * 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.actions; - -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import javax.swing.JComboBox; -import javax.swing.JPanel; -import javax.swing.JTextField; - -import org.biomoby.registry.meta.Registries; -import org.biomoby.registry.meta.RegistriesList; -import org.biomoby.shared.MobyException; - -import net.sf.taverna.t2.lang.ui.ShadedLabel; - -/** - * a dialog for helping create scavengers for BioMoby registries that are not - * the default registry. - * - */ -public class BiomobyScavengerDialog extends JPanel { - - private static final String CUSTOM = "Custom"; - private static final long serialVersionUID = -57047613557546674L; - private JTextField registryEndpoint = new JTextField( - "http://moby.ucalgary.ca/moby/MOBY-Central.pl"); - private JTextField registryURI = new JTextField( - "http://moby.ucalgary.ca/MOBY/Central"); - - /** - * Default constructor. - * - */ - /** - * Default constructor. - * - */ - public BiomobyScavengerDialog() { - super(); - GridLayout layout = new GridLayout(5, 2); - setLayout(layout); - - registryEndpoint.setEnabled(false); - registryURI.setEnabled(false); - - // a combo box showing known registries - final Registries regs = RegistriesList.getInstance(); - List<String> choices = new ArrayList<String>(Arrays.asList(regs.list())); - choices.add(CUSTOM); - - JComboBox regList = new JComboBox(choices.toArray()); - regList.setToolTipText("A selection will fill text fields below"); - regList.setSelectedItem(Registries.DEFAULT_REGISTRY_SYNONYM); - regList.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - String contents = (String) ((JComboBox) e.getSource()) - .getSelectedItem(); - - if (contents.equals(CUSTOM)) { - registryEndpoint.setEnabled(true); - registryURI.setEnabled(true); - return; - } else { - registryEndpoint.setEnabled(false); - registryURI.setEnabled(false); - } - org.biomoby.registry.meta.Registry theReg = null; - try { - theReg = regs.get(contents); - } catch (MobyException ee) { - try { - theReg = regs.get(null); - } catch (MobyException ee2) { - - } - } - if (theReg != null) { - registryEndpoint.setText(theReg.getEndpoint()); - registryURI.setText(theReg.getNamespace()); - - } - } - }); - add(new ShadedLabel("Choose a registry from the list: ", - ShadedLabel.BLUE, true)); - add(regList); - add(new ShadedLabel("Or select '" + CUSTOM + "' to enter your own below,", ShadedLabel.BLUE, true)); - add(new ShadedLabel("", ShadedLabel.BLUE, true)); - add(new ShadedLabel( - "Location (URL) of your BioMoby central registry: ", - ShadedLabel.BLUE, true)); - registryEndpoint - .setToolTipText("BioMoby Services will be retrieved from the endpoint that you specify here!"); - add(registryEndpoint); - add(new ShadedLabel( - "Namespace (URI) of your BioMoby central registry: ", - ShadedLabel.BLUE, true)); - registryURI - .setToolTipText("BioMoby Services will be retrieved from the endpoint/URI that you specify here!"); - add(registryURI); - // add(Box.createHorizontalGlue());add(Box.createHorizontalGlue()); - setPreferredSize(this.getPreferredSize()); - setMinimumSize(this.getPreferredSize()); - setMaximumSize(this.getPreferredSize()); - - } - - /** - * - * @return the string representation of the BioMoby Registry endpoint - */ - public String getRegistryEndpoint() { - return registryEndpoint.getText(); - } - - /** - * - * @return the string representation of the BioMoby Registry endpoint - */ - public String getRegistryURI() { - return registryURI.getText(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyObjectDetailsAction.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyObjectDetailsAction.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyObjectDetailsAction.java deleted file mode 100644 index 803fde3..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyObjectDetailsAction.java +++ /dev/null @@ -1,83 +0,0 @@ -/** - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - * - */ -package net.sf.taverna.t2.activities.biomoby.actions; - -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Frame; -import java.awt.event.ActionEvent; - -import javax.swing.AbstractAction; -import javax.swing.JDialog; - -import net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivity; -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.file.FileManager; -import net.sf.taverna.t2.workbench.helper.HelpEnabledDialog; - -/** - * @author Stuart Owen - * - */ -@SuppressWarnings("serial") -public class MobyObjectDetailsAction extends AbstractAction { - - private final BiomobyObjectActivity activity; - private final Frame owner; - private EditManager editManager; - - private static final String MOBY_OBJECT_DETAILS_ACTION = "Datatype registry query"; - private final FileManager fileManager; - - public MobyObjectDetailsAction(BiomobyObjectActivity activity, Frame owner, EditManager editManager, FileManager fileManager) { - this.activity = activity; - this.owner = owner; - this.editManager = editManager; - this.fileManager = fileManager; - putValue(NAME, MOBY_OBJECT_DETAILS_ACTION); - - } - - /* - * (non-Javadoc) - * - * @see - * java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) - */ - public void actionPerformed(ActionEvent e) { - BiomobyObjectActionHelper helper = new BiomobyObjectActionHelper(editManager, fileManager); - Dimension size = helper.getFrameSize(); - - Component component = helper.getComponent(activity); - - final JDialog dialog = new HelpEnabledDialog(owner, helper.getDescription(), false, null); - dialog.getContentPane().add(component); - dialog.pack(); - // dialog.setTitle(helper.getDescription()); - dialog.setSize(size); - // dialog.setModal(false); - dialog.setVisible(true); - - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyObjectTreeNode.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyObjectTreeNode.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyObjectTreeNode.java deleted file mode 100644 index f58efc6..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyObjectTreeNode.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.actions; - -import org.biomoby.shared.MobyNamespace; - -public class MobyObjectTreeNode { - - // name of the object == node name - private String name = ""; - - // description of object == tool tip text - private String description = ""; - - private MobyNamespace[] ns = null; - /** - * - * @param name - the name of the Moby Object - * @param description - the description of the Moby Service - */ - public MobyObjectTreeNode(String name, String description) { - this.name = name; - this.description = description; - } - /* - * over-ride the toString method in order to print node values - * that make sense. - */ - public String toString() { - return name; - } - - public void setNamespaces(MobyNamespace[] namespaces) { - if (namespaces != null && namespaces.length == 0) - this.ns = null; - else - this.ns = namespaces; - } - - public MobyNamespace[] getNamespaces() { - return this.ns; - } - - public String getDescription() { - return this.description; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyPanel.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyPanel.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyPanel.java deleted file mode 100644 index a2e0a70..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyPanel.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Created on Sep 9, 2005 - * - * TODO To change the template for this generated file go to - * Window - Preferences - Java - Code Style - Code Templates - */ -package net.sf.taverna.t2.activities.biomoby.actions; - -import java.awt.BorderLayout; -import java.awt.Frame; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; - -import javax.swing.ImageIcon; - -import javax.swing.JLabel; -import javax.swing.JPanel; - -import net.sf.taverna.t2.lang.ui.DialogTextArea; - -/** - * @author Eddie Kawas - * - * - */ -public class MobyPanel extends JPanel { - - - private static final long serialVersionUID = 1L; - private DialogTextArea textArea = null; - private String text = ""; - private String name = ""; - private JLabel jLabel = new JLabel(); - - /** - * This is the default constructor - */ - public MobyPanel(String label, String name, String text) { - super(new BorderLayout()); - jLabel.setText(label); - this.text = text; - this.name = name; - initialize(); - } - - public MobyPanel(String label) { - super(new BorderLayout()); - jLabel.setText(label); - initialize(); - } - /** - * This method initializes this - * - * @return void - */ - private void initialize() { - this.setSize(450, 450); - jLabel.setHorizontalAlignment(JLabel.CENTER); - add(jLabel, BorderLayout.NORTH); - add(getTextArea(), BorderLayout.CENTER); - } - - /** - * This method initializes jTextArea - * - * @return DialogTextArea - */ - private DialogTextArea getTextArea() { - if (textArea == null) { - textArea = new DialogTextArea(); - } - textArea.setLineWrap(true); - textArea.setWrapStyleWord(true); - textArea.setText(this.text); - textArea.setEditable(false); - textArea.setEnabled(true); - textArea.setAutoscrolls(true); - textArea.setCaretPosition(0); - return textArea; - } - - public void setText(String text) { - this.text = text; - if (textArea == null) { - textArea = new DialogTextArea(this.text); - } - textArea.setText(text); - } - - /* (non-Javadoc) - * @see org.embl.ebi.escience.scuflui.ScuflUIComponent#getIcon() - */ - public ImageIcon getIcon() { - return new ImageIcon(MobyPanel.class.getResource("/moby_small.png")); - } - - /** - * - * @param icon a relative path to an icon to get - * @return the ImageIcon at icon - */ - public static ImageIcon getIcon(String icon) { - return new ImageIcon(MobyPanel.class.getResource(icon)); - } - - public String getName(){ - if (name==null) return ""; - else return name; - } - - public void onDisplay() { - // TODO Auto-generated method stub - - } - - public void onDispose() { - // TODO Auto-generated method stub - - } - - public static Frame CreateFrame(String title) { - // Create a frame - Frame frame = new Frame(title); - // Add a listener for the close event - frame.addWindowListener(new WindowAdapter() { - public void windowClosing(WindowEvent evt) { - Frame frame = (Frame)evt.getSource(); - // Hide the frame - frame.setVisible(false); - // If the frame is no longer needed, call dispose - frame.dispose(); - } - }); - return frame; - } - } http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyParserAction.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyParserAction.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyParserAction.java deleted file mode 100644 index 865c1f1..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyParserAction.java +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - * - */ -package net.sf.taverna.t2.activities.biomoby.actions; - -import java.awt.Component; -import java.awt.Frame; -import java.awt.event.ActionEvent; - -import javax.swing.AbstractAction; -import javax.swing.JDialog; - -import net.sf.taverna.t2.activities.biomoby.BiomobyActivity; -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.file.FileManager; -import net.sf.taverna.t2.workbench.helper.HelpEnabledDialog; - -/** - * @author Stuart Owen - * - */ -@SuppressWarnings("serial") -public class MobyParserAction extends AbstractAction { - - private final BiomobyActivity activity; - private final Frame owner; - private EditManager editManager; - private final FileManager fileManager; - - public MobyParserAction(BiomobyActivity activity, Frame owner, EditManager editManager, FileManager fileManager) { - this.activity = activity; - this.owner = owner; - this.editManager = editManager; - this.fileManager = fileManager; - putValue(NAME, "Add Biomoby parser"); - - } - public void actionPerformed(ActionEvent e) { - AddParserActionHelper helper = new AddParserActionHelper(editManager, fileManager); - Component component = helper.getComponent(activity); - - final JDialog dialog = new HelpEnabledDialog(owner, helper.getDescription(), false, null); - dialog.getContentPane().add(component); - dialog.pack(); -// dialog.setSize(helper.getFrameSize()); - dialog.setTitle(helper.getDescription()); -// dialog.setModal(false); - dialog.setVisible(true); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyServiceDetailsAction.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyServiceDetailsAction.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyServiceDetailsAction.java deleted file mode 100644 index 5000986..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyServiceDetailsAction.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * 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.actions; - -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Frame; -import java.awt.event.ActionEvent; - -import javax.swing.AbstractAction; -import javax.swing.JDialog; - -import net.sf.taverna.t2.activities.biomoby.BiomobyActivity; -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.file.FileManager; -import net.sf.taverna.t2.workbench.helper.HelpEnabledDialog; - -/** - * @author Stuart Owen - * - */ -@SuppressWarnings("serial") -public class MobyServiceDetailsAction extends AbstractAction { - - private final BiomobyActivity activity; - private final Frame owner; - private EditManager editManager; - - private static final String MOBY_SERVICE_DETAILS_ACTION = "Browse Biomoby service details"; - private final FileManager fileManager; - public MobyServiceDetailsAction(BiomobyActivity activity, Frame owner, EditManager editManager, FileManager fileManager) { - this.activity = activity; - this.owner = owner; - this.editManager = editManager; - this.fileManager = fileManager; - putValue(NAME, MOBY_SERVICE_DETAILS_ACTION); - - } - - /* - * (non-Javadoc) - * - * @see - * java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) - */ - public void actionPerformed(ActionEvent e) { - - BiomobyActionHelper helper = new BiomobyActionHelper(editManager, fileManager); - Dimension size = helper.getFrameSize(); - - Component component = helper.getComponent(activity); - final JDialog dialog = new HelpEnabledDialog(owner, helper.getDescription(), false, null); - - dialog.getContentPane().add(component); - dialog.pack(); -// dialog.setTitle(helper.getDescription()); - dialog.setSize(size); -// dialog.setModal(false); - dialog.setVisible(true); - - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyServiceTreeNode.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyServiceTreeNode.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyServiceTreeNode.java deleted file mode 100644 index c957a1f..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/MobyServiceTreeNode.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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.actions; -import java.util.ArrayList; - -public class MobyServiceTreeNode { - - // name of the service == node name - private String name = ""; - - // list of objects that service produces - @SuppressWarnings("unused") - private ArrayList<MobyObjectTreeNode> mobyObjectTreeNodes = null; - - // description of object == tool tip text - private String description = ""; - - - /** - * - * @param name - the name of the Moby Service - * @param description - the description of the Moby Service - */ - public MobyServiceTreeNode(String name, String description) { - this.name = name; - this.description = description; - } - /* - * over-ride the toString method in order to print node values - * that make sense. - */ - public String toString() { - return name; - } - - public String getDescription() { - return this.description; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/PopupThread.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/PopupThread.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/PopupThread.java deleted file mode 100644 index 0c8b9fc..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/PopupThread.java +++ /dev/null @@ -1,34 +0,0 @@ -package net.sf.taverna.t2.activities.biomoby.actions; - -import java.awt.Component; - -import net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivity; - - -public class PopupThread extends Thread { - - Object object = null; - - BiomobyObjectActivity objectActivity = null; - - BiomobyObjectActionHelper objectAction = null; - - boolean done = false; - - PopupThread(BiomobyObjectActivity bop, BiomobyObjectActionHelper boa) { - super("Biomoby popup"); - this.objectAction = boa; - this.objectActivity = bop; - setDaemon(true); - } - - public void run() { - object = objectAction.getComponent(objectActivity); - this.done = true; - } - - // call after you check if done! - public Component getComponent() { - return (Component) object; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/SimpleActionFrame.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/SimpleActionFrame.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/SimpleActionFrame.java deleted file mode 100644 index a85b50b..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/actions/SimpleActionFrame.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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.actions; - -import java.awt.BorderLayout; -import java.awt.Component; - -import javax.swing.JPanel; - - -/** - * This class contains some methods that are useful in creating a consistent JPanel - * for displaying information or actions for biomoby services and datatypes. - * - * @author Edward Kawas - * @author Stuart Owen = initial port from T1 to T2 - * - */ -public class SimpleActionFrame extends JPanel { - - private static final long serialVersionUID = -6611234116434482238L; - - - private String name = ""; - public SimpleActionFrame(Component c, String name) { - super(new BorderLayout()); - add(c, BorderLayout.CENTER); - - this.name = name; - } - - - - public String getName() { - return name; - } - - public void onDisplay() { - - } - - - } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/datatypedescriptions/BiomobyDatatypeDescription.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/datatypedescriptions/BiomobyDatatypeDescription.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/datatypedescriptions/BiomobyDatatypeDescription.java deleted file mode 100644 index 35df9b8..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/datatypedescriptions/BiomobyDatatypeDescription.java +++ /dev/null @@ -1,143 +0,0 @@ -package net.sf.taverna.t2.activities.biomoby.datatypedescriptions; - -import java.net.URI; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import javax.swing.Icon; - -import net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivity; -import net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivityConfigurationBean; -import net.sf.taverna.t2.activities.biomoby.query.BiomobyObjectActivityIcon; -import net.sf.taverna.t2.servicedescriptions.ServiceDescription; -import net.sf.taverna.t2.workflowmodel.processor.activity.Activity; - -public class BiomobyDatatypeDescription extends - ServiceDescription<BiomobyObjectActivityConfigurationBean> { - - private String authorityName; - private String emailContact; - private String datatypeName; - private URI lsid; - private String parent; - private String[] lineage; - - private URI endpoint; - private URI namespace; - - @Override - public Class<? extends Activity<BiomobyObjectActivityConfigurationBean>> getActivityClass() { - return BiomobyObjectActivity.class; - } - - @Override - public BiomobyObjectActivityConfigurationBean getActivityConfiguration() { - BiomobyObjectActivityConfigurationBean bean = new BiomobyObjectActivityConfigurationBean(); - bean.setAuthorityName(getAuthorityName()); - bean.setServiceName(getDatatypeName()); - bean.setMobyEndpoint(getEndpoint().toASCIIString()); - return bean; - } - - public String getAuthorityName() { - return authorityName; - } - - public void setAuthorityName(String authorityName) { - this.authorityName = authorityName; - } - - public String getEmailContact() { - return emailContact; - } - - public void setEmailContact(String emailContact) { - this.emailContact = emailContact; - } - - public String getDatatypeName() { - return datatypeName; - } - - public void setDatatypeName(String datatypeName) { - this.datatypeName = datatypeName; - } - - public URI getLsid() { - return lsid; - } - - public void setLsid(URI lsid) { - this.lsid = lsid; - } - - public String getParent() { - return parent; - } - - public void setParent(String parent) { - this.parent = parent; - } - - public URI getEndpoint() { - return endpoint; - } - - public void setEndpoint(URI endpoint) { - this.endpoint = endpoint; - } - - public URI getNamespace() { - return namespace; - } - - public void setNamespace(URI namespace) { - this.namespace = namespace; - } - - public String[] getLineage() { - return lineage; - } - - public void setLineage(String[] lineage) { - this.lineage = lineage; - } - - @Override - public String getName() { - return getDatatypeName(); - } - - @Override - protected List<Object> getIdentifyingData() { - return Arrays.<Object> asList(getNamespace(), getEndpoint(), getAuthorityName(), - getDatatypeName()); - } - - @Override - public List<String> getPath() { - ArrayList<String> list = new ArrayList<String>(); - list.add("Biomoby @ " + getEndpoint()); - list.add("MOBY Objects"); - list.addAll(Arrays.asList(getLineage())); - return list; - } - - @Override - public Icon getIcon() { - return new BiomobyObjectActivityIcon().getIcon(new BiomobyObjectActivity()); - } - - @Override - public String toString() { - return getName(); - } - - // public Edit getInsertionEdit(Dataflow dataflow, Processor p, Activity a) { - // if (a instanceof BiomobyObjectActivity) { - // return new AddUpstreamObjectEdit(dataflow, p, (BiomobyObjectActivity) a); - // } - // return null; - // } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/edits/AddBiomobyCollectionDataTypeEdit.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/edits/AddBiomobyCollectionDataTypeEdit.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/edits/AddBiomobyCollectionDataTypeEdit.java deleted file mode 100644 index 8e02195..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/edits/AddBiomobyCollectionDataTypeEdit.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - * - */ -package net.sf.taverna.t2.activities.biomoby.edits; - -import net.sf.taverna.t2.activities.biomoby.BiomobyActivity; -import net.sf.taverna.t2.workflowmodel.Dataflow; -import net.sf.taverna.t2.workflowmodel.Edits; - -/** - * @author Stuart Owen - * - */ -public class AddBiomobyCollectionDataTypeEdit extends - AddBiomobyDataTypeEdit { - - private final String theCollectionName; - - /** - * @param dataflow - * @param activity - * @param objectName - */ - public AddBiomobyCollectionDataTypeEdit(Dataflow dataflow, - BiomobyActivity activity, String objectName, String theCollectionName, Edits edits) { - super(dataflow, activity, objectName, edits); - this.theCollectionName = theCollectionName; - } - - @Override - protected String determineInputPortName(String defaultName,String objectName) { - return defaultName - + "(Collection - '" - + (theCollectionName.equals("") ? "MobyCollection" - : theCollectionName) - + "')"; - } - - - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/edits/AddBiomobyConsumingServiceEdit.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/edits/AddBiomobyConsumingServiceEdit.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/edits/AddBiomobyConsumingServiceEdit.java deleted file mode 100644 index e13c208..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/edits/AddBiomobyConsumingServiceEdit.java +++ /dev/null @@ -1,236 +0,0 @@ -/** - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - * - */ -package net.sf.taverna.t2.activities.biomoby.edits; - -import java.util.ArrayList; -import java.util.List; - -import org.biomoby.registry.meta.Registry; -import org.biomoby.shared.MobyDataType; - -import net.sf.taverna.t2.activities.biomoby.BiomobyActivity; -import net.sf.taverna.t2.activities.biomoby.BiomobyActivityConfigurationBean; -import net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivity; -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.EditException; -import net.sf.taverna.t2.workflowmodel.Edits; -import net.sf.taverna.t2.workflowmodel.EventForwardingOutputPort; -import net.sf.taverna.t2.workflowmodel.EventHandlingInputPort; -import net.sf.taverna.t2.workflowmodel.InputPort; -import net.sf.taverna.t2.workflowmodel.OutputPort; -import net.sf.taverna.t2.workflowmodel.ProcessorInputPort; -import net.sf.taverna.t2.workflowmodel.ProcessorOutputPort; -import net.sf.taverna.t2.workflowmodel.impl.AbstractDataflowEdit; -import net.sf.taverna.t2.workflowmodel.impl.DataflowImpl; -import net.sf.taverna.t2.workflowmodel.processor.activity.Activity; -import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort; -import net.sf.taverna.t2.workflowmodel.utils.Tools; - -/** - * @author Stuart Owen - * - */ -public class AddBiomobyConsumingServiceEdit extends AbstractDataflowEdit { - - private final BiomobyObjectActivity activity; - private final String serviceName; - private Edits edits; - Edit<?> compoundEdit = null; - Edit<?> linkEdit = null; - private final String authority; - private final OutputPort outputPort; - - /** - * @param dataflow - */ - public AddBiomobyConsumingServiceEdit(Dataflow dataflow, - BiomobyObjectActivity activity, String serviceName,String authority,OutputPort outputPort, Edits edits) { - super(dataflow); - - this.activity = activity; - this.serviceName = serviceName; - this.authority = authority; - this.outputPort = outputPort; - this.edits = edits; - } - - /* - * (non-Javadoc) - * - * @see - * net.sf.taverna.t2.workflowmodel.impl.AbstractEdit#doEditAction(java.lang - * .Object) - */ - @Override - protected void doEditAction(DataflowImpl dataflow) throws EditException { - String defaultName = serviceName; - String name = Tools - .uniqueProcessorName(defaultName, dataflow); - - List<Edit<?>> editList = new ArrayList<Edit<?>>(); - - net.sf.taverna.t2.workflowmodel.Processor sinkProcessor = edits - .createProcessor(name); - - BiomobyActivityConfigurationBean bean = new BiomobyActivityConfigurationBean(); - bean.setAuthorityName(authority); - bean.setServiceName(serviceName); - bean.setMobyEndpoint(activity.getConfiguration().getMobyEndpoint()); - BiomobyActivity boActivity = new BiomobyActivity(); - editList.add(edits.getConfigureActivityEdit(boActivity, bean)); - - editList.add(edits.getDefaultDispatchStackEdit(sinkProcessor)); - - Edit<?> addActivityToProcessorEdit = edits.getAddActivityEdit( - sinkProcessor, boActivity); - editList.add(addActivityToProcessorEdit); - - editList.add(edits.getAddProcessorEdit(dataflow, sinkProcessor)); - - compoundEdit = new CompoundEdit(editList); - compoundEdit.doEdit(); - - net.sf.taverna.t2.workflowmodel.Processor sourceProcessor = Tools.getProcessorsWithActivityOutputPort(dataflow, outputPort).iterator().next(); - - List<Edit<?>> linkEditList = new ArrayList<Edit<?>>(); - - EventForwardingOutputPort sourcePort = null; - //FIXME: there is an assumption here that the processor will contain only 1 activity. - if (outputPort != null) { - sourcePort = getSourcePort(sourceProcessor, sourceProcessor.getActivityList().get(0), outputPort.getName(), linkEditList); - } - else { - sourcePort = getSourcePort(sourceProcessor, sourceProcessor.getActivityList().get(0), sourceProcessor.getOutputPorts().get(0).getName(), linkEditList); - } - // get the input port that isnt called 'input' - String inputPortName = ""; - for (ActivityInputPort aip : sinkProcessor.getActivityList().get(0).getInputPorts()) { - if (!aip.getName().equalsIgnoreCase("input")) { - // try to match the datatype to an input port - String dtName = activity.getMobyObject().getName(); - String sinkDtname = aip.getName(); - if (sinkDtname.indexOf("(") > 0) - sinkDtname = sinkDtname.substring(0, sinkDtname.indexOf("(")); - // are the datatype names exactly the same? - if (dtName.equals(sinkDtname)) { - inputPortName = aip.getName(); - break; - } - // check for the name in the datatypes lineage - MobyDataType sinkDt = MobyDataType.getDataType(dtName, - new Registry( - activity.getCentral().getRegistryEndpoint(), - activity.getCentral().getRegistryEndpoint(), - activity.getCentral().getRegistryNamespace()) - ); - // check the lineage of the sinkdt for dtname - for (MobyDataType lineage : sinkDt.getLineage()) { - if (lineage.getName().equals(sinkDtname)) { - inputPortName = aip.getName(); - break; - } - } - // are we done? - if (!inputPortName.trim().equals("")) - break; - } - } - // if inputPortName is not set, then just pick the first one - if (inputPortName.trim().equals("")) { - inputPortName = sinkProcessor.getActivityList().get(0).getInputPorts().iterator().next().getName(); - } - EventHandlingInputPort sinkPort = getSinkPort(sinkProcessor, boActivity, inputPortName, linkEditList); - if (sinkPort==null) { - throw new EditException("No valid input called '"+inputPortName+"' found for Biomoby consuming service"); - } - linkEditList.add(Tools - .getCreateAndConnectDatalinkEdit( - dataflow, - sourcePort, sinkPort, edits)); - linkEdit = new CompoundEdit(linkEditList); - linkEdit.doEdit(); - } - - /* - * (non-Javadoc) - * - * @see - * net.sf.taverna.t2.workflowmodel.impl.AbstractEdit#undoEditAction(java - * .lang.Object) - */ - @Override - protected void undoEditAction(DataflowImpl subjectImpl) { - if (linkEdit!=null && linkEdit.isApplied()) - linkEdit.undo(); - if (compoundEdit!=null && compoundEdit.isApplied()) - compoundEdit.undo(); - } - - private EventHandlingInputPort getSinkPort( - net.sf.taverna.t2.workflowmodel.Processor processor, - Activity<?> activity, String portName, List<Edit<?>> editList) { - InputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools - .getActivityInputPort(activity, portName); - // check if processor port exists - EventHandlingInputPort input = net.sf.taverna.t2.workflowmodel.utils.Tools - .getProcessorInputPort(processor, activity, activityPort); - if (input == null) { - // port doesn't exist so create a processor port and map it - ProcessorInputPort processorInputPort = edits - .createProcessorInputPort(processor, - activityPort.getName(), activityPort.getDepth()); - editList.add(edits.getAddProcessorInputPortEdit(processor, - processorInputPort)); - editList.add(edits.getAddActivityInputPortMappingEdit(activity, - activityPort.getName(), activityPort.getName())); - input = processorInputPort; - } - return input; - } - - private EventForwardingOutputPort getSourcePort( - net.sf.taverna.t2.workflowmodel.Processor processor, - Activity<?> activity, String portName, List<Edit<?>> editList) { - OutputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools - .getActivityOutputPort(activity, portName); - // check if processor port exists - EventForwardingOutputPort output = net.sf.taverna.t2.workflowmodel.utils.Tools - .getProcessorOutputPort(processor, activity, activityPort); - if (output == null) { - // port doesn't exist so create a processor port and map it - ProcessorOutputPort processorOutputPort = edits - .createProcessorOutputPort(processor, activityPort - .getName(), activityPort.getDepth(), activityPort - .getGranularDepth()); - editList.add(edits.getAddProcessorOutputPortEdit(processor, - processorOutputPort)); - editList.add(edits.getAddActivityOutputPortMappingEdit(activity, - activityPort.getName(), activityPort.getName())); - output = processorOutputPort; - } - return output; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/edits/AddBiomobyDataTypeEdit.java ---------------------------------------------------------------------- diff --git a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/edits/AddBiomobyDataTypeEdit.java b/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/edits/AddBiomobyDataTypeEdit.java deleted file mode 100644 index e13c264..0000000 --- a/taverna-biomoby-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomoby/edits/AddBiomobyDataTypeEdit.java +++ /dev/null @@ -1,207 +0,0 @@ -/******************************************************************************* - * 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.edits; - -import java.util.ArrayList; -import java.util.List; - -import net.sf.taverna.t2.activities.biomoby.BiomobyActivity; -import net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivity; -import net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivityConfigurationBean; -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.EditException; -import net.sf.taverna.t2.workflowmodel.Edits; -import net.sf.taverna.t2.workflowmodel.EventForwardingOutputPort; -import net.sf.taverna.t2.workflowmodel.EventHandlingInputPort; -import net.sf.taverna.t2.workflowmodel.InputPort; -import net.sf.taverna.t2.workflowmodel.OutputPort; -import net.sf.taverna.t2.workflowmodel.ProcessorInputPort; -import net.sf.taverna.t2.workflowmodel.ProcessorOutputPort; -import net.sf.taverna.t2.workflowmodel.impl.AbstractDataflowEdit; -import net.sf.taverna.t2.workflowmodel.impl.DataflowImpl; -import net.sf.taverna.t2.workflowmodel.processor.activity.Activity; -import net.sf.taverna.t2.workflowmodel.utils.Tools; - -/** - * @author Stuart Owen - * - */ -public class AddBiomobyDataTypeEdit extends AbstractDataflowEdit { - - private final BiomobyActivity activity; - private Edits edits; - private final String objectName; - - private Edit<?> compoundEdit = null; - private Edit<?> linkEdit = null; - private Edit<?> upstreamObjectEdit = null; - - - public AddBiomobyDataTypeEdit(Dataflow dataflow,BiomobyActivity activity,String objectName, Edits edits) { - super(dataflow); - this.activity = activity; - this.objectName = objectName; - this.edits = edits; - - } - - - - - - /* (non-Javadoc) - * @see net.sf.taverna.t2.workflowmodel.impl.AbstractDataflowEdit#doEditAction(net.sf.taverna.t2.workflowmodel.impl.DataflowImpl) - */ - @Override - protected void doEditAction(DataflowImpl dataflow) throws EditException { - List<Edit<?>> editList = new ArrayList<Edit<?>>(); - - - String defaultName = objectName; - defaultName = defaultName.split("\\(")[0]; - String name = Tools.uniqueProcessorName(objectName, dataflow); - - BiomobyObjectActivityConfigurationBean configBean = new BiomobyObjectActivityConfigurationBean(); - configBean.setMobyEndpoint(activity - .getConfiguration() - .getMobyEndpoint()); - configBean.setAuthorityName(""); - configBean.setServiceName(defaultName); - - - 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); - - String inputPortName = determineInputPortName(defaultName,objectName); - - editList.add(edits.getAddProcessorEdit( - dataflow, - sourceProcessor)); - - compoundEdit = new CompoundEdit( - editList); - compoundEdit.doEdit(); - - net.sf.taverna.t2.workflowmodel.Processor sinkProcessor = Tools - .getProcessorsWithActivity( - dataflow, - activity).iterator() - .next(); - - List<Edit<?>> linkEditList = new ArrayList<Edit<?>>(); - EventHandlingInputPort sinkPort = getSinkPort( - sinkProcessor, activity, - inputPortName, linkEditList); - EventForwardingOutputPort sourcePort = getSourcePort( - sourceProcessor, boActivity, - "mobyData", linkEditList); - - linkEditList.add(Tools - .getCreateAndConnectDatalinkEdit( - dataflow, - sourcePort, sinkPort, edits)); - linkEdit = new CompoundEdit(linkEditList); - linkEdit.doEdit(); - - if (!(defaultName.equalsIgnoreCase("Object") - || defaultName.equalsIgnoreCase("String") - || defaultName.equalsIgnoreCase("Integer") - || defaultName.equalsIgnoreCase("Float") - || defaultName.equalsIgnoreCase("DateTime"))) { - upstreamObjectEdit=new AddUpstreamObjectEdit(dataflow,sourceProcessor,boActivity, edits); - upstreamObjectEdit.doEdit(); - - } - } - - protected String determineInputPortName(String defaultName,String objectName) { - String inputPortName = objectName - .replaceAll("'", ""); - if (inputPortName.indexOf("()") > 0) - inputPortName = inputPortName - .replaceAll("\\(\\)", - "\\(_ANON_\\)"); - return inputPortName; - } - - /* (non-Javadoc) - * @see net.sf.taverna.t2.workflowmodel.impl.AbstractDataflowEdit#undoEditAction(net.sf.taverna.t2.workflowmodel.impl.DataflowImpl) - */ - @Override - protected void undoEditAction(DataflowImpl dataflow) { - if (linkEdit!=null && linkEdit.isApplied()) - linkEdit.undo(); - if (compoundEdit!=null && compoundEdit.isApplied()) - compoundEdit.undo(); - if (upstreamObjectEdit!=null && upstreamObjectEdit.isApplied()) { - upstreamObjectEdit.undo(); - } - - } - - private EventHandlingInputPort getSinkPort( - net.sf.taverna.t2.workflowmodel.Processor processor, - Activity<?> activity, String portName, List<Edit<?>> editList) { - InputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools - .getActivityInputPort(activity, portName); - // check if processor port exists - EventHandlingInputPort input = net.sf.taverna.t2.workflowmodel.utils.Tools - .getProcessorInputPort(processor, activity, activityPort); - if (input == null) { - // port doesn't exist so create a processor port and map it - ProcessorInputPort processorInputPort = edits - .createProcessorInputPort(processor, - activityPort.getName(), activityPort.getDepth()); - editList.add(edits.getAddProcessorInputPortEdit(processor, - processorInputPort)); - editList.add(edits.getAddActivityInputPortMappingEdit(activity, - activityPort.getName(), activityPort.getName())); - input = processorInputPort; - } - return input; - } - - private EventForwardingOutputPort getSourcePort( - net.sf.taverna.t2.workflowmodel.Processor processor, - Activity<?> activity, String portName, List<Edit<?>> editList) { - OutputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools - .getActivityOutputPort(activity, portName); - // check if processor port exists - EventForwardingOutputPort output = net.sf.taverna.t2.workflowmodel.utils.Tools - .getProcessorOutputPort(processor, activity, activityPort); - if (output == null) { - // port doesn't exist so create a processor port and map it - ProcessorOutputPort processorOutputPort = edits - .createProcessorOutputPort(processor, activityPort - .getName(), activityPort.getDepth(), activityPort - .getGranularDepth()); - editList.add(edits.getAddProcessorOutputPortEdit(processor, - processorOutputPort)); - editList.add(edits.getAddActivityOutputPortMappingEdit(activity, - activityPort.getName(), activityPort.getName())); - output = processorOutputPort; - } - return output; - } - -}