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_VBox2( _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_VBox2 : Object
137 private DialogTemplateSelect _this;
143 public Xcls_VBox2(DialogTemplateSelect _owner )
146 this.el = new Gtk.VBox( true, 0 );
150 // set gobject values
151 var child_0 = new Xcls_HBox3( _this );
153 this.el.pack_start ( child_0.el , false,false,0 );
154 var child_1 = new Xcls_HBox8( _this );
156 this.el.pack_start ( child_1.el , false,false,0 );
159 // user defined functions
161 public class Xcls_HBox3 : Object
164 private DialogTemplateSelect _this;
170 public Xcls_HBox3(DialogTemplateSelect _owner )
173 this.el = new Gtk.HBox( true, 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
210 public class Xcls_combo : Object
212 public Gtk.ComboBox el;
213 private DialogTemplateSelect _this;
219 public Xcls_combo(DialogTemplateSelect _owner )
223 this.el = new Gtk.ComboBox();
227 // set gobject values
228 var child_0 = new Xcls_cellrenderer( _this );
230 this.el.pack_start ( child_0.el , true );
231 var child_1 = new Xcls_model( _this );
233 this.el.set_model ( child_1.el );
237 this.el.add_attribute(_this.cellrenderer.el , "markup", 1 );
240 // user defined functions
242 public class Xcls_cellrenderer : Object
244 public Gtk.CellRendererText el;
245 private DialogTemplateSelect _this;
251 public Xcls_cellrenderer(DialogTemplateSelect _owner )
254 _this.cellrenderer = this;
255 this.el = new Gtk.CellRendererText();
259 // set gobject values
262 // user defined functions
264 public class Xcls_model : Object
266 public Gtk.ListStore el;
267 private DialogTemplateSelect _this;
273 public Xcls_model(DialogTemplateSelect _owner )
277 this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
281 // set gobject values
284 // user defined functions
285 public void loadData (GLib.List<string> data) {
290 /// el.append(out iter);
293 // el.set_value(iter, 0, "");
294 // el.set_value(iter, 1, "aaa - Just add Element - aaa");
296 for (var i = 0; i < data.length();i++) {
300 var str = data.nth_data(i);
301 var fn = Path.get_basename (str);
302 fn.replace(".json", "");
304 el.set_value(iter, 0, str);
305 el.set_value(iter, 1, fn);
308 this.el.set_sort_column_id(1, Gtk.SortType.ASCENDING);
312 public class Xcls_HBox8 : Object
315 private DialogTemplateSelect _this;
321 public Xcls_HBox8(DialogTemplateSelect _owner )
324 this.el = new Gtk.HBox( true, 0 );
328 // set gobject values
330 var child_0 = new Xcls_Label9( _this );
332 this.el.pack_start ( child_0.el , false,false );
333 var child_1 = new Xcls_dbcombo( _this );
335 this.el.add ( child_1.el );
338 // user defined functions
340 public class Xcls_Label9 : Object
343 private DialogTemplateSelect _this;
349 public Xcls_Label9(DialogTemplateSelect _owner )
352 this.el = new Gtk.Label( "Select Database Table : " );
356 // set gobject values
359 // user defined functions
361 public class Xcls_dbcombo : Object
363 public Gtk.ComboBox el;
364 private DialogTemplateSelect _this;
370 public Xcls_dbcombo(DialogTemplateSelect _owner )
373 _this.dbcombo = this;
374 this.el = new Gtk.ComboBox();
378 // set gobject values
379 var child_0 = new Xcls_dbcellrenderer( _this );
381 this.el.pack_start ( child_0.el , true );
382 var child_1 = new Xcls_dbmodel( _this );
384 this.el.set_model ( child_1.el );
388 this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 );
391 // user defined functions
393 public class Xcls_dbcellrenderer : Object
395 public Gtk.CellRendererText el;
396 private DialogTemplateSelect _this;
402 public Xcls_dbcellrenderer(DialogTemplateSelect _owner )
405 _this.dbcellrenderer = this;
406 this.el = new Gtk.CellRendererText();
410 // set gobject values
413 // user defined functions
415 public class Xcls_dbmodel : Object
417 public Gtk.ListStore el;
418 private DialogTemplateSelect _this;
424 public Xcls_dbmodel(DialogTemplateSelect _owner )
427 _this.dbmodel = this;
428 this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
432 // set gobject values
435 // user defined functions
436 public void loadData (Gee.ArrayList<string> data) {
441 /// el.append(out iter);
444 // el.set_value(iter, 0, "");
445 // el.set_value(iter, 1, "aaa - Just add Element - aaa");
450 el.set_value(iter, 0, "");
451 el.set_value(iter, 1, "-- select a table --");
454 for (var i = 0; i < data.size;i++) {
459 el.set_value(iter, 0, data.get(i));
460 el.set_value(iter, 1, data.get(i));
463 this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);
467 public class Xcls_Button13 : Object
469 public Gtk.Button el;
470 private DialogTemplateSelect _this;
476 public Xcls_Button13(DialogTemplateSelect _owner )
479 this.el = new Gtk.Button();
483 // set gobject values
484 this.el.label = "Cancel";
487 // user defined functions
489 public class Xcls_Button14 : Object
491 public Gtk.Button el;
492 private DialogTemplateSelect _this;
498 public Xcls_Button14(DialogTemplateSelect _owner )
501 this.el = new Gtk.Button();
505 // set gobject values
506 this.el.label = "Just add it";
509 // user defined functions
511 public class Xcls_Button15 : Object
513 public Gtk.Button el;
514 private DialogTemplateSelect _this;
520 public Xcls_Button15(DialogTemplateSelect _owner )
523 this.el = new Gtk.Button();
527 // set gobject values
528 this.el.label = "OK";
531 // user defined functions