Test.GtkWriter.vala.c
[app.Builder.js] / Builder4 / DialogTemplateSelect.js
1 Gtk = imports.gi.Gtk;
2 Gdk = imports.gi.Gdk;
3 Pango = imports.gi.Pango;
4 GLib = imports.gi.GLib;
5 Gio = imports.gi.Gio;
6 GObject = imports.gi.GObject;
7 GtkSource = imports.gi.GtkSource;
8 WebKit = imports.gi.WebKit;
9 Vte = imports.gi.Vte;
10 console = imports.console;
11 XObject = imports.XObject.XObject;
12 DialogTemplateSelect=new XObject({
13     xtype: Gtk.Dialog,
14     listeners : {
15         delete_event : (self, event)  =>{
16             this.el.hide();
17             return true;
18         }
19     },
20     default_height : 200,
21     default_width : 400,
22     'JsRender.Node?:show' : (Palete.Palete pal, JsRender.Node node) {
23         
24     
25         var opts = pal.listTemplates(node);
26         if (opts.length() < 1) {
27             return node;
28         }
29         
30         //opts.unshift({ path: '' , name :'Just add Element' });
31          _this.model.loadData(opts);
32          _this.combo.el.set_active(0);
33          
34         this.el.show_all();
35         this.el.run();
36         this.el.hide();
37         var ix = _this.combo.el.get_active();
38         if (ix < 1 ) {
39             return null;
40         }
41         
42     
43         return pal.loadTemplate(opts.nth_data(ix));
44     
45     },
46     modal : true,
47     items : [
48         {
49             xtype: Gtk.VBox,
50             pack : get_content_area().add,
51             items : [
52                 {
53                     xtype: Gtk.HBox,
54                     pack : "pack_start,false,false,0",
55                     items : [
56                         {
57                             xtype: Gtk.Label,
58                             label : "Select Template : ",
59                             pack : "pack_start,false,false"
60                         },
61                         {
62                             xtype: Gtk.ComboBox,
63                             id : "combo",
64                             pack : "add",
65                             init : this.el.add_attribute(_this.cellrenderer , "markup", 1 );,
66                             items : [
67                                 {
68                                     xtype: Gtk.CellRendererText,
69                                     id : "cellrenderer",
70                                     pack : "pack_start,true"
71                                 },
72                                 {
73                                     xtype: Gtk.ListStore,
74                                     id : "model",
75                                     n_columns : 2,
76                                     pack : "set_model",
77                                     columns : typeof(string),typeof(string),
78                                     'void:loadData' : (GLib.List<string> data) {
79                                         this.el.clear();                                    
80                                         Gtk.TreeIter iter;
81                                         var el = this.el;
82                                         
83                                         el.append(out iter);
84                                         
85                                          
86                                         el.set_value(iter, 0, "");
87                                         el.set_value(iter, 1, "Just add Element");
88                                         
89                                         for (var i = 0; i < data.length();i++) {
90                                         
91                                     
92                                             el.append(out iter);
93                                             var str = data.nth_data(i);
94                                             var fn = Path.get_basename (str);
95                                             fn.replace(".json", "");
96                                             
97                                             el.set_value(iter, 0, fn);
98                                             el.set_value(iter, 1, str);
99                                             
100                                         }
101                                                   
102                                                                          
103                                     }
104                                 }
105                             ]
106                         }
107                     ]
108                 }
109             ]
110         },
111         {
112             xtype: Gtk.Button,
113             label : "OK",
114             pack : "add_action_widget,0"
115         }
116     ]
117 });
118 DialogTemplateSelect.init();
119 XObject.cache['/DialogTemplateSelect'] = DialogTemplateSelect;