X-Git-Url: http://git.roojs.org/?p=app.Builder.js;a=blobdiff_plain;f=src%2FBuilder4%2FDialogTemplateSelect.vala;h=02b788c8d11b48d27aa5c0d4decef89b56bdc681;hp=af1ee24a0bdb927533c9599f221e613783b22a47;hb=HEAD;hpb=b8730de6ce4811492525f312c87f06041230e569 diff --git a/src/Builder4/DialogTemplateSelect.vala b/src/Builder4/DialogTemplateSelect.vala index af1ee24a0..02b788c8d 100644 --- a/src/Builder4/DialogTemplateSelect.vala +++ b/src/Builder4/DialogTemplateSelect.vala @@ -1,6 +1,6 @@ static DialogTemplateSelect _DialogTemplateSelect; -public class DialogTemplateSelect : Object +public class DialogTemplateSelect : Object { public Gtk.Dialog el; private DialogTemplateSelect _this; @@ -15,10 +15,13 @@ public class DialogTemplateSelect : Object public Xcls_combo combo; public Xcls_cellrenderer cellrenderer; public Xcls_model model; + public Xcls_dbcombo dbcombo; + public Xcls_dbcellrenderer dbcellrenderer; + public Xcls_dbmodel dbmodel; // my vars (def) - // ctor + // ctor public DialogTemplateSelect() { _this = this; @@ -31,28 +34,28 @@ public class DialogTemplateSelect : Object this.el.default_height = 200; this.el.default_width = 400; this.el.modal = true; - var child_0 = new Xcls_VBox2( _this ); + var child_0 = new Xcls_Box2( _this ); child_0.ref(); this.el.get_content_area().add ( child_0.el ); - var child_1 = new Xcls_Button8( _this ); + var child_1 = new Xcls_Button13( _this ); child_1.ref(); this.el.add_action_widget ( child_1.el , 0 ); - var child_2 = new Xcls_Button9( _this ); + var child_2 = new Xcls_Button14( _this ); child_2.ref(); this.el.add_action_widget ( child_2.el , 1 ); - var child_3 = new Xcls_Button10( _this ); + var child_3 = new Xcls_Button15( _this ); child_3.ref(); this.el.add_action_widget ( child_3.el , 2 ); - // listeners + //listeners this.el.delete_event.connect( (self, event) =>{ this.el.hide(); return true; }); } - // user defined functions - public JsRender.Node? show (Gtk.Window pwindow, Palete.Palete pal, JsRender.Node node) { + // user defined functions + public JsRender.Node? show (Xcls_MainWindow mwindow, Palete.Palete pal, JsRender.Node node, Project.Project project) { this.el.show_all(); var opts = pal.listTemplates(node); @@ -60,72 +63,124 @@ public class DialogTemplateSelect : Object this.el.hide(); return node; } - this.el.set_attached_to( pwindow); - this.el.set_transient_for( pwindow); + this.el.set_attached_to( mwindow.el); + this.el.set_transient_for( mwindow.el); //opts.unshift({ path: '' , name :'Just add Element' }); _this.model.loadData(opts); - _this.combo.el.set_active(0); + _this.combo.el.set_active(-1); + + + var db = new Palete.RooDatabase.from_project(project); + _this.dbmodel.loadData(db.readTablesGee()); + + var plug = mwindow.windowstate.webkit_plugin; + + _this.dbcombo.el.set_active(-1); + - this.el.run(); + var res = this.el.run(); this.el.hide(); //var ix = _this.combo.el.get_active(); - //if (ix < 1 ) { - // return node; - // } - Gtk.TreeIter iter; - _this.combo.el.get_active_iter (out iter); - Value vfname; - this.model.el.get_value (iter, 0, out vfname); + if (res < 1 ) { + return null; // 0 = cancel. + } + if (res < 2 ) { + return node; // 1 = just add it.. + } - if (((string)vfname).length < 1) { - return node; + // have they selected a table?? + + Gtk.TreeIter iter; + Value vfname; + if (_this.dbcombo.el.get_active_iter (out iter)) { + this.dbmodel.el.get_value (iter, 0, out vfname); + if (((string)vfname).length > 0 && plug.has_plugin(node.fqn())) { + var json_str = plug.show(mwindow.el, project, node.fqn(), (string)vfname); + print("json_str = %s\n", json_str); + if (json_str.length < 1) { + + return node; + } + var pa = new Json.Parser(); + try { + + pa.load_from_data(json_str); + } catch(Error e) { + return node; + } + var new_node = pa.get_root(); + + if (new_node.get_node_type () != Json.NodeType.OBJECT) { + return node; + } + var obj = new_node.get_object (); + + var ret = new JsRender.Node(); + + ret.loadFromJson(obj, 1); + return ret; + } + + } + + if (!_this.combo.el.get_active_iter (out iter)) { + + return node; // nothing selected... } + + this.model.el.get_value (iter, 0, out vfname); + + return pal.loadTemplate((string)vfname); } - public class Xcls_VBox2 : Object + public class Xcls_Box2 : Object { - public Gtk.VBox el; + public Gtk.Box el; private DialogTemplateSelect _this; // my vars (def) - // ctor - public Xcls_VBox2(DialogTemplateSelect _owner ) + // ctor + public Xcls_Box2(DialogTemplateSelect _owner ) { _this = _owner; - this.el = new Gtk.VBox( true, 0 ); + this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 ); // my vars (dec) // set gobject values - var child_0 = new Xcls_HBox3( _this ); + var child_0 = new Xcls_Box3( _this ); child_0.ref(); this.el.pack_start ( child_0.el , false,false,0 ); + var child_1 = new Xcls_Box8( _this ); + child_1.ref(); + this.el.pack_start ( child_1.el , false,false,0 ); } - // user defined functions + // user defined functions } - public class Xcls_HBox3 : Object + public class Xcls_Box3 : Object { - public Gtk.HBox el; + public Gtk.Box el; private DialogTemplateSelect _this; // my vars (def) - // ctor - public Xcls_HBox3(DialogTemplateSelect _owner ) + // ctor + public Xcls_Box3(DialogTemplateSelect _owner ) { _this = _owner; - this.el = new Gtk.HBox( true, 0 ); + this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 ); // my vars (dec) // set gobject values + this.el.margin = 3; var child_0 = new Xcls_Label4( _this ); child_0.ref(); this.el.pack_start ( child_0.el , false,false ); @@ -134,9 +189,9 @@ public class DialogTemplateSelect : Object this.el.add ( child_1.el ); } - // user defined functions + // user defined functions } - public class Xcls_Label4 : Object + public class Xcls_Label4 : Object { public Gtk.Label el; private DialogTemplateSelect _this; @@ -144,7 +199,7 @@ public class DialogTemplateSelect : Object // my vars (def) - // ctor + // ctor public Xcls_Label4(DialogTemplateSelect _owner ) { _this = _owner; @@ -155,9 +210,10 @@ public class DialogTemplateSelect : Object // set gobject values } - // user defined functions + // user defined functions } - public class Xcls_combo : Object + + public class Xcls_combo : Object { public Gtk.ComboBox el; private DialogTemplateSelect _this; @@ -165,7 +221,7 @@ public class DialogTemplateSelect : Object // my vars (def) - // ctor + // ctor public Xcls_combo(DialogTemplateSelect _owner ) { _this = _owner; @@ -182,14 +238,14 @@ public class DialogTemplateSelect : Object child_1.ref(); this.el.set_model ( child_1.el ); - // init method + // init method this.el.add_attribute(_this.cellrenderer.el , "markup", 1 ); } - // user defined functions + // user defined functions } - public class Xcls_cellrenderer : Object + public class Xcls_cellrenderer : Object { public Gtk.CellRendererText el; private DialogTemplateSelect _this; @@ -197,7 +253,7 @@ public class DialogTemplateSelect : Object // my vars (def) - // ctor + // ctor public Xcls_cellrenderer(DialogTemplateSelect _owner ) { _this = _owner; @@ -209,9 +265,10 @@ public class DialogTemplateSelect : Object // set gobject values } - // user defined functions + // user defined functions } - public class Xcls_model : Object + + public class Xcls_model : Object { public Gtk.ListStore el; private DialogTemplateSelect _this; @@ -219,7 +276,7 @@ public class DialogTemplateSelect : Object // my vars (def) - // ctor + // ctor public Xcls_model(DialogTemplateSelect _owner ) { _this = _owner; @@ -231,7 +288,7 @@ public class DialogTemplateSelect : Object // set gobject values } - // user defined functions + // user defined functions public void loadData (GLib.List data) { this.el.clear(); Gtk.TreeIter iter; @@ -259,7 +316,171 @@ public class DialogTemplateSelect : Object } } - public class Xcls_Button8 : Object + + + + public class Xcls_Box8 : Object + { + public Gtk.Box el; + private DialogTemplateSelect _this; + + + // my vars (def) + + // ctor + public Xcls_Box8(DialogTemplateSelect _owner ) + { + _this = _owner; + this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 ); + + // my vars (dec) + + // set gobject values + this.el.margin = 3; + var child_0 = new Xcls_Label9( _this ); + child_0.ref(); + this.el.pack_start ( child_0.el , false,false ); + var child_1 = new Xcls_dbcombo( _this ); + child_1.ref(); + this.el.add ( child_1.el ); + } + + // user defined functions + } + public class Xcls_Label9 : Object + { + public Gtk.Label el; + private DialogTemplateSelect _this; + + + // my vars (def) + + // ctor + public Xcls_Label9(DialogTemplateSelect _owner ) + { + _this = _owner; + this.el = new Gtk.Label( "Select Database Table : " ); + + // my vars (dec) + + // set gobject values + } + + // user defined functions + } + + public class Xcls_dbcombo : Object + { + public Gtk.ComboBox el; + private DialogTemplateSelect _this; + + + // my vars (def) + + // ctor + public Xcls_dbcombo(DialogTemplateSelect _owner ) + { + _this = _owner; + _this.dbcombo = this; + this.el = new Gtk.ComboBox(); + + // my vars (dec) + + // set gobject values + var child_0 = new Xcls_dbcellrenderer( _this ); + child_0.ref(); + this.el.pack_start ( child_0.el , true ); + var child_1 = new Xcls_dbmodel( _this ); + child_1.ref(); + this.el.set_model ( child_1.el ); + + // init method + + this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 ); + } + + // user defined functions + } + public class Xcls_dbcellrenderer : Object + { + public Gtk.CellRendererText el; + private DialogTemplateSelect _this; + + + // my vars (def) + + // ctor + public Xcls_dbcellrenderer(DialogTemplateSelect _owner ) + { + _this = _owner; + _this.dbcellrenderer = this; + this.el = new Gtk.CellRendererText(); + + // my vars (dec) + + // set gobject values + } + + // user defined functions + } + + public class Xcls_dbmodel : Object + { + public Gtk.ListStore el; + private DialogTemplateSelect _this; + + + // my vars (def) + + // ctor + public Xcls_dbmodel(DialogTemplateSelect _owner ) + { + _this = _owner; + _this.dbmodel = this; + this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) ); + + // my vars (dec) + + // set gobject values + } + + // user defined functions + public void loadData (Gee.ArrayList data) { + this.el.clear(); + Gtk.TreeIter iter; + var el = this.el; + + /// el.append(out iter); + + + // el.set_value(iter, 0, ""); + // el.set_value(iter, 1, "aaa - Just add Element - aaa"); + + el.append(out iter); + + + el.set_value(iter, 0, ""); + el.set_value(iter, 1, "-- select a table --"); + + + for (var i = 0; i < data.size;i++) { + + + el.append(out iter); + + el.set_value(iter, 0, data.get(i)); + el.set_value(iter, 1, data.get(i)); + + } + this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING); + + } + } + + + + + public class Xcls_Button13 : Object { public Gtk.Button el; private DialogTemplateSelect _this; @@ -267,8 +488,8 @@ public class DialogTemplateSelect : Object // my vars (def) - // ctor - public Xcls_Button8(DialogTemplateSelect _owner ) + // ctor + public Xcls_Button13(DialogTemplateSelect _owner ) { _this = _owner; this.el = new Gtk.Button(); @@ -279,9 +500,10 @@ public class DialogTemplateSelect : Object this.el.label = "Cancel"; } - // user defined functions + // user defined functions } - public class Xcls_Button9 : Object + + public class Xcls_Button14 : Object { public Gtk.Button el; private DialogTemplateSelect _this; @@ -289,8 +511,8 @@ public class DialogTemplateSelect : Object // my vars (def) - // ctor - public Xcls_Button9(DialogTemplateSelect _owner ) + // ctor + public Xcls_Button14(DialogTemplateSelect _owner ) { _this = _owner; this.el = new Gtk.Button(); @@ -301,9 +523,10 @@ public class DialogTemplateSelect : Object this.el.label = "Just add it"; } - // user defined functions + // user defined functions } - public class Xcls_Button10 : Object + + public class Xcls_Button15 : Object { public Gtk.Button el; private DialogTemplateSelect _this; @@ -311,8 +534,8 @@ public class DialogTemplateSelect : Object // my vars (def) - // ctor - public Xcls_Button10(DialogTemplateSelect _owner ) + // ctor + public Xcls_Button15(DialogTemplateSelect _owner ) { _this = _owner; this.el = new Gtk.Button(); @@ -323,6 +546,7 @@ public class DialogTemplateSelect : Object this.el.label = "OK"; } - // user defined functions + // user defined functions } + }