format as array

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/84b42425
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/tree/84b42425
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/diff/84b42425

Branch: refs/heads/cwl-browse
Commit: 84b4242569d5a986db3b96238895def6010c0436
Parents: cabca1d
Author: ThilinaManamgoda <[email protected]>
Authored: Mon Jun 20 23:50:49 2016 +0530
Committer: ThilinaManamgoda <[email protected]>
Committed: Mon Jun 20 23:50:49 2016 +0530

----------------------------------------------------------------------
 .../CWLFiles/customtool1.cwl                    |  1 +
 .../taverna/cwl/ui/view/CwlContextualView.java  | 71 +++++++++++---------
 .../org/apache/taverna/cwl/CwlDumyActivity.java | 57 +++++++++-------
 .../java/org/apache/taverna/cwl/PortDetail.java | 11 ++-
 4 files changed, 82 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/84b42425/taverna-cwl-activity-ui/CWLFiles/customtool1.cwl
----------------------------------------------------------------------
diff --git a/taverna-cwl-activity-ui/CWLFiles/customtool1.cwl 
b/taverna-cwl-activity-ui/CWLFiles/customtool1.cwl
index 5d580fd..8ead5e4 100644
--- a/taverna-cwl-activity-ui/CWLFiles/customtool1.cwl
+++ b/taverna-cwl-activity-ui/CWLFiles/customtool1.cwl
@@ -56,6 +56,7 @@ outputs:
     type: String
     label: output 2 testing label
     description: this is a short description of output 2
+    format: ["edam:format_2323", just a string]
     
 label: This is a short description of the tool
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/84b42425/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
index 0eb4484..2e87493 100644
--- 
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
@@ -19,6 +19,7 @@ package org.apache.taverna.cwl.ui.view;
 import java.awt.BorderLayout;
 import java.awt.FlowLayout;
 import java.awt.Frame;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 import javax.swing.Action;
@@ -127,29 +128,13 @@ public class CwlContextualView extends 
HTMLBasedActivityContextualView<CwlActivi
                summery += "<tr><th colspan='2' align='left'>Inputs</th></tr>";
 
                HashMap<String, PortDetail> inputs = 
activity.getProcessedInputs();
+
                if (inputs != null && !inputs.isEmpty())
                        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.getLabel() != null) {
-                                       summery += "<tr><td  align ='left' 
colspan ='2'>Label: " + detail.getLabel() + "</td></tr>";
-                               }
-                               
-                               if (detail.getDescription() != null) {
 
-                                       summery = paragraphToHtml(summery, 
detail.getDescription());
+                               PortDetail detail = inputs.get(id);
 
-                               }
-                               
-                               if (detail.getFormat() != null) {
-                                       summery += "<tr><td  align ='left' 
colspan ='2'>Format: " + detail.getFormat() + "</td></tr>";
-                               }
-                               
-                               // putting a space
-                               summery += "<tr></tr>";
+                               summery = extractSummery(summery, id, detail);
                        }
 
                summery += "<tr><th colspan='2' align='left'>Outputs</th></tr>";
@@ -161,24 +146,46 @@ public class CwlContextualView extends 
HTMLBasedActivityContextualView<CwlActivi
 
                                PortDetail detail = outPuts.get(id);
 
-                               summery += "<tr align='left'><td> ID: " + id + 
" </td><td>Depth: " + detail.getDepth() + "</td></tr>";
+                               summery = extractSummery(summery, id, detail);
+                       }
+               summery += "</table>";
+               return summery;
+       }
 
