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 (((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) {
103     
104                     return node;
105                 }
106                 var pa = new Json.Parser();
107             pa.load_from_data(json_str);
108             var new_node = pa.get_root();
109     
110             if (new_node.get_node_type () != Json.NodeType.OBJECT) {
111                     return node;
112             }
113             var obj = new_node.get_object ();
114     
115             var ret = new JsRender.Node();
116     
117             ret.loadFromJson(obj, 1);
118             return ret;
119              }
120             
121         }
122     
123         if (!_this.combo.el.get_active_iter (out iter)) {
124     
125             return node; // nothing selected...
126         }
127        
128         this.model.el.get_value (iter, 0, out vfname);
129         
130         
131         return pal.loadTemplate((string)vfname);
132     
133     }
134     public class Xcls_VBox2 : Object 
135     {
136         public Gtk.VBox el;
137         private DialogTemplateSelect  _this;
138
139
140             // my vars (def)
141
142         // ctor 
143         public Xcls_VBox2(DialogTemplateSelect _owner )
144         {
145             _this = _owner;
146             this.el = new Gtk.VBox( true, 0 );
147
148             // my vars (dec)
149
150             // set gobject values
151             var child_0 = new Xcls_HBox3( _this );
152             child_0.ref();
153             this.el.pack_start (  child_0.el , false,false,0 );
154             var child_1 = new Xcls_Box8( _this );
155             child_1.ref();
156             this.el.pack_start (  child_1.el , false,false,0 );
157         }
158
159         // user defined functions 
160     }
161     public class Xcls_HBox3 : Object 
162     {
163         public Gtk.HBox el;
164         private DialogTemplateSelect  _this;
165
166
167             // my vars (def)
168
169         // ctor 
170         public Xcls_HBox3(DialogTemplateSelect _owner )
171         {
172             _this = _owner;
173             this.el = new Gtk.HBox( true, 0 );
174
175             // my vars (dec)
176
177             // set gobject values
178             this.el.margin = 3;
179             var child_0 = new Xcls_Label4( _this );
180             child_0.ref();
181             this.el.pack_start (  child_0.el , false,false );
182             var child_1 = new Xcls_combo( _this );
183             child_1.ref();
184             this.el.add (  child_1.el  );
185         }
186
187         // user defined functions 
188     }
189     public class Xcls_Label4 : Object 
190     {
191         public Gtk.Label el;
192         private DialogTemplateSelect  _this;
193
194
195             // my vars (def)
196
197         // ctor 
198         public Xcls_Label4(DialogTemplateSelect _owner )
199         {
200             _this = _owner;
201             this.el = new Gtk.Label( "Select Template : " );
202
203             // my vars (dec)
204
205             // set gobject values
206         }
207
208         // user defined functions 
209     }
210     public class Xcls_combo : Object 
211     {
212         public Gtk.ComboBox el;
213         private DialogTemplateSelect  _this;
214
215
216             // my vars (def)
217
218         // ctor 
219         public Xcls_combo(DialogTemplateSelect _owner )
220         {
221             _this = _owner;
222             _this.combo = this;
223             this.el = new Gtk.ComboBox();
224
225             // my vars (dec)
226
227             // set gobject values
228             var child_0 = new Xcls_cellrenderer( _this );
229             child_0.ref();
230             this.el.pack_start (  child_0.el , true );
231             var child_1 = new Xcls_model( _this );
232             child_1.ref();
233             this.el.set_model (  child_1.el  );
234
235             // init method 
236
237             this.el.add_attribute(_this.cellrenderer.el , "markup", 1 );
238         }
239
240         // user defined functions 
241     }
242     public class Xcls_cellrenderer : Object 
243     {
244         public Gtk.CellRendererText el;
245         private DialogTemplateSelect  _this;
246
247
248             // my vars (def)
249
250         // ctor 
251         public Xcls_cellrenderer(DialogTemplateSelect _owner )
252         {
253             _this = _owner;
254             _this.cellrenderer = this;
255             this.el = new Gtk.CellRendererText();
256
257             // my vars (dec)
258
259             // set gobject values
260         }
261
262         // user defined functions 
263     }
264     public class Xcls_model : Object 
265     {
266         public Gtk.ListStore el;
267         private DialogTemplateSelect  _this;
268
269
270             // my vars (def)
271
272         // ctor 
273         public Xcls_model(DialogTemplateSelect _owner )
274         {
275             _this = _owner;
276             _this.model = this;
277             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
278
279             // my vars (dec)
280
281             // set gobject values
282         }
283
284         // user defined functions 
285         public void loadData (GLib.List<string> data) {
286             this.el.clear();                                    
287             Gtk.TreeIter iter;
288             var el = this.el;
289             
290            /// el.append(out iter);
291             
292              
293            // el.set_value(iter, 0, "");
294            // el.set_value(iter, 1, "aaa  - Just add Element - aaa");
295             
296             for (var i = 0; i < data.length();i++) {
297             
298         
299                 el.append(out iter);
300                 var str = data.nth_data(i);
301                 var fn = Path.get_basename (str);
302                 fn.replace(".json", "");
303                 
304                 el.set_value(iter, 0, str);
305                 el.set_value(iter, 1, fn);
306                 
307             }
308             this.el.set_sort_column_id(1, Gtk.SortType.ASCENDING);          
309                                              
310         }
311     }
312     public class Xcls_Box8 : Object 
313     {
314         public Gtk.Box el;
315         private DialogTemplateSelect  _this;
316
317
318             // my vars (def)
319
320         // ctor 
321         public Xcls_Box8(DialogTemplateSelect _owner )
322         {
323             _this = _owner;
324             this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
325
326             // my vars (dec)
327
328             // set gobject values
329             this.el.margin = 3;
330             var child_0 = new Xcls_Label9( _this );
331             child_0.ref();
332             this.el.pack_start (  child_0.el , false,false );
333             var child_1 = new Xcls_dbcombo( _this );
334             child_1.ref();
335             this.el.add (  child_1.el  );
336         }
337
338         // user defined functions 
339     }
340     public class Xcls_Label9 : Object 
341     {
342         public Gtk.Label el;
343         private DialogTemplateSelect  _this;
344
345
346             // my vars (def)
347
348         // ctor 
349         public Xcls_Label9(DialogTemplateSelect _owner )
350         {
351             _this = _owner;
352             this.el = new Gtk.Label( "Select Database Table : " );
353
354             // my vars (dec)
355
356             // set gobject values
357         }
358
359         // user defined functions 
360     }
361     public class Xcls_dbcombo : Object 
362     {
363         public Gtk.ComboBox el;
364         private DialogTemplateSelect  _this;
365
366
367             // my vars (def)
368
369         // ctor 
370         public Xcls_dbcombo(DialogTemplateSelect _owner )
371         {
372             _this = _owner;
373             _this.dbcombo = this;
374             this.el = new Gtk.ComboBox();
375
376             // my vars (dec)
377
378             // set gobject values
379             var child_0 = new Xcls_dbcellrenderer( _this );
380             child_0.ref();
381             this.el.pack_start (  child_0.el , true );
382             var child_1 = new Xcls_dbmodel( _this );
383             child_1.ref();
384             this.el.set_model (  child_1.el  );
385
386             // init method 
387
388             this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 );
389         }
390
391         // user defined functions 
392     }
393     public class Xcls_dbcellrenderer : Object 
394     {
395         public Gtk.CellRendererText el;
396         private DialogTemplateSelect  _this;
397
398
399             // my vars (def)
400
401         // ctor 
402         public Xcls_dbcellrenderer(DialogTemplateSelect _owner )
403         {
404             _this = _owner;
405             _this.dbcellrenderer = this;
406             this.el = new Gtk.CellRendererText();
407
408             // my vars (dec)
409
410             // set gobject values
411         }
412
413         // user defined functions 
414     }
415     public class Xcls_dbmodel : Object 
416     {
417         public Gtk.ListStore el;
418         private DialogTemplateSelect  _this;
419
420
421             // my vars (def)
422
423         // ctor 
424         public Xcls_dbmodel(DialogTemplateSelect _owner )
425         {
426             _this = _owner;
427             _this.dbmodel = this;
428             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
429
430             // my vars (dec)
431
432             // set gobject values
433         }
434
435         // user defined functions 
436         public void loadData (Gee.ArrayList<string> data) {
437             this.el.clear();                                    
438             Gtk.TreeIter iter;
439             var el = this.el;
440             
441            /// el.append(out iter);
442             
443              
444            // el.set_value(iter, 0, "");
445            // el.set_value(iter, 1, "aaa  - Just add Element - aaa");
446         
447             el.append(out iter);
448         
449             
450             el.set_value(iter, 0, "");
451             el.set_value(iter, 1, "-- select a table --");
452             
453             
454             for (var i = 0; i < data.size;i++) {
455             
456         
457                 el.append(out iter);
458                 
459                 el.set_value(iter, 0, data.get(i));
460                 el.set_value(iter, 1, data.get(i));
461                 
462             }
463              this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
464                                              
465         }
466     }
467     public class Xcls_Button13 : Object 
468     {
469         public Gtk.Button el;
470         private DialogTemplateSelect  _this;
471
472
473             // my vars (def)
474
475         // ctor 
476         public Xcls_Button13(DialogTemplateSelect _owner )
477         {
478             _this = _owner;
479             this.el = new Gtk.Button();
480
481             // my vars (dec)
482
483             // set gobject values
484             this.el.label = "Cancel";
485         }
486
487         // user defined functions 
488     }
489     public class Xcls_Button14 : Object 
490     {
491         public Gtk.Button el;
492         private DialogTemplateSelect  _this;
493
494
495             // my vars (def)
496
497         // ctor 
498         public Xcls_Button14(DialogTemplateSelect _owner )
499         {
500             _this = _owner;
501             this.el = new Gtk.Button();
502
503             // my vars (dec)
504
505             // set gobject values
506             this.el.label = "Just add it";
507         }
508
509         // user defined functions 
510     }
511     public class Xcls_Button15 : Object 
512     {
513         public Gtk.Button el;
514         private DialogTemplateSelect  _this;
515
516
517             // my vars (def)
518
519         // ctor 
520         public Xcls_Button15(DialogTemplateSelect _owner )
521         {
522             _this = _owner;
523             this.el = new Gtk.Button();
524
525             // my vars (dec)
526
527             // set gobject values
528             this.el.label = "OK";
529         }
530
531         // user defined functions 
532     }
533 }