*/\r
xmlSpecNode : {\r
apply : "_applyXmlSpecNode"\r
+ },\r
+ refList : {\r
+ check : "Array"\r
}\r
},\r
\r
},\r
\r
construct : function(){\r
- this.base(arguments);\r
+ this.base(arguments); \r
},\r
\r
members : { \r
if(child.nodeType != 1) continue;\r
if(child.nodeName == "slc:primitive-spec-attribute"){\r
this.setSpecType("primitive");\r
- this.setSpecSubType(org.argeo.ria.util.Element.getSingleNodeText(child, "@type"));\r
+ this.setSpecSubType(org.argeo.ria.util.Element.getSingleNodeText(child, "@type")||"");\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
- this.setSpecSubType(org.argeo.ria.util.Element.getSingleNodeText(child, "@targetClassName"));\r
+ this.setSpecSubType(org.argeo.ria.util.Element.getSingleNodeText(child, "@targetClassName")||"");\r
+ var choices = org.argeo.ria.util.Element.selectNodes(child, "slc:choices/slc:ref-value-choice");\r
+ var refList = []; \r
+ for(var k=0;k<choices.length;k++){\r
+ var choice = choices[k];\r
+ var name = org.argeo.ria.util.Element.getSingleNodeText(choice, "@name");\r
+ var description = org.argeo.ria.util.Element.getSingleNodeText(choice, "slc:description");\r
+ refList.push([name, (description||"")]);\r
+ }\r
+ this.setRefList(refList);\r
}\r
this.set({\r
parameter : (org.argeo.ria.util.Element.getSingleNodeText(child, "@isParameter")=="true"?true:false),\r
}); \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
+ \r
toValueXml : function(){\r
var valueTag = '';\r
var specAttribute = '';\r
valueTag = this.getValue();\r
specAttribute = '<slc:primitive-value type="'+this.getSpecSubType()+'">'+valueTag+'</slc:primitive-value>';\r
}else if(this.getSpecType() == "ref"){\r
- valueTag = '<slc:label>'+this.getValue()+'</slc:label>';\r
- specAttribute = '<slc:ref-value >'+valueTag+'</slc:ref-value>';\r
+ specAttribute = '<slc:ref-value ref="'+this.getValue()+'" type="beanName" />';\r
}\r
return '<slc:value key="'+this.getKey()+'">'+specAttribute+'</slc:value>'; \r
}\r