X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Forg.argeo.slc.ria%2Fsrc%2Fargeo-ria-lib%2Fjcr%2Fclass%2Forg%2Fargeo%2Fjcr%2Fria%2Fviews%2FXmlNodeEditor.js;h=28a2bc5441ad0a607a78d1b5cda0d284631e61c2;hb=d44228348e3af173e5fa2ad33853e64acb0b59ca;hp=2c1b25955d3e9bfd829a71eaee349529661188ac;hpb=8aecefe809f016bae788bc009a3f0ae45fb2016b;p=gpl%2Fargeo-slc.git diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/XmlNodeEditor.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/XmlNodeEditor.js index 2c1b25955..28a2bc544 100644 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/XmlNodeEditor.js +++ b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/XmlNodeEditor.js @@ -21,15 +21,14 @@ qx.Class.define("org.argeo.jcr.ria.views.XmlNodeEditor", { instanceLabel : { init:"Xml Editor", event : "changeInstanceLabel" + }, + dataModel : { + } }, construct : function(){ this.base(arguments); - this.setLayout(new qx.ui.layout.VBox()); - this.htmlPane = new qx.ui.embed.Html(); - this.htmlPane.setOverflow("auto", "auto"); - this.add(this.htmlPane, {flex:1}); }, members : { @@ -41,17 +40,29 @@ qx.Class.define("org.argeo.jcr.ria.views.XmlNodeEditor", { * @param data {Mixed} Any object or data passed by the initiator of the view * @return {Boolean} */ - init : function(viewPane, data){ + init : function(viewPane, dataModel){ this.setViewSelection(new org.argeo.ria.components.ViewSelection(viewPane.getViewId())); + this.setLayout(new qx.ui.layout.VBox()); + this.setDataModel(dataModel); + + this.input = new qx.ui.form.TextField(); + this.add(this.input); + + this._attachInputToDM(); + + this.htmlPane = new qx.ui.embed.Html(); + this.htmlPane.setOverflow("auto", "auto"); + this.add(this.htmlPane, {flex:1}); + }, /** * The implementation should contain the real data loading (i.o. query...) * @return {Boolean} */ - load : function(rootNode){ - rootNode.load(); - rootNode.addListener("changeLoadState", function(){ - var xmlString = rootNode.toXmlString(true); + load : function(){ + var dataModel = this.getDataModel(); + dataModel.addListener("changeContextNode", function(event){ + var xmlString = event.getData().toXmlString(true); var TAG_START_PATTERN = new RegExp("<([0-9a-zA-Z\.]+)([^>]*)>", "gi"); var TAG_END_PATTERN = new RegExp("", "gi"); var TAG_CLOSE_PATTERN = new RegExp("(/?>)", "gi"); @@ -68,7 +79,7 @@ qx.Class.define("org.argeo.jcr.ria.views.XmlNodeEditor", { xmlString = xmlString.replace(TAG_ATTRIBUTE, ' xml_attname_begin$1xml_attname_end="xml_attvalue_begin$2xml_attvalue_end"'); //xmlString = qx.xml.String.escape(xmlString); - xmlString = xmlString.replace(new RegExp("(xml_div_begin)", "g"), '
'); + xmlString = xmlString.replace(new RegExp("(xml_div_begin)", "g"), '
'); xmlString = xmlString.replace(new RegExp("(xml_div_end)", "g"), '
'); xmlString = xmlString.replace(new RegExp("(xml_tagname_begin)", "g"), ''); xmlString = xmlString.replace(new RegExp("(xml_tagname_end)", "g"), ''); @@ -78,8 +89,43 @@ qx.Class.define("org.argeo.jcr.ria.views.XmlNodeEditor", { xmlString = xmlString.replace(new RegExp("(xml_attvalue_end)", "g"), ''); xmlString = '
' + xmlString + '
'; this.htmlPane.setHtml(xmlString); + /* + var call = new qx.util.DeferredCall(function(){ + var htmlDom = this.htmlPane.getContentElement().getDomElement(); + var spans = qx.bom.Selector.query("span", htmlDom); + for(var i=0;i