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