From 789f346387b79212e6ac4974f46cbe542c4aba55 Mon Sep 17 00:00:00 2001 From: Varun Ratnakar Date: Mon, 19 Jan 2015 12:21:04 +0000 Subject: [PATCH] Adding derivedFrom property for variables too --- .../planner/api/impl/kb/WorkflowGenerationKB.java | 2 ++ .../workflow/template/api/impl/kb/TemplateKB.java | 8 ++++++++ .../workflow/template/classes/variables/Variable.java | 10 ++++++++++ portal/src/main/webapp/js/gui/template/template.js | 4 ++++ 4 files changed, 24 insertions(+) diff --git a/planner/src/main/java/edu/isi/wings/planner/api/impl/kb/WorkflowGenerationKB.java b/planner/src/main/java/edu/isi/wings/planner/api/impl/kb/WorkflowGenerationKB.java index 174ffc78..17b65ceb 100644 --- a/planner/src/main/java/edu/isi/wings/planner/api/impl/kb/WorkflowGenerationKB.java +++ b/planner/src/main/java/edu/isi/wings/planner/api/impl/kb/WorkflowGenerationKB.java @@ -1394,6 +1394,7 @@ public Template getExpandedTemplate(Template template) { // Input Variable doesn't exist. Create a new variable and link newVariable = curt.addVariable(ns + variable.getName(), variable.getVariableType()); newVariable.setBinding(cb); + newVariable.setDerivedFrom(variable.getID()); newVariables.put(varkey, newVariable); // Add new input link @@ -1450,6 +1451,7 @@ public Template getExpandedTemplate(Template template) { // Create a new variable newVariable = curt.addVariable(ns + variable.getName(), variable.getVariableType()); newVariable.setBinding(cb); + newVariable.setDerivedFrom(variable.getID()); newVariables.put(varkey, newVariable); } diff --git a/planner/src/main/java/edu/isi/wings/workflow/template/api/impl/kb/TemplateKB.java b/planner/src/main/java/edu/isi/wings/workflow/template/api/impl/kb/TemplateKB.java index 98388b54..d4c10038 100644 --- a/planner/src/main/java/edu/isi/wings/workflow/template/api/impl/kb/TemplateKB.java +++ b/planner/src/main/java/edu/isi/wings/workflow/template/api/impl/kb/TemplateKB.java @@ -534,6 +534,10 @@ else if(verobj.getValue().getClass() == Integer.class) KBObject autoFill = kb.getPropertyValue(varObj, pmap.get("autoFill")); if(autoFill != null && (Boolean)autoFill.getValue()) var.setAutoFill(true); + + KBObject dvar = kb.getPropertyValue(varObj, propertyObjMap.get("derivedFrom")); + if(dvar != null) + var.setDerivedFrom(dvar.getID()); varMap.put(varObj.getID(), var); } } @@ -1711,6 +1715,10 @@ private KBAPI serializeIntoKB(KBAPI tkb, boolean subtemplate) { ontologyFactory.getDataObject(true)); } } + if(v.getDerivedFrom() != null) + tkb.addPropertyValue(vobj, propertyObjMap.get("derivedFrom"), + tkb.getResource(v.getDerivedFrom())); + if (vobj != null && v.getComment() != null) { tkb.setComment(vobj, v.getComment()); } diff --git a/planner/src/main/java/edu/isi/wings/workflow/template/classes/variables/Variable.java b/planner/src/main/java/edu/isi/wings/workflow/template/classes/variables/Variable.java index 3dfeb5ed..ff6b2fa9 100644 --- a/planner/src/main/java/edu/isi/wings/workflow/template/classes/variables/Variable.java +++ b/planner/src/main/java/edu/isi/wings/workflow/template/classes/variables/Variable.java @@ -29,6 +29,8 @@ public class Variable extends URIEntity { private boolean autofill; private boolean breakpoint; + private String derivedFrom; + public Variable(String id, short type) { super(id); this.type = type; @@ -89,4 +91,12 @@ public void setBreakpoint(boolean breakpoint) { public String toString() { return getID() + (binding != null ? " (" + binding.toString() + ")" : ""); } + + public String getDerivedFrom() { + return derivedFrom; + } + + public void setDerivedFrom(String derivedFrom) { + this.derivedFrom = derivedFrom; + } } diff --git a/portal/src/main/webapp/js/gui/template/template.js b/portal/src/main/webapp/js/gui/template/template.js index d724eda7..4714173d 100644 --- a/portal/src/main/webapp/js/gui/template/template.js +++ b/portal/src/main/webapp/js/gui/template/template.js @@ -99,10 +99,13 @@ Template.prototype.initialize = function() { var type = variable.type == 1 ? 'DATA' : 'PARAM'; this.variables[variable.id] = new Variable(this, variable.id, getLocalName(variable.id), parseInt(xy.x) + 0.5, parseInt(xy.y) + 0.5, type); + if(xy.center) this.variables[variable.id].centercoords = true; this.variables[variable.id].setBinding(variable.binding); + this.variables[variable.id].derivedFrom = variable.derivedFrom; + // Set input/output role dimensionality var irole = this.store.inputRoles[variable.id]; if(irole) @@ -268,6 +271,7 @@ Template.prototype.saveToStore = function(showFullPorts) { type : v.type == 'DATA' ? 1 : 2, binding : v.binding, inactive : v.inactive, + derivedFrom : v.derivedFrom, //FIXME: unknown isn't currently stored on server unknown : v.unknown, autofill : v.autofill,