Builder4/WindowLeftTree.bjs.8AWVLX
authorAlan Knowles <alan@roojs.com>
Fri, 5 Sep 2014 09:59:10 +0000 (17:59 +0800)
committerAlan Knowles <alan@roojs.com>
Fri, 5 Sep 2014 09:59:10 +0000 (17:59 +0800)
Builder4/WindowLeftTree.bjs
Builder4/WindowLeftTree.js.6LYVLX
Builder4/WindowLeftTree.js
Builder4/WindowLeftTree.vala.484VLX
Builder4/WindowLeftTree.vala
Builder4/WindowLeftTree.bjs.TZ0QLX
Builder4/WindowLeftTree.js.WJ6QLX
Builder4/WindowLeftTree.vala.4FFRLX

Builder4/WindowLeftTree.bjs
Builder4/WindowLeftTree.js
Builder4/WindowLeftTree.vala

index 598fec6..6c9c52a 100644 (file)
@@ -66,7 +66,7 @@
                             "$ xns" : "Gtk",
                             "|        string findDropNode" : " (string treepath_str, string[] targets) {\n\n    // this is used by the dragdrop code in the roo version AFAIR..\n\n    //var path = treepath_str.replace(/^builder-/, '');\n    // treemap is depreciated... - should really check if model has any entries..\n\n    if (this.el.iter_n_children(null) < 1) {\n        //print(\"NO KEYS\");\n        return \"|%d\".printf((int)Gtk.TreeViewDropPosition.INTO_OR_AFTER);\n    }\n    //print(\"FIND treepath: \" + path);\n    //console.dump(this.treemap);\n    \n    //if (!treepath_str.match(/^builder-/)) {\n    //    return []; // nothing!\n    //}\n    if (targets.length > 0 && targets[0] == \"*\") {\n        return  treepath_str;\n    }\n    return this.findDropNodeByPath(treepath_str,targets, -1);\n}\n",
                             "|        void loadFile" : "(JsRender.JsRender f) {\n    //console.dump(f);\n    this.el.clear();\n    this.file = f;\n    \n    \n//    if (!f) {\n//        console.log('missing file');\n//        return;\n//    }\n    \n    // load the file if not loaded..\n    if (f.tree == null) {\n        f.loadItems( );\n    }\n    // if it's still null?\n    if (f.tree == null) {\n        return;\n    }\n    \n    /// this.get('/Window').setTitle(f.project.getName() + ' - ' + f.name);\n    \n    //if (f.items.length && typeof(f.items[0]) == 'string') {\n    \n        //this.get('/RightEditor').el.show();\n        //this.get('/RightEditor.view').load( f.items[0]);\n    //    return;\n    //}\n    //print(\"LOAD\");\n    //print(JSON.stringify(f.items, null,4));\n    //console.dump(f.items);\n    var o = new Gee.ArrayList<JsRender.Node>();\n    o.add(f.tree);\n    this.load(o,null);\n    \n    _this.view.el.expand_all();\n\n    if (f.tree.items.size < 1) {\n        // single item..\n        \n        //this.get('/Window.leftvpaned').el.set_position(80);\n        // select first...\n        _this.view.el.set_cursor( \n            new  Gtk.TreePath.from_string(\"0\"), null, false);\n        \n        \n    } else {\n          //this.get('/Window.leftvpaned').el.set_position(200);\n    }\n    \n    return;\n    /*    \n    \n    //print(\"hide right editior\");\n    //this.get('/RightEditor').el.hide();\n    //this.get('/Editor').el.hide();\n    //print(\"set current tree\");\n    //this.currentTree = this.toJS(false, false)[0];\n    //console.dump(this.currentTree);\n    //this.currentTree = this.currentTree || { items: [] };\n    //_this.renderView();\n    //console.dump(this.map);\n    //var RightPalete     = imports.Builder.RightPalete.RightPalete;\n    \n    \n    var pm = this.get('/RightPalete.model');\n    // set up provider..\n    \n    this.get('/RightPalete').provider = this.get('/LeftTree').getPaleteProvider();\n    \n    if (!this.get('/RightPalete').provider) {\n        print (\"********* PALETE PROVIDER MISSING?!!\");\n    }\n    this.get('/LeftTree').renderView();\n    \n    pm.load( this.get('/LeftTree').getPaleteProvider().gatherList(this.listAllTypes()));\n    \n    \n            \n    this.get('/Window.view-notebook').el.set_current_page(\n        this.get('/LeftTree.model').file.getType()== 'Roo' ? 0 : -1);\n        */\n            \n}\n",
