]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/Value.js
git-svn-id: https://svn.argeo.org/slc/trunk@2380 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc
[gpl/argeo-slc.git] / org.argeo.slc.webapp / src / main / webapp / argeo-ria-lib / slc / class / org / argeo / slc / ria / execution / Value.js
index 1e7f861c0cbf04909553c82e6d5d3a5b0f5674ff..b5944a019ab09ac17b5d7309ecaa5ebdf1c9358d 100644 (file)
@@ -13,22 +13,40 @@ qx.Class.define("org.argeo.slc.ria.execution.Value", {
                        check : "String",\r
                        init : ""\r
                },\r
+               /**\r
+                * The type of this value, for the moment "primitive" and "ref" are supported \r
+                */\r
                specType : {\r
                        check : "String",\r
                        init : ""                       \r
                },\r
+               /**\r
+                * Subtype, depending on the "type". \r
+                */\r
                specSubType : {\r
                        check : "String"\r
                },\r
+               /**\r
+                * Whether it is a parameter or not \r
+                */\r
                parameter : {\r
                        check : "Boolean"\r
                },\r
+               /**\r
+                * Whether it is frozen on the server, i.e. disabled in the form \r
+                */\r
                frozen : {\r
                        check : "Boolean"\r
                },\r
+               /**\r
+                * Should not be editable nor seeable, thus hidden \r
+                */\r
                hidden : {\r
                        check : "Boolean"\r
                },\r
+               /**\r
+                * The real value \r
+                */\r
                value : {\r
                        nullable : true\r
                },\r
@@ -62,8 +80,8 @@ qx.Class.define("org.argeo.slc.ria.execution.Value", {
                                if(child.nodeName == "slc:primitive-spec-attribute"){\r
                                        this.setSpecType("primitive");\r
                                        this.setSpecSubType(org.argeo.ria.util.Element.getSingleNodeText(child, "@type"));\r
-                                       if(org.argeo.ria.util.Element.getSingleNodeText(child, "slc:value")){\r
-                                               this.setValue(org.argeo.ria.util.Element.getSingleNodeText(child, "slc:value"));\r
+                                       if(org.argeo.ria.util.Element.getSingleNodeText(child, ".")){\r
+                                               this.setValue(org.argeo.ria.util.Element.getSingleNodeText(child, "."));\r
                                        }\r
                                }else if(child.nodeName == "slc:ref-spec-attribute"){\r
                                        this.setSpecType("ref");\r
@@ -76,15 +94,35 @@ qx.Class.define("org.argeo.slc.ria.execution.Value", {
                                });                             \r
                        }\r
                },\r
+                               \r
+               /**\r
+                * Create an XML Representation of this value\r
+                * @return {String} The XML String\r
+                */\r
+               toAttributeXml : function(){\r
+                       var valueTag = '';\r
+                       var specAttribute = '';\r
+                       if(this.getSpecType() == "primitive"){\r
+                               valueTag =  (this.getValue()?this.getValue():'');\r
+                               specAttribute = '<slc:primitive-spec-attribute isParameter="'+(this.getParameter()?"true":"false")+'" isFrozen="'+(this.getFrozen()?"true":"false")+'" isHidden="'+(this.getHidden()?"true":"false")+'" type="'+this.getSpecSubType()+'">'+valueTag+'</slc:primitive-spec-attribute>';\r
+                       }else if(this.getSpecType() == "ref"){\r
+                               valueTag = (this.getValue()?'<slc:label>'+this.getValue()+'</slc:label>':'');\r
+                               specAttribute = '<slc:ref-spec-attribute isParameter="'+(this.getParameter()?"true":"false")+'" isFrozen="'+(this.getFrozen()?"true":"false")+'" isHidden="'+(this.getHidden()?"true":"false")+'" targetClassName="'+this.getSpecSubType()+'">'+valueTag+'</slc:ref-spec-attribute>';\r
+                       }\r
+                       return '<slc:value key="'+this.getKey()+'">'+specAttribute+'</slc:value>';\r
+               },\r
                \r
-               _applyXmlValue : function(xmlNode){\r
-                       var xpath;\r
+               toValueXml : function(){\r
+                       var valueTag = '';\r
+                       var specAttribute = '';\r
                        if(this.getSpecType() == "primitive"){\r
-                               xpath = "slc:primitive-value/slc:value";\r
+                               valueTag =  this.getValue();\r
+                               specAttribute = '<slc:primitive-value type="'+this.getSpecSubType()+'">'+valueTag+'</slc:primitive-value>';\r
                        }else if(this.getSpecType() == "ref"){\r
-                               xpath = "slc:ref-value/slc:label";\r
+                               valueTag = '<slc:label>'+this.getValue()+'</slc:label>';\r
+                               specAttribute = '<slc:ref-value >'+valueTag+'</slc:ref-value>';\r
                        }\r
-                       this.setValue(org.argeo.ria.util.Element.getSingleNodeText(xmlNode, xpath));\r
+                       return '<slc:value key="'+this.getKey()+'">'+specAttribute+'</slc:value>';                      \r
                }\r
        }       \r
        \r