]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/TreeView.js
Update options in config.json, fine tune JCR browser
[gpl/argeo-slc.git] / server / org.argeo.slc.ria / src / argeo-ria-lib / jcr / class / org / argeo / jcr / ria / views / TreeView.js
index 9fd2e163cd452a5005e0ef7af652e6084c8cfb97..8b055e06146d79d0a26afd671057853bacee2192 100644 (file)
@@ -14,8 +14,8 @@ qx.Class.define("org.argeo.jcr.ria.views.TreeView", {
                                        icon : "org.argeo.slc.ria/media-playback-start.png",\r
                                        shortcut : null,\r
                                        enabled : true,\r
-                                       menu : "Context",\r
-                                       toolbar : "context",\r
+                                       menu : "Zoom",\r
+                                       toolbar : null,\r
                                        callback : function(e) {\r
                                                var selection = this.tree.getSelection();\r
                                                if(!selection.length) return;\r
@@ -38,8 +38,8 @@ qx.Class.define("org.argeo.jcr.ria.views.TreeView", {
                                        icon : "org.argeo.slc.ria/media-playback-start.png",\r
                                        shortcut : null,\r
                                        enabled : true,\r
-                                       menu : "Context",\r
-                                       toolbar : "context",\r
+                                       menu : "Zoom",\r
+                                       toolbar : null,\r
                                        submenu : [],\r
                                        callback : function(e) {\r
                                        },\r
@@ -69,7 +69,76 @@ qx.Class.define("org.argeo.jcr.ria.views.TreeView", {
                                                }\r
                                                this.setMenu(pathes);\r
                                        }\r
-                               }                               \r
+                               },\r
+                               "refresh" : {\r
+                                       label : "Refresh",\r
+                                       icon : "org.argeo.slc.ria/media-playback-start.png",\r
+                                       shortcut : null,\r
+                                       enabled : true,\r
+                                       menu : "Selection",\r
+                                       toolbar : "selection",\r
+                                       callback : function(e) {\r
+                                               var selection = this.tree.getSelection();\r
+                                               if(!selection.length) return;\r
+                                               var jcrNode = selection[0].getJcrNode();\r
+                                               var children = jcrNode.getChildren();\r
+                                               for(var i=0;i<children.length;i++){\r
+                                                       jcrNode.removeChild(children[i]);\r
+                                               }\r
+                                               jcrNode.setLoadState("empty");\r
+                                               jcrNode.load();\r
+                                       },\r
+                                       selectionChange : function(viewId, selection){\r
+                                               this.setEnabled(false);\r
+                                               if(selection && selection.length && selection[0].getJcrNode){\r
+                                                       this.setEnabled(true);\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "open" : {\r
+                                       label : "Open",\r
+                                       icon : "org.argeo.slc.ria/media-playback-start.png",\r
+                                       shortcut : null,\r
+                                       enabled : true,\r
+                                       menu : "Selection",\r
+                                       toolbar : "selection",\r
+                                       callback : function(e) {\r
+                                               var selection = this.tree.getSelection();\r
+                                               if(!selection.length) return;\r
+                                               var jcrNode = selection[0].getJcrNode();\r
+                                               var viewsManager = org.argeo.ria.components.ViewsManager.getInstance();                                         \r
+                                               var testView = viewsManager.initIViewClass(org.argeo.jcr.ria.views.PlainXmlViewer, "editor", jcrNode, "close");\r
+                                               testView.load(jcrNode);\r
+                                               \r
+                                       },\r
+                                       selectionChange : function(viewId, selection){\r
+                                               this.setEnabled(false);\r
+                                               if(selection && selection.length && selection[0].getJcrNode){\r
+                                                       this.setEnabled(true);\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "dl" : {\r
+                                       label : "Download",\r
+                                       icon : "org.argeo.slc.ria/media-playback-start.png",\r
+                                       shortcut : null,\r
+                                       enabled : true,\r
+                                       menu : "Selection",\r
+                                       toolbar : "selection",\r
+                                       callback : function(e) {\r
+                                               var selection = this.tree.getSelection();\r
+                                               if(!selection.length) return;\r
+                                               var jcrNode = selection[0].getJcrNode();\r
+                                               var url = '/org.argeo.slc.webapp/getJcrItem.jcr?path=' + jcrNode.getPath() + '&download=true';\r
+                                               org.argeo.ria.Application.INSTANCE.javascriptDownloadLocation(url);\r
+                                       },\r
+                                       selectionChange : function(viewId, selection){\r
+                                               this.setEnabled(false);\r
+                                               if(selection && selection.length && selection[0].getJcrNode){\r
+                                                       this.setEnabled(true);\r
+                                               }\r
+                                       }\r
+                               }                                                               \r
                        }\r
                },\r
                viewSelection : {\r
@@ -81,7 +150,7 @@ qx.Class.define("org.argeo.jcr.ria.views.TreeView", {
                        event : "changeInstanceId"\r
                },\r
                instanceLabel : {\r
-                       init:"Tree View",\r
+                       init:"JCR Tree",\r
                        event : "changeInstanceLabel"\r
                },\r
                dataModel : {\r
@@ -118,7 +187,6 @@ qx.Class.define("org.argeo.jcr.ria.views.TreeView", {
                        var dataModel = this.getDataModel();\r
                        dataModel.addListener("changeContextNode", function(event){\r
                                var contextNode = event.getData();\r
-                               var loader = function(){};\r
                                var newRoot = new org.argeo.jcr.ria.views.JcrTreeFolder(contextNode);\r
                                this.tree.setRoot(newRoot);\r
                                this.tree.setSelection([newRoot]);\r
@@ -129,13 +197,37 @@ qx.Class.define("org.argeo.jcr.ria.views.TreeView", {
                                var viewSelection = this.getViewSelection();\r
                                viewSelection.clear();                          \r
                                for(var i=0;i<sel.length;i++){\r
-                                       selection.push(sel[i].getJcrNode());\r
+                                       if(sel[i].getJcrNode){\r
+                                               selection.push(sel[i].getJcrNode());\r
+                                       }\r
                                        viewSelection.addNode(sel[i]);\r
                                }\r
-                               this.getDataModel().setSelection(selection);\r
+                               this.getDataModel().setSelectionWithSource(selection, this);\r
+                       }, this);\r
+                       dataModel.addListener("changeSelection", function(e){\r
+                               if(this.getDataModel().getSelectionSource() == this) return;\r
+                               var selection = this.getDataModel().getSelection();\r
+                               // Arbitrary : for the moment, external select can only apply\r
+                               // to children of the current selection\r
+                               var crtSel = this.tree.getSelection();\r
+                               if(!crtSel.length || !selection.length) return;\r
+                               var crtTreeSel = crtSel[0];\r
+                               if(selection[0].getParent() && crtTreeSel.getJcrNode().getPath() == selection[0].getParent().getPath()){\r
+                                       crtTreeSel.setOpen(true);\r
+                                       var crtChildren =crtTreeSel.getChildren(); \r
+                                       for(var i=0;i<crtChildren.length;i++){\r
+                                               if(crtChildren[i].getJcrNode().getPath() == selection[0].getPath()){\r
+                                                       this.tree.setSelection([crtChildren[i]]);\r
+                                                       return;\r
+                                               }\r
+                                       }\r
+                               }else if(crtTreeSel.getParent() && crtTreeSel.getJcrNode().getParent().getPath() == selection[0].getPath()){\r
+                                       this.tree.setSelection([crtTreeSel.getParent()]);\r
+                               }\r
+                               \r
                        }, this);\r
                        this.tree.setContextMenu(org.argeo.ria.event.CommandsManager\r
-                                       .getInstance().createMenuFromIds(["zoom_in", "zoom_out"]));                             \r
+                                       .getInstance().createMenuFromIds(["open", "dl", "zoom_in", "zoom_out"]));                               \r
                },\r
                \r
                /**\r