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();
109 pa.load_from_data(json_str);
113 var new_node = pa.get_root();
115 if (new_node.get_node_type () != Json.NodeType.OBJECT) {
118 var obj = new_node.get_object ();
120 var ret = new JsRender.Node();
122 ret.loadFromJson(obj, 1);
128 if (!_this.combo.el.get_active_iter (out iter)) {
130 return node; // nothing selected...
133 this.model.el.get_value (iter, 0, out vfname);
136 return pal.loadTemplate((string)vfname);
139 public class Xcls_Box2 : Object
142 private DialogTemplateSelect _this;
148 public Xcls_Box2(DialogTemplateSelect _owner )
151 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
155 // set gobject values
156 var child_0 = new Xcls_Box3( _this );
158 this.el.pack_start ( child_0.el , false,false,0 );
159 var child_1 = new Xcls_Box8( _this );
161 this.el.pack_start ( child_1.el , false,false,0 );
164 // user defined functions
166 public class Xcls_Box3 : Object
169 private DialogTemplateSelect _this;
175 public Xcls_Box3(DialogTemplateSelect _owner )
178 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
182 // set gobject values
184 var child_0 = new Xcls_Label4( _this );
186 this.el.pack_start ( child_0.el , false,false );
187 var child_1 = new Xcls_combo( _this );
189 this.el.add ( child_1.el );
192 // user defined functions
194 public class Xcls_Label4 : Object
197 private DialogTemplateSelect _this;
203 public Xcls_Label4(DialogTemplateSelect _owner )
206 this.el = new Gtk.Label( "Select Template : " );
210 // set gobject values
213 // user defined functions
216 public class Xcls_combo : Object
218 public Gtk.ComboBox el;
219 private DialogTemplateSelect _this;
225 public Xcls_combo(DialogTemplateSelect _owner )
229 this.el = new Gtk.ComboBox();
233 // set gobject values
234 var child_0 = new Xcls_cellrenderer( _this );
236 this.el.pack_start ( child_0.el , true );
237 var child_1 = new Xcls_model( _this );
239 this.el.set_model ( child_1.el );
243 this.el.add_attribute(_this.cellrenderer.el , "markup", 1 );
246 // user defined functions
248 public class Xcls_cellrenderer : Object
250 public Gtk.CellRendererText el;
251 private DialogTemplateSelect _this;
257 public Xcls_cellrenderer(DialogTemplateSelect _owner )
260 _this.cellrenderer = this;
261 this.el = new Gtk.CellRendererText();
265 // set gobject values
268 // user defined functions
271 public class Xcls_model : Object
273 public Gtk.ListStore el;
274 private DialogTemplateSelect _this;
280 public Xcls_model(DialogTemplateSelect _owner )
284 this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
288 // set gobject values
291 // user defined functions
292 public void loadData (GLib.List<string> data) {
297 /// el.append(out iter);
300 // el.set_value(iter, 0, "");
301 // el.set_value(iter, 1, "aaa - Just add Element - aaa");
303 for (var i = 0; i < data.length();i++) {
307 var str = data.nth_data(i);
308 var fn = Path.get_basename (str);
309 fn.replace(".json", "");
311 el.set_value(iter, 0, str);
312 el.set_value(iter, 1, fn);
315 this.el.set_sort_column_id(1, Gtk.SortType.ASCENDING);
322 public class Xcls_Box8 : Object
325 private DialogTemplateSelect _this;
331 public Xcls_Box8(DialogTemplateSelect _owner )
334 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
338 // set gobject values
340 var child_0 = new Xcls_Label9( _this );
342 this.el.pack_start ( child_0.el , false,false );
343 var child_1 = new Xcls_dbcombo( _this );
345 this.el.add ( child_1.el );
348 // user defined functions
350 public class Xcls_Label9 : Object
353 private DialogTemplateSelect _this;
359 public Xcls_Label9(DialogTemplateSelect _owner )
362 this.el = new Gtk.Label( "Select Database Table : " );
366 // set gobject values
369 // user defined functions
372 public class Xcls_dbcombo : Object
374 public Gtk.ComboBox el;
375 private DialogTemplateSelect _this;
381 public Xcls_dbcombo(DialogTemplateSelect _owner )
384 _this.dbcombo = this;
385 this.el = new Gtk.ComboBox();
389 // set gobject values
390 var child_0 = new Xcls_dbcellrenderer( _this );
392 this.el.pack_start ( child_0.el , true );
393 var child_1 = new Xcls_dbmodel( _this );
395 this.el.set_model ( child_1.el );
399 this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 );
402 // user defined functions
404 public class Xcls_dbcellrenderer : Object
406 public Gtk.CellRendererText el;
407 private DialogTemplateSelect _this;
413 public Xcls_dbcellrenderer(DialogTemplateSelect _owner )
416 _this.dbcellrenderer = this;
417 this.el = new Gtk.CellRendererText();
421 // set gobject values
424 // user defined functions
427 public class Xcls_dbmodel : Object
429 public Gtk.ListStore el;
430 private DialogTemplateSelect _this;
436 public Xcls_dbmodel(DialogTemplateSelect _owner )
439 _this.dbmodel = this;
440 this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
444 // set gobject values
447 // user defined functions
448 public void loadData (Gee.ArrayList<string> data) {
453 /// el.append(out iter);
456 // el.set_value(iter, 0, "");
457 // el.set_value(iter, 1, "aaa - Just add Element - aaa");
462 el.set_value(iter, 0, "");
463 el.set_value(iter, 1, "-- select a table --");
466 for (var i = 0; i < data.size;i++) {
471 el.set_value(iter, 0, data.get(i));
472 el.set_value(iter, 1, data.get(i));
475 this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);
483 public class Xcls_Button13 : Object
485 public Gtk.Button el;
486 private DialogTemplateSelect _this;
492 public Xcls_Button13(DialogTemplateSelect _owner )
495 this.el = new Gtk.Button();
499 // set gobject values
500 this.el.label = "Cancel";
503 // user defined functions
506 public class Xcls_Button14 : Object
508 public Gtk.Button el;
509 private DialogTemplateSelect _this;
515 public Xcls_Button14(DialogTemplateSelect _owner )
518 this.el = new Gtk.Button();
522 // set gobject values
523 this.el.label = "Just add it";
526 // user defined functions
529 public class Xcls_Button15 : Object
531 public Gtk.Button el;
532 private DialogTemplateSelect _this;
538 public Xcls_Button15(DialogTemplateSelect _owner )
541 this.el = new Gtk.Button();
545 // set gobject values
546 this.el.label = "OK";
549 // user defined functions