X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.webapp%2Fsrc%2Fmain%2Fwebapp%2Fargeo-ria-lib%2Fslc%2Fclass%2Forg%2Fargeo%2Fslc%2Fria%2Fexecution%2FFlow.js;h=017599ee6f2ce64999faf001ef5449a81458d9e4;hb=68ed7317e5fefb71258b552c1fb2ccd1c1f8cbc5;hp=ed23ff04a158a2a4ad562fcb82ce30f82bb4d95d;hpb=f3b5fa3d8f79c21748ddc88e8ad5062f4a413369;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/Flow.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/Flow.js index ed23ff04a..017599ee6 100644 --- a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/Flow.js +++ b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/Flow.js @@ -13,6 +13,13 @@ qx.Class.define("org.argeo.slc.ria.execution.Flow", { check : "String", init : "" }, + /** + * An optional path describing this flow + */ + path : { + check : "String", + nullable : true + }, /** * Name of the associated spec, to be found in the module */ @@ -25,6 +32,12 @@ qx.Class.define("org.argeo.slc.ria.execution.Flow", { executionSpec : { check : "org.argeo.slc.ria.execution.Spec" }, + /** + * The values to init the ExecutionSpec + */ + values : { + check : "Node" + }, /** * Castor representation of the object */ @@ -34,12 +47,27 @@ qx.Class.define("org.argeo.slc.ria.execution.Flow", { }, statics : { + /** + * Xpath to the name + */ XPATH_NAME : "@name", + /** + * XPath to the ExecutionSpec name + */ XPATH_EXEC_SPEC_NAME : "@executionSpec", - XPATH_VALUES : "slc:values" + /** + * XPath to the values + */ + XPATH_VALUES : "slc:values", + /** + * An optional hierarchical path + */ + XPATH_PATH : "@path" }, - construct : function(){}, + construct : function(){ + this.base(arguments); + }, members : { /** @@ -49,9 +77,28 @@ qx.Class.define("org.argeo.slc.ria.execution.Flow", { _applyXmlNode : function(xmlNode){ this.set({ name : org.argeo.ria.util.Element.getSingleNodeText(xmlNode, this.self(arguments).XPATH_NAME), + path : org.argeo.ria.util.Element.getSingleNodeText(xmlNode, this.self(arguments).XPATH_PATH), executionSpecName : org.argeo.ria.util.Element.getSingleNodeText(xmlNode, this.self(arguments).XPATH_EXEC_SPEC_NAME) }); - } + var values = org.argeo.ria.util.Element.selectNodes(xmlNode, this.self(arguments).XPATH_VALUES); + this.setValues(values[0]); + }, + /** + * Get a given value inside the values map + * @param key {String} The key of the value + * @param specType {String} Expected type (currently "primitive" and "ref" are supported) + * @param specSubType {String} Expected subtype (depends on the type) + * @return {String} Value if it is set. + */ + getValue: function(key, specType, specSubType){ + var xpath; + if(specType == "primitive"){ + xpath = 'slc:value[@key="'+key+'"]/slc:primitive-value[@type="'+specSubType+'"]'; + }else if(specType == "ref"){ + xpath = 'slc:value[@key="'+key+'"]/slc:ref-value/slc:label'; + } + return org.argeo.ria.util.Element.getSingleNodeText(this.getValues(), xpath); + } } }); \ No newline at end of file