-                               if (detail.getLabel() != null) {
-                                       summery += "<tr><td  align ='left' 
colspan ='2'>Label: " + detail.getLabel() + "</td></tr>";
-                               }
+       private String extractSummery(String summery, String id, PortDetail 
detail) {
 
-                               if (detail.getDescription() != null) {
-                                       summery = paragraphToHtml(summery, 
detail.getDescription());
-                               }
+               summery += "<tr align='left'><td> ID: " + id + " 
</td><td>Depth: " + detail.getDepth() + "</td></tr>";
 
-                               if (detail.getFormat() != null) {
-                                       summery += "<tr><td  align ='left' 
colspan ='2'>Format: " + detail.getFormat() + "</td></tr>";
-                               }
+               if (detail.getLabel() != null) {
+                       summery += "<tr><td  align ='left' colspan ='2'>Label: 
" + detail.getLabel() + "</td></tr>";
+               }
+
+               if (detail.getDescription() != null) {
+
+                       summery = paragraphToHtml(summery, 
detail.getDescription());
+
+               }
+
+               if (detail.getFormat() != null) {
+                       summery += "<tr><td  align ='left' colspan ='2'>Format: 
";
+                       ArrayList<String> formats = detail.getFormat();
 
-                               summery += "<tr></tr>";
+                       int Size = formats.size();
+
+                       if (Size == 1) {
+                               // single format
+                               summery += formats.get(0);
+                       } else {
+
+                               // array of formats
+                               for (int i = 0; i < (Size - 1); i++) {
+                                       summery += formats.get(i) + ", ";
+                               }
+                               summery += formats.get(Size - 1);
                        }
-               summery += "</table>";
+                       summery += "</td></tr>";
+               }
+               summery += "<tr></tr>";
                return summery;
        }
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/84b42425/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 40f4f9f..8e8383a 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> {
 
@@ -208,34 +209,44 @@ public class CwlDumyActivity extends 
AbstractAsynchronousActivity<CwlActivityCon
        private void extractFormat(Map input, PortDetail detail) {
                if (input != null)
                        if (input.containsKey(FORMAT)) {
-                               String formatInfo = 
input.get(FORMAT).toString();
-
-                               if (formatInfo.startsWith(EXPRESSSION)) {
-
-                                       detail.setFormat(formatInfo);
-                               } else if (formatInfo.contains(COLON)) {
-
-                                       String format[] = 
formatInfo.split(COLON);
-                                       String namespaceKey = format[0];
-                                       String urlAppned = format[1];
-                                       
-                                       if (!nameSpace.isEmpty()) {
-                                               if 
(nameSpace.containsKey(namespaceKey))
-                                                       
detail.setFormat(nameSpace.get(namespaceKey) + urlAppned);
-                                               else
-                                                       //Can't figure out the 
format  defined
-                                                       
detail.setFormat(formatInfo);
-                                       } else {
-                                               //Can't figure out the format  
defined
-                                               detail.setFormat(formatInfo);
+
+                               Object formatInfo = input.get(FORMAT);
+
+                               ArrayList<String> format = new ArrayList<>();
+                               detail.setFormat(format);
+
+                               if (formatInfo.getClass() == String.class) {
+
+                                       
extractThisFormat(formatInfo.toString(), detail);
+                               } else if (formatInfo.getClass() == 
ArrayList.class) {
+                                       for (Object eachFormat : (ArrayList) 
formatInfo) {
+                                               
extractThisFormat(eachFormat.toString(), detail);
                                        }
-                               } else {
-                                       //Can't figure out the format  defined
-                                       detail.setFormat(formatInfo);
                                }
 
                        }
        }
+       private void extractThisFormat(String formatInfoString, PortDetail 
detail) {
+               if (formatInfoString.startsWith("$")) {
+
+                        detail.addFormat(formatInfoString);
+               } else if (formatInfoString.contains(":")) {
+                       String format[] = formatInfoString.split(":");
+                       String namespaceKey = format[0];
+                       String urlAppednd = format[1];
+                       if (!nameSpace.isEmpty()) {
+                               if (nameSpace.containsKey(namespaceKey))
+                                       
detail.addFormat(nameSpace.get(namespaceKey) + urlAppednd);
+                               else
+
+                                       detail.addFormat(formatInfoString);
+                       } else {
+                                detail.addFormat(formatInfoString);
+                       }
+               } else {
+                        detail.addFormat(formatInfoString);
+               }
+       }
 
        @Override
        public void executeAsynch(Map<String, T2Reference> arg0, 
AsynchronousActivityCallback arg1) {

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/84b42425/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
index 18ab918..aed5b05 100644
--- 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
@@ -16,6 +16,8 @@
  
*******************************************************************************/
 package org.apache.taverna.cwl;
 
+import java.util.ArrayList;
+
 public class PortDetail {
 
        
@@ -23,7 +25,7 @@ public class PortDetail {
        private int depth;
        private String description;
        private String label;
-       private String format;
+       private ArrayList<String> format;
        public int getDepth() {
                return depth;
        }
@@ -42,12 +44,15 @@ public class PortDetail {
        public void setLabel(String label) {
                this.label = label;
        }
-       public String getFormat() {
+       public ArrayList<String> getFormat() {
                return format;
        }
-       public void setFormat(String format) {
+       public void setFormat(ArrayList<String> format) {
                this.format = format;
        }
        
+       public void addFormat(String format){
+               this.format.add(format);
+       }
        
 }

Reply via email to