src/Builder4/DialogPluginWebkit.bjs
[app.Builder.js] / src / Builder4 / DialogPluginWebkit.vala
1 static Xcls_DialogPluginWebkit  _DialogPluginWebkit;
2
3 public class Xcls_DialogPluginWebkit : Object 
4 {
5     public Gtk.Dialog el;
6     private Xcls_DialogPluginWebkit  _this;
7
8     public static Xcls_DialogPluginWebkit singleton()
9     {
10         if (_DialogPluginWebkit == null) {
11             _DialogPluginWebkit= new Xcls_DialogPluginWebkit();
12         }
13         return _DialogPluginWebkit;
14     }
15     public Xcls_webview webview;
16
17         // my vars (def)
18
19     // ctor 
20     public Xcls_DialogPluginWebkit()
21     {
22         _this = this;
23         this.el = new Gtk.Dialog();
24
25         // my vars (dec)
26
27         // set gobject values
28         this.el.title = "Add / Edit Component";
29         this.el.default_height = 500;
30         this.el.default_width = 500;
31         this.el.deletable = true;
32         this.el.modal = true;
33         var child_0 = new Xcls_VBox2( _this );
34         child_0.ref();
35         this.el.get_content_area().add (  child_0.el  );
36         var child_1 = new Xcls_Button5( _this );
37         child_1.ref();
38         this.el.add_action_widget (  child_1.el , 0 );
39         var child_2 = new Xcls_Button6( _this );
40         child_2.ref();
41         this.el.add_action_widget (  child_2.el , 1 );
42
43         // listeners 
44         this.el.delete_event.connect( (self, event) => {
45             this.el.hide();
46             return true; 
47             //test  
48         });
49     }
50
51     // user defined functions 
52     public string show (Gtk.Window ?parent, string text) {// JsRender.Node node) {
53      
54         if (parent  != null) {
55             this.el.set_transient_for(parent);
56             this.el.modal = true;
57         }
58         
59         
60         var runhtml = "<script type=\"text/javascript\">\n" ;
61         string builderhtml;
62         
63         
64         GLib.FileUtils.get_contents(BuilderApplication.configDirectory() + "/resources/roo.builder.js", out builderhtml);
65     
66         runhtml += builderhtml + "\n";
67         runhtml += "</script>\n" ;
68     
69         // fix to make sure they are the same..
70         
71         // need to modify paths
72     
73         string inhtml;
74         
75         GLib.FileUtils.get_contents(
76             BuilderApplication.configDirectory() + "/resources/roo.builder.html"
77                 , out inhtml);
78         
79         
80     /*
81         string js_src = js + "\n" +
82         "Roo.onReady(function() {\n" +
83         "if (" + _this.file.name +".show) " +  _this.file.name +".show({});\n" +
84         "Roo.XComponent.build();\n" +
85         "});\n";
86     */  
87       
88         //var fc =    FakeServerCache.factory_with_data(js_src);
89         //this.runjs = fc.fname;
90         
91             var html = inhtml.replace("</head>", runhtml + this.runhtml + 
92     
93           //      "<script type=\"text/javascript\" src=\"xhttp://localhost" + fc.fname + "\"></script>" +   
94                   //  "<script type=\"text/javascript\">\n" +
95                   //  js_src + "\n" + 
96                   //  "</script>" + 
97                             
98             "</head>");
99             //print("LOAD HTML " + html);
100             
101              //var rootURL = _this.file.project.rootURL;
102        
103             
104             
105             this.el.load_html( html , 
106                 //fixme - should be a config option!
107                 "xhttp://localhost/app.Builder.js/"
108             );
109         
110             
111         
112         this.el.show_all();
113          var   ret = "";
114         while (true) {
115             var response_id = this.el.run();
116             if (response_id < 1) {
117                 this.el.hide();
118                  return "";
119             }
120             // keep showing...?
121             break;
122         }
123         
124         // now we save it..
125         this.el.hide();
126         
127         return ret;
128         
129         
130         
131     }
132     public class Xcls_VBox2 : Object 
133     {
134         public Gtk.VBox el;
135         private Xcls_DialogPluginWebkit  _this;
136
137
138             // my vars (def)
139
140         // ctor 
141         public Xcls_VBox2(Xcls_DialogPluginWebkit _owner )
142         {
143             _this = _owner;
144             this.el = new Gtk.VBox( false, 0 );
145
146             // my vars (dec)
147
148             // set gobject values
149             var child_0 = new Xcls_ScrolledWindow3( _this );
150             child_0.ref();
151             this.el.pack_start (  child_0.el , false,true,3 );
152         }
153
154         // user defined functions 
155     }
156     public class Xcls_ScrolledWindow3 : Object 
157     {
158         public Gtk.ScrolledWindow el;
159         private Xcls_DialogPluginWebkit  _this;
160
161
162             // my vars (def)
163
164         // ctor 
165         public Xcls_ScrolledWindow3(Xcls_DialogPluginWebkit _owner )
166         {
167             _this = _owner;
168             this.el = new Gtk.ScrolledWindow( null, null );
169
170             // my vars (dec)
171
172             // set gobject values
173             this.el.expand = true;
174             var child_0 = new Xcls_webview( _this );
175             child_0.ref();
176             this.el.add (  child_0.el  );
177
178             // init method 
179
180             this.el.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
181         }
182
183         // user defined functions 
184     }
185     public class Xcls_webview : Object 
186     {
187         public WebKit.WebView el;
188         private Xcls_DialogPluginWebkit  _this;
189
190
191             // my vars (def)
192
193         // ctor 
194         public Xcls_webview(Xcls_DialogPluginWebkit _owner )
195         {
196             _this = _owner;
197             _this.webview = this;
198             this.el = new WebKit.WebView();
199
200             // my vars (dec)
201
202             // set gobject values
203
204             // init method 
205
206             {
207                 // this may not work!?
208                 var settings =  this.el.get_settings();
209                 
210                  
211                 //var fs= new FakeServer(this.el);
212                 //fs.ref();
213                 // this was an attempt to change the url perms.. did not work..
214                 // settings.enable_file_access_from_file_uris = true;
215                 // settings.enable_offline_web_application_cache - true;
216                 // settings.enable_universal_access_from_file_uris = true;
217                
218                  
219                 
220                 
221                 
222             
223                  // FIXME - base url of script..
224                  // we need it so some of the database features work.
225                 this.el.load_html( "Render not ready" , 
226                         //fixme - should be a config option!
227                         // or should we catch stuff and fix it up..
228                         "xhttp://localhost/app.Builder/"
229                 );
230                     
231                     
232                 
233                 
234             }
235         }
236
237         // user defined functions 
238     }
239     public class Xcls_Button5 : Object 
240     {
241         public Gtk.Button el;
242         private Xcls_DialogPluginWebkit  _this;
243
244
245             // my vars (def)
246
247         // ctor 
248         public Xcls_Button5(Xcls_DialogPluginWebkit _owner )
249         {
250             _this = _owner;
251             this.el = new Gtk.Button();
252
253             // my vars (dec)
254
255             // set gobject values
256             this.el.label = "Cancel";
257         }
258
259         // user defined functions 
260     }
261     public class Xcls_Button6 : Object 
262     {
263         public Gtk.Button el;
264         private Xcls_DialogPluginWebkit  _this;
265
266
267             // my vars (def)
268
269         // ctor 
270         public Xcls_Button6(Xcls_DialogPluginWebkit _owner )
271         {
272             _this = _owner;
273             this.el = new Gtk.Button();
274
275             // my vars (dec)
276
277             // set gobject values
278             this.el.label = "OK";
279         }
280
281         // user defined functions 
282     }
283 }