-                            "| void updateSelected" : "() {\n  \n   \n    var s = _this.view.el.get_selection();\n    \n     Gtk.TreeIter iter;\n    Gtk.TreeModel mod;\n\n    \n    if (!s.get_selected(out mod, out iter)) {\n        return; // nothing seleted..\n    }\n  \n      this.el.set(iter, 0, tr.get(i).nodeTitle(),\n                1, tr.get(i).nodeTip(), -1\n        );\n}\n",
+                            "| void updateSelected" : "() {\n  \n   \n    var s = _this.view.el.get_selection();\n    \n     Gtk.TreeIter iter;\n    Gtk.TreeModel mod;\n    \n    \n    \n    if (!s.get_selected(out mod, out iter)) {\n        return; // nothing seleted..\n    }\n  \n  GLib.Value value;\n    this.el.get_value(iter, 2, out value);\n    var node = (JsRender.Node)(value.get_object());\n    \n      this.el.set(iter, 0, node.nodeTitle(),\n                1, node.nodeTip(), -1\n        );\n}\n",
                             "|        string findDropNodeByPath" : " (string treepath_str, string[] targets, int in_pref = -1) {\n\n    var path = treepath_str; // dupe it..\n    \n    int pref = in_pref < 0  ?  Gtk.TreeViewDropPosition.INTO_OR_AFTER : in_pref;\n    \n    var last = \"\";\n    \n    //console.dump(this.treemap);\n    \n    print(\"findDropNodeByPath : got path length %d / %s\\n\", path.length, path);\n    \n    if (path.length == 0) {\n        // top drop. // just return empty..\n        return \"|%d\".printf((int)pref) ;\n        \n    }\n    \n    \n    while (path.length > 0) {\n        //print(\"LOOKING FOR PATH: \" + path);\n        var node_data = this.pathToNode(path);\n        \n        if (node_data == null) {\n            print(\"node not found\");\n            return null;\n        }\n        \n        var xname = node_data.fqn();\n        var match = \"\";\n        var prop = \"\";\n        \n        for (var i =0; i < targets.length; i++)  {\n            var tg = targets[i];\n            if ((tg == xname)  ) {\n                match = tg;\n                break;\n            }\n            // if target is \"xxxx:name\"\n            if (tg.contains(xname +\":\")) {\n                match = tg;\n                var ar = tg.split(\":\");\n                prop = ar[1];\n                break;\n            }\n        }\n        \n        if (match.length > 0) {\n            if (last.length > 0) { // pref is after/before..\n                // then it's after last\n                if (pref > 1) {\n                    return \"\";\n                }\n                return last + \"|%d\".printf((int)pref) + \"|\" + prop;\n\n                \n            }\n            return path + \"|%d\".printf( (int) Gtk.TreeViewDropPosition.INTO_OR_AFTER) + \"|\" + prop;\n        }\n        last = \"\" + path;\n        var par = path.split(\":\");\n        string [] ppar = {};\n        for (var i = 0; i < par.length-1; i++) {\n            ppar += par[i];\n        }\n        \n        path = string.joinv(\":\", ppar);\n\n\n    }\n    \n    return \"\";\n            \n}\n",
                             "|        void deleteSelected" : "() {\n    \n    print(\"DELETE SELECTED?\");\n    //_this.view.blockChanges = true;\n    print(\"GET SELECTION?\");\n\n    var s = _this.view.el.get_selection();\n    \n    print(\"GET  SELECTED?\");\n   Gtk.TreeIter iter;\n    Gtk.TreeModel mod;\n\n    \n    if (!s.get_selected(out mod, out iter)) {\n        return; // nothing seleted..\n    }\n      \n\n\n    this.activePath= \"\";      \n    print(\"GET  vnode value?\");\n\n    GLib.Value value;\n    this.el.get_value(iter, 2, out value);\n    var data = (JsRender.Node)(value.get_object());\n    print(\"removing node from Render\\n\");\n    if (data.parent == null) {\n        this.file.tree = null;\n    } else {\n        data.remove();\n    }\n    print(\"removing node from Tree\\n\");    \n    s.unselect_all();\n    this.el.remove(ref iter);\n\n    \n    \n    \n    // \n    \n    \n\n\n    this.activePath= \"\"; // again!?!?      \n    //this.changed(null,true);\n    \n    _this.changed();\n    \n    _this.view.blockChanges = false;\n}\n",
                             "$ listAllTypes" : "function() {\n    var s = this.get('/LeftTree.view').selection;\n    print (\"LIST ALL TYPES: \" + s.count_selected_rows() );\n    \n    if (s.count_selected_rows() > 0) {\n        var iter = new Gtk.TreeIter();    \n        s.get_selected(this.el, iter);\n\n        // set some properties of the tree for use by the dropped element.\n        var value = new GObject.Value('');\n        this.el.get_value(iter, 2, value);\n        var data = JSON.parse(value.value);\n        \n        \n        var xname = this.get('/LeftTree.model').file.guessName(data);\n        console.log('selected:' + xname);\n        if (xname.length) {\n            return [ xname ];\n        }\n        return []; // could not find it..\n    }\n    \n    var ret = [ ];\n    \n   var _this = this;\n    function addall(li)\n    {\n        li.forEach(function(el) {\n            // this is specific to roo!!!?\n            if (!el) { // skip empty?\n                return;\n            }\n            var fullpath =  _this.file.guessName(el);\n            if (fullpath.length && ret.indexOf(fullpath) < 0) {\n                ret.push(fullpath);\n            }\n            \n            \n            if (el.items && el.items.length) {\n                addall(el.items);\n            }\n            \n        });\n        \n        \n    }\n    \n    addall([this.currentTree]);\n    \n    // only if we have nothing, should we add '*top'\n    if (!ret.length) {\n        ret = [ '*top' ];\n    }\n    //console.log('all types in tree');\n    //console.dump(ret);\n    \n    return ret;\n                            \n}\n"
