1 static DialogTemplateSelect _DialogTemplateSelect;
3 public class DialogTemplateSelect : Object
6 private DialogTemplateSelect _this;
8 public static DialogTemplateSelect singleton()
10 if (_DialogTemplateSelect == null) {
11 _DialogTemplateSelect= new DialogTemplateSelect();
13 return _DialogTemplateSelect;
15 public Xcls_combo combo;
16 public Xcls_cellrenderer cellrenderer;
17 public Xcls_model model;
18 public Xcls_dbcombo dbcombo;
19 public Xcls_dbcellrenderer dbcellrenderer;
20 public Xcls_dbmodel dbmodel;
25 public DialogTemplateSelect()
28 this.el = new Gtk.Dialog();
33 this.el.title = "Add an Object";
34 this.el.default_height = 200;
35 this.el.default_width = 400;
37 var child_0 = new Xcls_Box2( _this );
39 this.el.get_content_area().add ( child_0.el );
40 var child_1 = new Xcls_Button13( _this );
42 this.el.add_action_widget ( child_1.el , 0 );
43 var child_2 = new Xcls_Button14( _this );
45 this.el.add_action_widget ( child_2.el , 1 );
46 var child_3 = new Xcls_Button15( _this );
48 this.el.add_action_widget ( child_3.el , 2 );
51 this.el.delete_event.connect( (self, event) =>{
57 // user defined functions
58 public JsRender.Node? show (Xcls_MainWindow mwindow, Palete.Palete pal, JsRender.Node node, Project.Project project) {
61 var opts = pal.listTemplates(node);
62 if (opts.length() < 1) {
66 this.el.set_attached_to( mwindow.el);
67 this.el.set_transient_for( mwindow.el);
69 //opts.unshift({ path: '' , name :'Just add Element' });
70 _this.model.loadData(opts);
71 _this.combo.el.set_active(-1);
74 var db = new Palete.RooDatabase.from_project(project);
75 _this.dbmodel.loadData(db.readTablesGee());
77 var plug = mwindow.windowstate.webkit_plugin;
79 _this.dbcombo.el.set_active(-1);
83 var res = this.el.run();
85 //var ix = _this.combo.el.get_active();
87 return null; // 0 = cancel.
90 return node; // 1 = just add it..
93 // have they selected a table??
97 if (_this.dbcombo.el.get_active_iter (out iter)) {
98 this.dbmodel.el.get_value (iter, 0, out vfname);
99 if (((string)vfname).length > 0 && plug.has_plugin(node.fqn())) {
100 var json_str = plug.show(mwindow.el, project, node.fqn(), (string)vfname);
101 print("json_str = %s\n", json_str);
102 if (json_str.length < 1) {
106 var pa = new Json.Parser();
107 pa.load_from_data(json_str);
108 var new_node = pa.get_root();
110 if (new_node.get_node_type () != Json.NodeType.OBJECT) {
113 var obj = new_node.get_object ();
115 var ret = new JsRender.Node();
117 ret.loadFromJson(obj, 1);
123 if (!_this.combo.el.get_active_iter (out iter)) {
125 return node; // nothing selected...
128 this.model.el.get_value (iter, 0, out vfname);
131 return pal.loadTemplate((string)vfname);
134 public class Xcls_Box2 : Object
137 private DialogTemplateSelect _this;
143 public Xcls_Box2(DialogTemplateSelect _owner )
146 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
150 // set gobject values
151 var child_0 = new Xcls_Box3( _this );
153 this.el.pack_start ( child_0.el , false,false,0 );
154 var child_1 = new Xcls_Box8( _this );
156 this.el.pack_start ( child_1.el , false,false,0 );
159 // user defined functions
161 public class Xcls_Box3 : Object
164 private DialogTemplateSelect _this;
170 public Xcls_Box3(DialogTemplateSelect _owner )
173 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
177 // set gobject values
179 var child_0 = new Xcls_Label4( _this );
181 this.el.pack_start ( child_0.el , false,false );
182 var child_1 = new Xcls_combo( _this );
184 this.el.add ( child_1.el );
187 // user defined functions
189 public class Xcls_Label4 : Object
192 private DialogTemplateSelect _this;
198 public Xcls_Label4(DialogTemplateSelect _owner )
201 this.el = new Gtk.Label( "Select Template : " );
205 // set gobject values
208 // user defined functions
211 public class Xcls_combo : Object
213 public Gtk.ComboBox el;
214 private DialogTemplateSelect _this;
220 public Xcls_combo(DialogTemplateSelect _owner )
224 this.el = new Gtk.ComboBox();
228 // set gobject values
229 var child_0 = new Xcls_cellrenderer( _this );
231 this.el.pack_start ( child_0.el , true );
232 var child_1 = new Xcls_model( _this );
234 this.el.set_model ( child_1.el );
238 this.el.add_attribute(_this.cellrenderer.el , "markup", 1 );
241 // user defined functions
243 public class Xcls_cellrenderer : Object
245 public Gtk.CellRendererText el;
246 private DialogTemplateSelect _this;
252 public Xcls_cellrenderer(DialogTemplateSelect _owner )
255 _this.cellrenderer = this;
256 this.el = new Gtk.CellRendererText();
260 // set gobject values
263 // user defined functions
266 public class Xcls_model : Object
268 public Gtk.ListStore el;
269 private DialogTemplateSelect _this;
275 public Xcls_model(DialogTemplateSelect _owner )
279 this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
283 // set gobject values
286 // user defined functions
287 public void loadData (GLib.List<string> data) {
292 /// el.append(out iter);
295 // el.set_value(iter, 0, "");
296 // el.set_value(iter, 1, "aaa - Just add Element - aaa");
298 for (var i = 0; i < data.length();i++) {
302 var str = data.nth_data(i);
303 var fn = Path.get_basename (str);
304 fn.replace(".json", "");
306 el.set_value(iter, 0, str);
307 el.set_value(iter, 1, fn);
310 this.el.set_sort_column_id(1, Gtk.SortType.ASCENDING);
317 public class Xcls_Box8 : Object
320 private DialogTemplateSelect _this;
326 public Xcls_Box8(DialogTemplateSelect _owner )
329 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
333 // set gobject values
335 var child_0 = new Xcls_Label9( _this );
337 this.el.pack_start ( child_0.el , false,false );
338 var child_1 = new Xcls_dbcombo( _this );
340 this.el.add ( child_1.el );
343 // user defined functions
345 public class Xcls_Label9 : Object
348 private DialogTemplateSelect _this;
354 public Xcls_Label9(DialogTemplateSelect _owner )
357 this.el = new Gtk.Label( "Select Database Table : " );
361 // set gobject values
364 // user defined functions
367 public class Xcls_dbcombo : Object
369 public Gtk.ComboBox el;
370 private DialogTemplateSelect _this;
376 public Xcls_dbcombo(DialogTemplateSelect _owner )
379 _this.dbcombo = this;
380 this.el = new Gtk.ComboBox();
384 // set gobject values
385 var child_0 = new Xcls_dbcellrenderer( _this );
387 this.el.pack_start ( child_0.el , true );
388 var child_1 = new Xcls_dbmodel( _this );
390 this.el.set_model ( child_1.el );
394 this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 );
397 // user defined functions
399 public class Xcls_dbcellrenderer : Object
401 public Gtk.CellRendererText el;
402 private DialogTemplateSelect _this;
408 public Xcls_dbcellrenderer(DialogTemplateSelect _owner )
411 _this.dbcellrenderer = this;
412 this.el = new Gtk.CellRendererText();
416 // set gobject values
419 // user defined functions
422 public class Xcls_dbmodel : Object
424 public Gtk.ListStore el;
425 private DialogTemplateSelect _this;
431 public Xcls_dbmodel(DialogTemplateSelect _owner )
434 _this.dbmodel = this;
435 this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
439 // set gobject values
442 // user defined functions
443 public void loadData (Gee.ArrayList<string> data) {
448 /// el.append(out iter);
451 // el.set_value(iter, 0, "");
452 // el.set_value(iter, 1, "aaa - Just add Element - aaa");
457 el.set_value(iter, 0, "");
458 el.set_value(iter, 1, "-- select a table --");
461 for (var i = 0; i < data.size;i++) {
466 el.set_value(iter, 0, data.get(i));
467 el.set_value(iter, 1, data.get(i));
470 this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);
478 public class Xcls_Button13 : Object
480 public Gtk.Button el;
481 private DialogTemplateSelect _this;
487 public Xcls_Button13(DialogTemplateSelect _owner )
490 this.el = new Gtk.Button();
494 // set gobject values
495 this.el.label = "Cancel";
498 // user defined functions
501 public class Xcls_Button14 : Object
503 public Gtk.Button el;
504 private DialogTemplateSelect _this;
510 public Xcls_Button14(DialogTemplateSelect _owner )
513 this.el = new Gtk.Button();
517 // set gobject values
518 this.el.label = "Just add it";
521 // user defined functions
524 public class Xcls_Button15 : Object
526 public Gtk.Button el;
527 private DialogTemplateSelect _this;
533 public Xcls_Button15(DialogTemplateSelect _owner )
536 this.el = new Gtk.Button();
540 // set gobject values
541 this.el.label = "OK";
544 // user defined functions