+ load : function(jcrNode){\r
+ // Load full XML (deep) \r
+ //jcrNode.load(-1);\r
+ var fakeNode = new org.argeo.jcr.ria.model.Node(jcrNode.getName(), jcrNode.getNodeProvider(), true);\r
+ fakeNode.setPath(jcrNode.getPath());\r
+ fakeNode.addListener("changeLoadState", function(event){\r
+ if(event.getData() == "loaded"){\r
+ var xmlString = fakeNode.toXmlString(true);\r
+ this._loadXmlString(xmlString);\r
+ }\r
+ }, this);\r
+ fakeNode.load(-1);\r
+ },\r
+ \r
+ _loadXmlString : function(xmlString){\r
+ var TAG_START_PATTERN = new RegExp("<([0-9a-zA-Z\.:]+)([^>]*)>", "gi");\r
+ var TAG_END_PATTERN = new RegExp("</([0-9a-zA-Z\.:]+)>", "gi");\r
+ var TAG_CLOSE_PATTERN = new RegExp("(/?>)", "gi");\r
+ var TAG_ATTRIBUTE = new RegExp("\\s([0-9a-zA-Z:_]+)\\=\"([^\"]*)\"", "gi");\r
+ // Not implemented yet\r
+ var TAG_COMMENT = new RegExp("(<!--.*-->)", "gi");\r
+ var TAG_CDATA_START = new RegExp("(\\<!\\[CDATA\\[).*", "gi");\r
+ var TAG_CDATA_END = new RegExp(".*(]]>)", "gi");\r
+ \r
+ xmlString = xmlString.replace(TAG_START_PATTERN, 'xml_div_begin<xml_tagname_begin$1xml_tagname_end$2>');\r
+ xmlString = xmlString.replace(TAG_END_PATTERN, '</xml_tagname_begin$1xml_tagname_end>xml_div_end');\r
+ xmlString = xmlString.replace(TAG_CLOSE_PATTERN, '>');\r
+ \r
+ xmlString = xmlString.replace(TAG_ATTRIBUTE, ' xml_attname_begin$1xml_attname_end="xml_attvalue_begin$2xml_attvalue_end"');\r
+ \r
+ //xmlString = qx.xml.String.escape(xmlString);\r
+ xmlString = xmlString.replace(new RegExp("(xml_div_begin)", "g"), '<div style="padding:1px;line-height:17px;padding-left:15px;">');\r
+ xmlString = xmlString.replace(new RegExp("(xml_div_end)", "g"), '</div>');\r
+ xmlString = xmlString.replace(new RegExp("(xml_tagname_begin)", "g"), '<b style="color:rgb(63,127,127);">');\r
+ xmlString = xmlString.replace(new RegExp("(xml_tagname_end)", "g"), '</b>');\r
+ xmlString = xmlString.replace(new RegExp("(xml_attname_begin)", "g"), '<b>');\r
+ xmlString = xmlString.replace(new RegExp("(xml_attname_end)", "g"), '</b>');\r
+ xmlString = xmlString.replace(new RegExp("(xml_attvalue_begin)", "g"), '<span style="color:rgb(0,0,255)">');\r
+ xmlString = xmlString.replace(new RegExp("(xml_attvalue_end)", "g"), '</span>');\r
+ xmlString = '<div style="margin-left:-10px;">' + xmlString + '</div>';\r
+ this.htmlPane.setHtml(xmlString);\r
+ var call = new qx.util.DeferredCall(function(){\r
+ var htmlDom = this.htmlPane.getContentElement().getDomElement();\r
+ var spans = qx.bom.Selector.query("span", htmlDom);\r
+ for(var i=0;i<spans.length;i++){\r
+ var oThis = this;\r
+ spans[i].onclick = function(){oThis._setAttributesSpanEditable(this)};\r