index 58390df..5c84d64 100644 (file)
@@ -864,14 +864,19 @@ WindowLeftTree=new XObject({
                         
                          Gtk.TreeIter iter;
                         Gtk.TreeModel mod;
-                    
+                        
+                        
                         
                         if (!s.get_selected(out mod, out iter)) {
                             return; // nothing seleted..
                         }
                       
-                          this.el.set(iter, 0, tr.get(i).nodeTitle(),
-                                    1, tr.get(i).nodeTip(), -1
+                      GLib.Value value;
+                        this.el.get_value(iter, 2, out value);
+                        var node = (JsRender.Node)(value.get_object());
+                        
+                          this.el.set(iter, 0, node.nodeTitle(),
+                                    1, node.nodeTip(), -1
                             );
                     },
                     findDropNodeByPath : (string treepath_str, string[] targets, int in_pref = -1) {
index 0a0849c..88dabd1 100644 (file)
@@ -973,14 +973,19 @@ public class Xcls_WindowLeftTree : Object
             
              Gtk.TreeIter iter;
             Gtk.TreeModel mod;
-        
+            
+            
             
             if (!s.get_selected(out mod, out iter)) {
                 return; // nothing seleted..
             }
           
-              this.el.set(iter, 0, tr.get(i).nodeTitle(),
-                        1, tr.get(i).nodeTip(), -1
+          GLib.Value value;
+            this.el.get_value(iter, 2, out value);
+            var node = (JsRender.Node)(value.get_object());
+            
+              this.el.set(iter, 0, node.nodeTitle(),
+                        1, node.nodeTip(), -1
                 );
         }
         public        string findDropNodeByPath (string treepath_str, string[] targets, int in_pref = -1) {