src/Builder4/DialogTemplateSelect.bjs
[app.Builder.js] / src / Builder4 / DialogTemplateSelect.vala
1 static DialogTemplateSelect  _DialogTemplateSelect;
2
3 public class DialogTemplateSelect : Object 
4 {
5     public Gtk.Dialog el;
6     private DialogTemplateSelect  _this;
7
8     public static DialogTemplateSelect singleton()
9     {
10         if (_DialogTemplateSelect == null) {
11             _DialogTemplateSelect= new DialogTemplateSelect();
12         }
13         return _DialogTemplateSelect;
14     }
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;
21
22         // my vars (def)
23
24     // ctor 
25     public DialogTemplateSelect()
26     {
27         _this = this;
28         this.el = new Gtk.Dialog();
29
30         // my vars (dec)
31
32         // set gobject values
33         this.el.title = "Add an Object";
34         this.el.default_height = 200;
35         this.el.default_width = 400;
36         this.el.modal = true;
37         var child_0 = new Xcls_VBox2( _this );
38         child_0.ref();
39         this.el.get_content_area().add (  child_0.el  );
40         var child_1 = new Xcls_Button13( _this );
41         child_1.ref();
42         this.el.add_action_widget (  child_1.el , 0 );
43         var child_2 = new Xcls_Button14( _this );
44         child_2.ref();
45         this.el.add_action_widget (  child_2.el , 1 );
46         var child_3 = new Xcls_Button15( _this );
47         child_3.ref();
48         this.el.add_action_widget (  child_3.el , 2 );
49
50         // listeners 
51         this.el.delete_event.connect( (self, event)  =>{
52             this.el.hide();
53             return true;
54         });
55     }
56
57     // user defined functions 
58     public JsRender.Node? show (Xcls_MainWindow mwindow, Palete.Palete pal, JsRender.Node node, Project.Project project) {
59         
60         this.el.show_all();
61         var opts = pal.listTemplates(node);
62         if (opts.length() < 1) {
63             this.el.hide();
64             return node;
65         }
66         this.el.set_attached_to( mwindow.el);
67         this.el.set_transient_for( mwindow.el);
68         
69         //opts.unshift({ path: '' , name :'Just add Element' });
70          _this.model.loadData(opts);
71          _this.combo.el.set_active(-1);
72          
73          
74          var db =  new Palete.RooDatabase.from_project(project);
75          _this.dbmodel.loadData(db.readTablesGee());
76          
77          var plug = mwindow.windowstate.webkit_plugin;
78          
79          _this.dbcombo.el.set_active(-1);
80          
81          
82        
83         var res = this.el.run();
84         this.el.hide();    
85         //var ix = _this.combo.el.get_active();
86         if (res < 1 ) {
87             return null; // 0 = cancel.
88         }
89         if (res < 2 ) {
90             return node; // 1 = just add it..
91         }
92         
93         // have they selected a table??
94         
95        Gtk.TreeIter iter; 
96         Value vfname;   
97         if (_this.dbcombo.el.get_active_iter (out iter)) {    
98              this.dbmodel.el.get_value (iter, 0, out vfname);
99              if (vfname.length > 0 && plug.has_plugin(node.fqn())) {
100                 var json_str = plug.show(mwindow.el, project, node.fqn(), (string)vfname);
101                 if (json_str.length < 1) {
102                     return node;
103                 }
104                 var pa = new Json.Parser();
105             pa.load_from_data(json_str);
106             var new_node = pa.get_root();
107     
108             if (new_node.get_node_type () != Json.NodeType.OBJECT) {
109                     return node;
110             }
111             var obj = new_node.get_object ();
112     
113             var ret = new JsRender.Node();
114     
115             ret.loadFromJson(obj, 1);
116             return ret;
117              }
118             
119         }
120     
121         if (!_this.combo.el.get_active_iter (out iter)) {
122     
123             return node; // nothing selected...
124         }
125        
126         this.model.el.get_value (iter, 0, out vfname);
127         
128         
129         return pal.loadTemplate((string)vfname);
130     
131     }
132     public class Xcls_VBox2 : Object 
133     {
134         public Gtk.VBox el;
135         private DialogTemplateSelect  _this;
136
137
138             // my vars (def)
139
140         // ctor 
141         public Xcls_VBox2(DialogTemplateSelect _owner )
142         {
143             _this = _owner;
144             this.el = new Gtk.VBox( true, 0 );
145
146             // my vars (dec)
147
148             // set gobject values
149             var child_0 = new Xcls_HBox3( _this );
150             child_0.ref();
151             this.el.pack_start (  child_0.el , false,false,0 );
152             var child_1 = new Xcls_HBox8( _this );
153             child_1.ref();
154             this.el.pack_start (  child_1.el , false,false,0 );
155         }
156
157         // user defined functions 
158     }
159     public class Xcls_HBox3 : Object 
160     {
161         public Gtk.HBox el;
162         private DialogTemplateSelect  _this;
163
164
165             // my vars (def)
166
167         // ctor 
168         public Xcls_HBox3(DialogTemplateSelect _owner )
169         {
170             _this = _owner;
171             this.el = new Gtk.HBox( true, 0 );
172
173             // my vars (dec)
174
175             // set gobject values
176             this.el.margin = 3;
177             var child_0 = new Xcls_Label4( _this );
178             child_0.ref();
179             this.el.pack_start (  child_0.el , false,false );
180             var child_1 = new Xcls_combo( _this );
181             child_1.ref();
182             this.el.add (  child_1.el  );
183         }
184
185         // user defined functions 
186     }
187     public class Xcls_Label4 : Object 
188     {
189         public Gtk.Label el;
190         private DialogTemplateSelect  _this;
191
192
193             // my vars (def)
194
195         // ctor 
196         public Xcls_Label4(DialogTemplateSelect _owner )
197         {
198             _this = _owner;
199             this.el = new Gtk.Label( "Select Template : " );
200
201             // my vars (dec)
202
203             // set gobject values
204         }
205
206         // user defined functions 
207     }
208     public class Xcls_combo : Object 
209     {
210         public Gtk.ComboBox el;
211         private DialogTemplateSelect  _this;
212
213
214             // my vars (def)
215
216         // ctor 
217         public Xcls_combo(DialogTemplateSelect _owner )
218         {
219             _this = _owner;
220             _this.combo = this;
221             this.el = new Gtk.ComboBox();
222
223             // my vars (dec)
224
225             // set gobject values
226             var child_0 = new Xcls_cellrenderer( _this );
227             child_0.ref();
228             this.el.pack_start (  child_0.el , true );
229             var child_1 = new Xcls_model( _this );
230             child_1.ref();
231             this.el.set_model (  child_1.el  );
232
233             // init method 
234
235             this.el.add_attribute(_this.cellrenderer.el , "markup", 1 );
236         }
237
238         // user defined functions 
239     }
240     public class Xcls_cellrenderer : Object 
241     {
242         public Gtk.CellRendererText el;
243         private DialogTemplateSelect  _this;
244
245
246             // my vars (def)
247
248         // ctor 
249         public Xcls_cellrenderer(DialogTemplateSelect _owner )
250         {
251             _this = _owner;
252             _this.cellrenderer = this;
253             this.el = new Gtk.CellRendererText();
254
255             // my vars (dec)
256
257             // set gobject values
258         }
259
260         // user defined functions 
261     }
262     public class Xcls_model : Object 
263     {
264         public Gtk.ListStore el;
265         private DialogTemplateSelect  _this;
266
267
268             // my vars (def)
269
270         // ctor 
271         public Xcls_model(DialogTemplateSelect _owner )
272         {
273             _this = _owner;
274             _this.model = this;
275             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
276
277             // my vars (dec)
278
279             // set gobject values
280         }
281
282         // user defined functions 
283         public void loadData (GLib.List<string> data) {
284             this.el.clear();                                    
285             Gtk.TreeIter iter;
286             var el = this.el;
287             
288            /// el.append(out iter);
289             
290              
291            // el.set_value(iter, 0, "");
292            // el.set_value(iter, 1, "aaa  - Just add Element - aaa");
293             
294             for (var i = 0; i < data.length();i++) {
295             
296         
297                 el.append(out iter);
298                 var str = data.nth_data(i);
299                 var fn = Path.get_basename (str);
300                 fn.replace(".json", "");
301                 
302                 el.set_value(iter, 0, str);
303                 el.set_value(iter, 1, fn);
304                 
305             }
306             this.el.set_sort_column_id(1, Gtk.SortType.ASCENDING);          
307                                              
308         }
309     }
310     public class Xcls_HBox8 : Object 
311     {
312         public Gtk.HBox el;
313         private DialogTemplateSelect  _this;
314
315
316             // my vars (def)
317
318         // ctor 
319         public Xcls_HBox8(DialogTemplateSelect _owner )
320         {
321             _this = _owner;
322             this.el = new Gtk.HBox( true, 0 );
323
324             // my vars (dec)
325
326             // set gobject values
327             this.el.margin = 3;
328             var child_0 = new Xcls_Label9( _this );
329             child_0.ref();
330             this.el.pack_start (  child_0.el , false,false );
331             var child_1 = new Xcls_dbcombo( _this );
332             child_1.ref();
333             this.el.add (  child_1.el  );
334         }
335
336         // user defined functions 
337     }
338     public class Xcls_Label9 : Object 
339     {
340         public Gtk.Label el;
341         private DialogTemplateSelect  _this;
342
343
344             // my vars (def)
345
346         // ctor 
347         public Xcls_Label9(DialogTemplateSelect _owner )
348         {
349             _this = _owner;
350             this.el = new Gtk.Label( "Select Database Table : " );
351
352             // my vars (dec)
353
354             // set gobject values
355         }
356
357         // user defined functions 
358     }
359     public class Xcls_dbcombo : Object 
360     {
361         public Gtk.ComboBox el;
362         private DialogTemplateSelect  _this;
363
364
365             // my vars (def)
366
367         // ctor 
368         public Xcls_dbcombo(DialogTemplateSelect _owner )
369         {
370             _this = _owner;
371             _this.dbcombo = this;
372             this.el = new Gtk.ComboBox();
373
374             // my vars (dec)
375
376             // set gobject values
377             var child_0 = new Xcls_dbcellrenderer( _this );
378             child_0.ref();
379             this.el.pack_start (  child_0.el , true );
380             var child_1 = new Xcls_dbmodel( _this );
381             child_1.ref();
382             this.el.set_model (  child_1.el  );
383
384             // init method 
385
386             this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 );
387         }
388
389         // user defined functions 
390     }
391     public class Xcls_dbcellrenderer : Object 
392     {
393         public Gtk.CellRendererText el;
394         private DialogTemplateSelect  _this;
395
396
397             // my vars (def)
398
399         // ctor 
400         public Xcls_dbcellrenderer(DialogTemplateSelect _owner )
401         {
402             _this = _owner;
403             _this.dbcellrenderer = this;
404             this.el = new Gtk.CellRendererText();
405
406             // my vars (dec)
407
408             // set gobject values
409         }
410
411         // user defined functions 
412     }
413     public class Xcls_dbmodel : Object 
414     {
415         public Gtk.ListStore el;
416         private DialogTemplateSelect  _this;
417
418
419             // my vars (def)
420
421         // ctor 
422         public Xcls_dbmodel(DialogTemplateSelect _owner )
423         {
424             _this = _owner;
425             _this.dbmodel = this;
426             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
427
428             // my vars (dec)
429
430             // set gobject values
431         }
432
433         // user defined functions 
434         public void loadData (Gee.ArrayList<string> data) {
435             this.el.clear();                                    
436             Gtk.TreeIter iter;
437             var el = this.el;
438             
439            /// el.append(out iter);
440             
441              
442            // el.set_value(iter, 0, "");
443            // el.set_value(iter, 1, "aaa  - Just add Element - aaa");
444         
445             el.append(out iter);
446         
447             
448             el.set_value(iter, 0, "");
449             el.set_value(iter, 1, "-- select a table --");
450             
451             
452             for (var i = 0; i < data.size;i++) {
453             
454         
455                 el.append(out iter);
456                 
457                 el.set_value(iter, 0, data.get(i));
458                 el.set_value(iter, 1, data.get(i));
459                 
460             }
461              this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
462                                              
463         }
464     }
465     public class Xcls_Button13 : Object 
466     {
467         public Gtk.Button el;
468         private DialogTemplateSelect  _this;
469
470
471             // my vars (def)
472
473         // ctor 
474         public Xcls_Button13(DialogTemplateSelect _owner )
475         {
476             _this = _owner;
477             this.el = new Gtk.Button();
478
479             // my vars (dec)
480
481             // set gobject values
482             this.el.label = "Cancel";
483         }
484
485         // user defined functions 
486     }
487     public class Xcls_Button14 : Object 
488     {
489         public Gtk.Button el;
490         private DialogTemplateSelect  _this;
491
492
493             // my vars (def)
494
495         // ctor 
496         public Xcls_Button14(DialogTemplateSelect _owner )
497         {
498             _this = _owner;
499             this.el = new Gtk.Button();
500
501             // my vars (dec)
502
503             // set gobject values
504             this.el.label = "Just add it";
505         }
506
507         // user defined functions 
508     }
509     public class Xcls_Button15 : Object 
510     {
511         public Gtk.Button el;
512         private DialogTemplateSelect  _this;
513
514
515             // my vars (def)
516
517         // ctor 
518         public Xcls_Button15(DialogTemplateSelect _owner )
519         {
520             _this = _owner;
521             this.el = new Gtk.Button();
522
523             // my vars (dec)
524
525             // set gobject values
526             this.el.label = "OK";
527         }
528
529         // user defined functions 
530     }
531 }