Repository: incubator-taverna-common-activities Updated Branches: refs/heads/cwl-browse 146c84191 -> f563c8d77
new description panal added Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/commit/63e2c6f4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/tree/63e2c6f4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/diff/63e2c6f4 Branch: refs/heads/cwl-browse Commit: 63e2c6f4e530f592aea99ce77d5e19f19a59cd1f Parents: 146c841 Author: ThilinaManamgoda <[email protected]> Authored: Fri Jun 10 23:08:43 2016 +0530 Committer: ThilinaManamgoda <[email protected]> Committed: Fri Jun 10 23:08:43 2016 +0530 ---------------------------------------------------------------------- .../cwl/ui/serviceprovider/CwlServiceDesc.java | 5 +- .../taverna/cwl/ui/serviceprovider/Testing.java | 17 ++- .../ui/view/CwlActivityContextViewFactory.java | 20 +++ .../taverna/cwl/ui/view/CwlContextualView.java | 129 +++++++++++++++++++ .../cwl/CwlActivityConfigurationBean.java | 10 +- .../org/apache/taverna/cwl/CwlDumyActivity.java | 57 +++++--- .../java/org/apache/taverna/cwl/PortDetail.java | 23 ++++ 7 files changed, 241 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/63e2c6f4/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceDesc.java ---------------------------------------------------------------------- diff --git a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceDesc.java b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceDesc.java index 07c958b..54934f1 100644 --- a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceDesc.java +++ b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceDesc.java @@ -35,8 +35,8 @@ public class CwlServiceDesc extends ServiceDescription<CwlActivityConfigurationB @Override public String getDescription() { String description = (String) cwlConfiguration.get(DESCRIPTION); - - if (description == null) + //see whether description is too long + if (description == null || (description.length()>40)) return ""; else return description; @@ -55,6 +55,7 @@ public class CwlServiceDesc extends ServiceDescription<CwlActivityConfigurationB // Creating the CWL configuration bean CwlActivityConfigurationBean configurationBean = new CwlActivityConfigurationBean(); configurationBean.setCwlConfigurations(cwlConfiguration); + configurationBean.setToolName(toolName); return configurationBean; } http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/63e2c6f4/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/Testing.java ---------------------------------------------------------------------- diff --git a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/Testing.java b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/Testing.java index 92deb34..ef33834 100644 --- a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/Testing.java +++ b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/Testing.java @@ -29,7 +29,7 @@ import org.apache.taverna.cwl.CwlActivityConfigurationBean; import org.yaml.snakeyaml.Yaml; public class Testing { - private static final File cwlFilesLocation = new File("CWLFiles"); + private static final File cwlFilesLocation = new File("/home/maanadev/cwlToolsTesting"); private static final String INPUTS = "inputs"; private static final String ID = "id"; private static final String TYPE = "type"; @@ -72,7 +72,20 @@ public class Testing { // // // } - +public static void main(String[] args) { + + File[] cwlFiles = getCwlFiles(); + + Map cwlFile = null; + // Load the CWL file using SnakeYaml lib + Yaml cwlReader = new Yaml(); + try { + cwlFile = (Map) cwlReader.load(new FileInputStream(cwlFiles[0])); + System.out.println(cwlFile.get("description")); + }catch(Exception e){ + + } +} private static HashMap<String, Integer> processInputs(Map cwlFile) { HashMap<String, Integer> result = new HashMap<>(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/63e2c6f4/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactory.java ---------------------------------------------------------------------- diff --git a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactory.java b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactory.java new file mode 100644 index 0000000..31c3bc8 --- /dev/null +++ b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactory.java @@ -0,0 +1,20 @@ +package org.apache.taverna.cwl.ui.view; + +import java.util.Arrays; +import java.util.List; + +import org.apache.taverna.cwl.CwlDumyActivity; + +import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView; +import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory; + +public class CwlActivityContextViewFactory implements ContextualViewFactory<CwlDumyActivity> { + + public boolean canHandle(Object selection) { + return selection instanceof CwlDumyActivity; + } + + public List<ContextualView> getViews(CwlDumyActivity selection) { + return Arrays.<ContextualView> asList(new CwlContextualView(selection)); + } +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/63e2c6f4/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlContextualView.java ---------------------------------------------------------------------- diff --git a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlContextualView.java b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlContextualView.java new file mode 100644 index 0000000..ae4936f --- /dev/null +++ b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlContextualView.java @@ -0,0 +1,129 @@ +package org.apache.taverna.cwl.ui.view; + +import java.awt.BorderLayout; +import java.awt.FlowLayout; +import java.awt.Frame; +import java.util.HashMap; +import java.util.Map; +import javax.swing.Action; +import javax.swing.JComponent; +import javax.swing.JPanel; +import org.apache.taverna.cwl.CwlActivityConfigurationBean; +import org.apache.taverna.cwl.CwlDumyActivity; +import org.apache.taverna.cwl.PortDetail; +import net.sf.taverna.t2.workbench.ui.actions.activity.HTMLBasedActivityContextualView; +import net.sf.taverna.t2.workflowmodel.processor.activity.Activity; + +public class CwlContextualView extends HTMLBasedActivityContextualView<CwlActivityConfigurationBean> { + + private static final String DESCRIPTION = "description"; + + private final CwlActivityConfigurationBean configurationBean; + private final CwlDumyActivity activity; + + public CwlContextualView(CwlDumyActivity activity) { + super((Activity) activity); + this.activity = activity; + this.configurationBean = activity.getConfiguration(); + super.initView(); + } + + @Override + public void initView() { + } + + @Override + public JComponent getMainFrame() { + final JComponent mainFrame = super.getMainFrame(); + JPanel flowPanel = new JPanel(new FlowLayout()); + + mainFrame.add(flowPanel, BorderLayout.SOUTH); + return mainFrame; + } + + @Override + public String getViewTitle() { + return configurationBean.getToolName(); + } + + /** + * Typically called when the activity configuration has changed. + */ + @Override + public void refreshView() { + } + + /** + * View position hint + */ + @Override + public int getPreferredPosition() { + return 100; + } + + @Override + public Action getConfigureAction(final Frame owner) { + return null; + } + + private String paragraphToHtml(String summery, String paragraph) { + + summery += "<tr><td colspan='2' align='left'>"; + + for (String line : paragraph.split("[\n|\r]")) + summery += "<p>" + line + "</p>"; + + summery += "</td></tr>"; + + return summery; + } + + @Override + protected String getRawTableRowsHtml() { + String summery = ""; + + Map cwlFile = configurationBean.getCwlConfigurations(); + String description = ""; + + if (cwlFile.containsKey(DESCRIPTION)) { + + description = (String) cwlFile.get(DESCRIPTION); + summery = paragraphToHtml(summery, description); + + } + + summery += "<tr><th colspan='2' align='left'>Inputs</th></tr>"; + + HashMap<String, PortDetail> inputs = activity.getProcessedInputs(); + if (inputs != null) + for (String id : inputs.keySet()) { + PortDetail detail = inputs.get(id); + summery += "<tr align='left'><td> ID: " + id + " </td><td>Depth: " + detail.getDepth() + "</td></tr>"; + + if (detail.getDescription() != null) { + + summery = paragraphToHtml(summery, detail.getDescription()); + + } + summery += "<tr></tr>"; + } + + summery += "<tr><th colspan='2' align='left'>Outputs</th></tr>"; + + HashMap<String, PortDetail> outPuts = activity.getProcessedOutputs(); + + if (outPuts != null) + for (String id : outPuts.keySet()) { + PortDetail detail = outPuts.get(id); + summery += "<tr align='left'><td> ID: " + id + " </td><td>Depth: " + detail.getDepth() + "</td></tr>"; + + if (detail.getDescription() != null) { + summery = paragraphToHtml(summery, detail.getDescription()); + } + summery += "<tr></tr>"; + } + + return summery; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/63e2c6f4/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlActivityConfigurationBean.java ---------------------------------------------------------------------- diff --git a/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlActivityConfigurationBean.java b/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlActivityConfigurationBean.java index 80a73c8..718f3e8 100644 --- a/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlActivityConfigurationBean.java +++ b/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlActivityConfigurationBean.java @@ -22,7 +22,7 @@ public class CwlActivityConfigurationBean { //This class holds the object which is produced by the ServiceProvider and contains the configurations that are need for the CWLActivity private Map cwlConfigurations; - + private String toolName; public Map getCwlConfigurations() { return cwlConfigurations; } @@ -30,4 +30,12 @@ public class CwlActivityConfigurationBean { public void setCwlConfigurations(Map cwlConfigurations) { this.cwlConfigurations = cwlConfigurations; } + + public String getToolName() { + return toolName; + } + + public void setToolName(String toolName) { + this.toolName = toolName; + } } http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/63e2c6f4/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlDumyActivity.java ---------------------------------------------------------------------- diff --git a/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlDumyActivity.java b/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlDumyActivity.java index 054824f..16ffbb8 100644 --- a/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlDumyActivity.java +++ b/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/CwlDumyActivity.java @@ -27,6 +27,7 @@ import org.apache.taverna.workflowmodel.processor.activity.ActivityConfiguration import org.apache.taverna.workflowmodel.processor.activity.AsynchronousActivity; import org.apache.taverna.workflowmodel.processor.activity.AsynchronousActivityCallback; + public class CwlDumyActivity extends AbstractAsynchronousActivity<CwlActivityConfigurationBean> implements AsynchronousActivity<CwlActivityConfigurationBean> { @@ -35,23 +36,42 @@ public class CwlDumyActivity extends AbstractAsynchronousActivity<CwlActivityCon private static final String ID = "id"; private static final String TYPE = "type"; private static final String ARRAY = "array"; - + private static final String DESCRIPTION = "description"; private static final int DEPTH_0 = 0; private static final int DEPTH_1 = 1; private static final int DEPTH_2 = 2; + private HashMap<String, PortDetail> processedInputs; + private HashMap<String, PortDetail> processedOutputs; + + + public HashMap<String, PortDetail> getProcessedInputs() { + return processedInputs; + } + + public void setProcessedInputs(HashMap<String, PortDetail> processedInputs) { + this.processedInputs = processedInputs; + } + + public HashMap<String, PortDetail> getProcessedOutputs() { + return processedOutputs; + } + public void setProcessedOutputs(HashMap<String, PortDetail> processedOutputs) { + this.processedOutputs = processedOutputs; + } + + @Override public void configure(CwlActivityConfigurationBean configurationBean) throws ActivityConfigurationException { removeInputs(); removeOutputs(); Map cwlFile = configurationBean.getCwlConfigurations(); - HashMap<String, Integer> processedInputs; - HashMap<String, Integer> processedOutputs; + if (cwlFile != null) { processedInputs = processInputs(cwlFile); for (String inputId : processedInputs.keySet()) { - int depth = processedInputs.get(inputId); + int depth = processedInputs.get(inputId).getDepth(); if (depth == DEPTH_0) addInput(inputId, DEPTH_0, true, null, String.class); else if (depth == DEPTH_1) @@ -60,7 +80,7 @@ public class CwlDumyActivity extends AbstractAsynchronousActivity<CwlActivityCon } processedOutputs = processOutputs(cwlFile); for (String inputId : processedOutputs.keySet()) { - int depth = processedOutputs.get(inputId); + int depth = processedOutputs.get(inputId).getDepth(); if (depth == DEPTH_0) addOutput(inputId, DEPTH_0); else if (depth == DEPTH_1) @@ -71,35 +91,43 @@ public class CwlDumyActivity extends AbstractAsynchronousActivity<CwlActivityCon } - private HashMap<String, Integer> processOutputs(Map cwlFile) { + private HashMap<String, PortDetail> processOutputs(Map cwlFile) { return process(cwlFile.get(OUTPUTS)); } - private HashMap<String, Integer> processInputs(Map cwlFile) { + private HashMap<String, PortDetail> processInputs(Map cwlFile) { return process(cwlFile.get(INPUTS)); } - private HashMap<String, Integer> process(Object inputs) { + private HashMap<String, PortDetail> process(Object inputs) { - HashMap<String, Integer> result = new HashMap<>(); + HashMap<String, PortDetail> result = new HashMap<>(); if (inputs.getClass() == ArrayList.class) { - + PortDetail detail = new PortDetail(); for (Map input : (ArrayList<Map>) inputs) { String currentInputId = (String) input.get(ID); Object typeConfigurations; - + if (input.containsKey(DESCRIPTION)) { + detail.setDescription((String) input.get(DESCRIPTION)); + } else { + detail.setDescription(null); + } try { typeConfigurations = input.get(TYPE); // if type :single argument if (typeConfigurations.getClass() == String.class) { - result.put(currentInputId, DEPTH_0); + detail.setDepth(DEPTH_0); + + result.put(currentInputId, detail); // type : defined as another map which contains type: } else if (typeConfigurations.getClass() == LinkedHashMap.class) { String inputType = (String) ((Map) typeConfigurations).get(TYPE); - if (inputType.equals(ARRAY)) - result.put(currentInputId, DEPTH_1); + if (inputType.equals(ARRAY)) { + detail.setDepth(DEPTH_1); + result.put(currentInputId, detail); + } } } catch (ClassCastException e) { @@ -108,7 +136,6 @@ public class CwlDumyActivity extends AbstractAsynchronousActivity<CwlActivityCon } } - // see whether it's an EXPRESSION } else if (inputs.getClass() == LinkedHashMap.class) { for (Object parameter : ((Map) inputs).keySet()) { if (parameter.toString().startsWith("$")) http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/63e2c6f4/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/PortDetail.java ---------------------------------------------------------------------- diff --git a/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/PortDetail.java b/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/PortDetail.java new file mode 100644 index 0000000..f42d488 --- /dev/null +++ b/taverna-cwl-activity/src/main/java/org/apache/taverna/cwl/PortDetail.java @@ -0,0 +1,23 @@ +package org.apache.taverna.cwl; + +public class PortDetail { + + + + private int depth; + private String description; + public int getDepth() { + return depth; + } + public void setDepth(int depth) { + this.depth = depth; + } + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + + +}
