src/Builder4/DialogTemplateSelect.bjs
authorAlan Knowles <alan@roojs.com>
Wed, 22 Apr 2015 10:09:58 +0000 (18:09 +0800)
committerAlan Knowles <alan@roojs.com>
Wed, 22 Apr 2015 10:09:58 +0000 (18:09 +0800)
src/Builder4/DialogTemplateSelect.vala

src/Builder4/DialogTemplateSelect.bjs
src/Builder4/DialogTemplateSelect.vala

index 42b73e1..75cf690 100644 (file)
@@ -16,7 +16,7 @@
    "default_height" : 200,
    "$ modal" : true,
    "$ xns" : "Gtk",
-   "| JsRender.Node? show" : " (Xcls_MainWindow mwindow, Palete.Palete pal, JsRender.Node node, Project.Project project) {\n    \n    this.el.show_all();\n    var opts = pal.listTemplates(node);\n    if (opts.length() < 1) {\n        this.el.hide();\n        return node;\n    }\n    this.el.set_attached_to( mwindow.el);\n    this.el.set_transient_for( mwindow.el);\n    \n    //opts.unshift({ path: '' , name :'Just add Element' });\n     _this.model.loadData(opts);\n     _this.combo.el.set_active(-1);\n     \n     \n     var db =  new Palete.RooDatabase.from_project(project);\n     _this.dbmodel.loadData(db.readTablesGee());\n     \n     var plug = mwindow.windowstate.webkit_plugin;\n     \n     _this.dbcombo.el.set_active(-1);\n     \n     \n   \n    var res = this.el.run();\n    this.el.hide();    \n    //var ix = _this.combo.el.get_active();\n    if (res < 1 ) {\n        return null; // 0 = cancel.\n    }\n    if (res < 2 ) {\n        return node; // 1 = just add it..\n    }\n    \n    // have they selected a table??\n    \n   Gtk.TreeIter iter; \n    Value vfname;   \n    if (_this.dbcombo.el.get_active_iter (out iter)) {    \n         this.dbmodel.el.get_value (iter, 0, out vfname);\n         if (plug.has_plugin(node.fqn())) {\n            var json_str = plug.show(mwindow.el, project, node.fqn(), (string)vfname);\n            if (json_str.length < 1) {\n                return node;\n            }\n            var pa = new Json.Parser();\n\t    pa.load_from_data(json_str);\n\t    var node = pa.get_root();\n\n\t    if (node.get_node_type () != Json.NodeType.OBJECT) {\n\t\t    return null;\n\t    }\n\t    var obj = node.get_object ();\n\n\t    var ret = new JsRender.Node();\n\n\t    ret.loadFromJson(obj, 1);\n\t    return ret;\n         }\n        \n    }\n\n    if (!_this.combo.el.get_active_iter (out iter)) {\n\n        return node; // nothing selected...\n    }\n   \n    this.model.el.get_value (iter, 0, out vfname);\n    \n    \n    return pal.loadTemplate((string)vfname);\n\n}\n",
+   "| JsRender.Node? show" : " (Xcls_MainWindow mwindow, Palete.Palete pal, JsRender.Node node, Project.Project project) {\n    \n    this.el.show_all();\n    var opts = pal.listTemplates(node);\n    if (opts.length() < 1) {\n        this.el.hide();\n        return node;\n    }\n    this.el.set_attached_to( mwindow.el);\n    this.el.set_transient_for( mwindow.el);\n    \n    //opts.unshift({ path: '' , name :'Just add Element' });\n     _this.model.loadData(opts);\n     _this.combo.el.set_active(-1);\n     \n     \n     var db =  new Palete.RooDatabase.from_project(project);\n     _this.dbmodel.loadData(db.readTablesGee());\n     \n     var plug = mwindow.windowstate.webkit_plugin;\n     \n     _this.dbcombo.el.set_active(-1);\n     \n     \n   \n    var res = this.el.run();\n    this.el.hide();    \n    //var ix = _this.combo.el.get_active();\n    if (res < 1 ) {\n        return null; // 0 = cancel.\n    }\n    if (res < 2 ) {\n        return node; // 1 = just add it..\n    }\n    \n    // have they selected a table??\n    \n   Gtk.TreeIter iter; \n    Value vfname;   \n    if (_this.dbcombo.el.get_active_iter (out iter)) {    \n         this.dbmodel.el.get_value (iter, 0, out vfname);\n         if (vfname.length > 0 && plug.has_plugin(node.fqn())) {\n            var json_str = plug.show(mwindow.el, project, node.fqn(), (string)vfname);\n            if (json_str.length < 1) {\n                return node;\n            }\n            var pa = new Json.Parser();\n\t    pa.load_from_data(json_str);\n\t    var new_node = pa.get_root();\n\n\t    if (new_node.get_node_type () != Json.NodeType.OBJECT) {\n\t\t    return node;\n\t    }\n\t    var obj = new_node.get_object ();\n\n\t    var ret = new JsRender.Node();\n\n\t    ret.loadFromJson(obj, 1);\n\t    return ret;\n         }\n        \n    }\n\n    if (!_this.combo.el.get_active_iter (out iter)) {\n\n        return node; // nothing selected...\n    }\n   \n    this.model.el.get_value (iter, 0, out vfname);\n    \n    \n    return pal.loadTemplate((string)vfname);\n\n}\n",
    "items" : [
     {
      "xtype" : "VBox",
index e38c6d2..9f88a2c 100644 (file)
@@ -96,19 +96,19 @@ public class DialogTemplateSelect : Object
         Value vfname;   
         if (_this.dbcombo.el.get_active_iter (out iter)) {    
              this.dbmodel.el.get_value (iter, 0, out vfname);
-             if (plug.has_plugin(node.fqn())) {
+             if (vfname.length > 0 && plug.has_plugin(node.fqn())) {
                 var json_str = plug.show(mwindow.el, project, node.fqn(), (string)vfname);
                 if (json_str.length < 1) {
                     return node;
                 }
                 var pa = new Json.Parser();
            pa.load_from_data(json_str);
-           var node = pa.get_root();
+           var new_node = pa.get_root();
     
-           if (node.get_node_type () != Json.NodeType.OBJECT) {
-                   return null;
+           if (new_node.get_node_type () != Json.NodeType.OBJECT) {
+                   return node;
            }
-           var obj = node.get_object ();
+           var obj = new_node.get_object ();
     
            var ret = new JsRender.Node();