Fake inline editor in Xml viewer
authorCharles du Jeu <charles.dujeu@gmail.com>
Wed, 28 Apr 2010 16:17:36 +0000 (16:17 +0000)
committerCharles du Jeu <charles.dujeu@gmail.com>
Wed, 28 Apr 2010 16:17:36 +0000 (16:17 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@3515 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/JcrBrowser.js
server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/Node.js
server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/PlainXmlViewer.js
server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/TreeView.js

index 48191b259bf422ed0798467c4143deb640aa6ceb..0c01772d58e5021a4ae412c3c960514d4b0ad04b 100644 (file)
@@ -12,7 +12,18 @@ qx.Class.define("org.argeo.jcr.ria.JcrBrowser",
   \r
   construct : function(){\r
                this.base(arguments);\r
-               org.argeo.ria.util.Element.DEFAULT_NAMESPACE_MAP = {slc:"http://argeo.org/projects/slc/schemas"};\r
+               org.argeo.ria.util.Element.DEFAULT_NAMESPACE_MAP = \r
+               {\r
+                       slc:"http://argeo.org/projects/slc/schemas",\r
+                       fn:"http://www.w3.org/2005/xpath-functions", \r
+                       fn_old:"http://www.w3.org/2004/10/xpath-functions", \r
+                       xs:"http://www.w3.org/2001/XMLSchema" ,\r
+                       jcr:"http://www.jcp.org/jcr/1.0" ,\r
+                       mix:"http://www.jcp.org/jcr/mix/1.0", \r
+                       sv:"http://www.jcp.org/jcr/sv/1.0" ,\r
+                       rep:"internal" ,\r
+                       nt:"http://www.jcp.org/jcr/nt/1.0"\r
+               };\r
   },\r
   \r
   statics : {\r
index 3cf7e49647addb16811a7e027162b244884f0fa8..f8d59f7f76679fa1a25fa511ea73719daaf47a8a 100644 (file)
@@ -50,16 +50,13 @@ qx.Class.define("org.argeo.jcr.ria.model.Node", {
                        this.getParent().removeChild(this.getName());\r
                },\r
                \r
-               fromXmlString : function(xmlString){\r
-                       var domDocument = qx.xml.Document.fromString(xmlString);\r
-                       var root = domDocument.documentElement;\r
-                       this.fromDomElement(root);\r
-               },\r
-               \r
                fromDomElement : function(domElement){\r
                        if(domElement.nodeType != 1) return;\r
                        for(var i=0;i<domElement.attributes.length;i++){\r
                                var att = domElement.attributes[i];\r
+                               if(!this.itemIsRoot() && att.nodeName.substring(0,5) == "xmlns"){\r
+                                       continue;\r
+                               }\r
                                var property = new org.argeo.jcr.ria.model.Property(att.nodeName);\r
                                this.addProperty(property);\r
                                property.fromDomElement(att);\r
@@ -74,6 +71,12 @@ qx.Class.define("org.argeo.jcr.ria.model.Node", {
                        //this.setLoadState("loaded");\r
                },\r
                \r
+               fromXmlString : function(xmlString){\r
+                       var domDocument = qx.xml.Document.fromString(xmlString);\r
+                       var root = domDocument.documentElement;\r
+                       this.fromDomElement(root);\r
+               },\r
+               \r
                toXmlString : function(recurse, childrenWriter){\r
                        var string = "<"+this.getName();\r
                        var props = this.getProperties();\r
index c21f3ac56209bea8f390a5bd70b456814e3f4545..a164315a51a3e32631732734c5c4ff1e741226d4 100644 (file)
@@ -64,8 +64,8 @@ qx.Class.define("org.argeo.jcr.ria.views.PlainXmlViewer", {
                                        return;\r
                                }\r
                                var xmlString = selection[0].toXmlString(true);\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_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
@@ -90,7 +90,6 @@ qx.Class.define("org.argeo.jcr.ria.views.PlainXmlViewer", {
                                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
-                               /*\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
@@ -100,7 +99,6 @@ qx.Class.define("org.argeo.jcr.ria.views.PlainXmlViewer", {
                                        }\r
                                }, this);\r
                                call.schedule();\r
-                               */\r
                        }, this);\r
                        dataModel.requireContextChange();                       \r
                },\r
@@ -109,8 +107,11 @@ qx.Class.define("org.argeo.jcr.ria.views.PlainXmlViewer", {
                        var width = qx.bom.element.Dimension.getWidth(span);\r
                        var value = span.innerHTML;\r
                        qx.bom.element.Style.set(span, "display", "none");\r
-                       var input = qx.bom.Element.create("input", {value:value, style:'width:'+width+'px;'});\r
-                       qx.dom.Element.insertAfter(input, span);                        \r
+                       var input = qx.bom.Element.create("input", {value:value, style:'width:'+width+'px;height:14px;border-width:1px;padding:0px;font-size:11px;'});\r
+                       //var input = new qx.html.Input("text");\r
+                       //input.setStyles({width:width+'px', height:'14px', borderWidth:'1px', padding:'0px', fontSize:'11px'});                        \r
+                       qx.dom.Element.insertAfter(input, span);\r
+                       //input.setTextSelection(0);\r
                },\r
                                \r
                /**\r
index 233c316d941b04937b9cfb228ca57e1ee3860191..9fd2e163cd452a5005e0ef7af652e6084c8cfb97 100644 (file)
@@ -60,7 +60,8 @@ qx.Class.define("org.argeo.jcr.ria.views.TreeView", {
                                                var pathes = [];\r
                                                parts.pop();\r
                                                if(parts.length > 1){\r
-                                                       for(var i=0;i<parts.length;i++){\r
+                                                       var initLength = parts.length; \r
+                                                       for(var i=0;i<initLength;i++){\r
                                                                var newPath = parts.join("/");\r
                                                                pathes.push({label:newPath,icon:'', commandId:newPath});\r
                                                                parts.pop();\r