2 "build_module" : "builder",
6 "@ void buttonPressed" : "(string btn)",
7 "Gtk.PositionType position" : "Gtk.PositionType.RIGHT",
8 "Project.Project project" : "",
11 "id" : "RooProjectSettings",
14 "$ homogeneous" : false,
17 "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
22 "* pack" : "pack_start,true,true,0",
27 "id" : "label_global",
28 "utf8 label" : "Global",
34 "id" : "label_database",
35 "utf8 label" : "Database",
40 "* pack" : "append_page,_this.label_global.el",
41 "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
42 "gboolean homogeneous" : false,
45 "$ homogeneous" : true,
47 "* pack" : "pack_start,false,false,4",
50 "int margin_start" : 4,
54 "* pack" : "attach,0,0,1,1",
62 "* pack" : "attach,1,0,1,1",
71 "* pack" : "attach,0,1,1,1",
73 "label" : "HTML template file",
78 "* init" : "this.el.add_attribute(_this.base_template_cellrenderer.el , \"markup\", 0 );",
79 "* pack" : "attach,1,1,1,1",
80 "bool loading" : false,
81 "id" : "base_template",
85 "* pack" : "pack_start,true",
86 "id" : "base_template_cellrenderer",
87 "xtype" : "CellRendererText"
90 "$ columns" : "typeof(string)",
92 "* pack" : "set_model",
93 "id" : "base_template_model",
95 "xtype" : "ListStore",
98 "\t_this.base_template.loading = true;",
100 " this.el.clear(); ",
101 " Gtk.TreeIter iter;",
102 " var el = this.el;",
104 " /// el.append(out iter);",
107 " el.append(out iter);",
108 " el.set_value(iter, 0, \"roo.builder.html\");",
109 " _this.base_template.el.set_active_iter(iter);",
110 "\tif (_this.project.base_template == \"roo.builder.html\") {",
111 "\t _this.base_template.el.set_active_iter(iter);",
114 " el.append(out iter);",
115 " el.set_value(iter, 0, \"bootstrap.builder.html\");",
117 "\tprint(\"\\ncur template = %s\\n\", _this.project.base_template);",
119 " if (_this.project.base_template == \"bootstrap.builder.html\") {",
120 "\t _this.base_template.el.set_active_iter(iter);",
122 "\t el.append(out iter);",
123 " el.set_value(iter, 0, \"bootstrap4.builder.html\");",
124 " if (_this.project.base_template == \"bootstrap4.builder.html\") {",
125 "\t _this.base_template.el.set_active_iter(iter);",
129 "\tel.append(out iter);",
130 " el.set_value(iter, 0, \"mailer.builder.html\");",
132 "\tif (_this.project.base_template == \"mailer.builder.html\") {",
133 "\t _this.base_template.el.set_active_iter(iter);",
135 "\t_this.base_template.loading = false;",
145 "\tGtk.TreeIter iter;",
147 "\t// this get's called when we are filling in the data... ???",
148 "\tif (this.loading) {",
153 "\tif (this.el.get_active_iter(out iter)) {",
155 "\t\t_this.base_template_model.el.get_value (iter, 0, out vfname);",
156 "\t\t_this.project.base_template = ((string)vfname) ;",
158 "\t\t print(\"\\nSET base template to %s\\n\", _this.project.base_template );",
159 "\t\t// is_bjs = ((string)vfname) == \"bjs\";",
163 " // directory is only available for non-bjs ",
175 "* pack" : "attach,0,2,1,1",
177 "label" : "root URL",
182 "* pack" : "attach,1,2,1,1",
188 "* pack" : "attach,0,3,1,1",
190 "label" : "Generate HTML in",
195 "* init" : "this.el.add_attribute(_this.html_gen_cellrenderer.el , \"markup\", 1 );",
196 "* pack" : "attach,1,3,1,1",
201 "* pack" : "pack_start,true",
202 "id" : "html_gen_cellrenderer",
203 "xtype" : "CellRendererText"
206 "$ columns" : "typeof(string),typeof(string)",
208 "* pack" : "set_model",
209 "id" : "html_gen_model",
211 "xtype" : "ListStore",
212 "| void loadData" : [
214 " this.el.clear(); ",
215 " Gtk.TreeIter iter;",
216 " var el = this.el;",
219 " el.append(out iter);",
222 " el.set_value(iter, 0, \"\");",
223 " el.set_value(iter, 1, \"Do not Generate\");",
224 " _this.html_gen.el.set_active_iter(iter);",
226 " el.append(out iter);",
228 " el.set_value(iter, 0, \"bjs\");",
229 " el.set_value(iter, 1, \"same directory as BJS file\");",
230 "\tif (cur == \"bjs\") {",
231 "\t _this.html_gen.el.set_active_iter(iter);",
236 " el.append(out iter);",
238 " el.set_value(iter, 0, \"templates\");",
239 " el.set_value(iter, 1, \"in templates subdirectory\");",
241 "\tif (cur == \"template\") {",
242 "\t _this.html_gen.el.set_active_iter(iter);",
256 "uint row_spacing" : 2,
261 "* pack" : "pack_start,false,false,0",
262 "label" : "HTML To insert at end of <HEAD>",
267 "* pack" : "pack_start,true,true,0",
274 "this.css = new Gtk.CssProvider();",
276 "\tthis.css.load_from_data(\"#roo-project-settings-view{ font: monospace 10px;}\");",
277 "} catch (Error e) {}",
278 "this.el.get_style_context().add_provider(this.css,Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);",
283 "Gtk.CssProvider css" : "",
286 "key_release_event" : [
288 " if (event.keyval != 115) {",
292 " if ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {",
295 " var buf = this.el.get_buffer();",
298 " buf.get_start_iter(out s);",
299 " buf.get_end_iter(out e);",
300 " _this.project.runhtml = buf.get_text(s,e,true);",
303 " _this.buttonPressed(\"save\");",
310 "string name" : "roo-project-settings-view",
311 "xtype" : "SourceView"
314 "xtype" : "ScrolledWindow"
321 "* pack" : "append_page,_this.label_database.el",
322 "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
323 "gboolean homogeneous" : false,
327 "* pack" : "pack_start,false,false,0",
328 "label" : "Type (eg. MySQL or PostgreSQL)",
334 "* pack" : "pack_start,false,false,0",
335 "id" : "database_DBTYPE",
337 "key_press_event" : [
340 " if (ev.keyval == Gdk.Key.Tab) {",
341 " _this.database_DBNAME.el.grab_focus();",
355 "* pack" : "pack_start,false,false,0",
362 "* pack" : "pack_start,false,false,0",
363 "id" : "database_DBNAME",
365 "key_press_event" : [
368 " if (ev.keyval == Gdk.Key.Tab) {",
369 " _this.database_DBUSERNAME.el.grab_focus();",
383 "* pack" : "pack_start,false,false,0",
384 "label" : "Username",
390 "* pack" : "pack_start,false,false,0",
391 "id" : "database_DBUSERNAME",
393 "key_press_event" : [
396 " if (ev.keyval == Gdk.Key.Tab) {",
397 " _this.database_DBPASSWORD.el.grab_focus();",
411 "* pack" : "pack_start,false,false,0",
412 "label" : "Password",
418 "* pack" : "pack_start,false,false,0",
419 "id" : "database_DBPASSWORD",
424 "* pack" : "pack_start,false,false,0",
430 " _this.database_ERROR.el.label = \"\";",
431 " Gda.Connection cnc;",
433 " // assumes localhost...",
434 " cnc = Gda.Connection.open_from_string (",
435 "\t\t\t_this.database_DBTYPE.el.get_text(),",
436 "\t\t\t\"DB_NAME=\" + _this.database_DBNAME.el.get_text(), ",
437 "\t\t\t\"USERNAME=\" + _this.database_DBUSERNAME.el.get_text() + ",
438 "\t\t\t\";PASSWORD=\" + _this.database_DBPASSWORD.el.get_text(),",
439 "\t\t\tGda.ConnectionOptions.NONE",
441 " //} catch (Gda.ConnectionError ce) { ",
442 " // _this.database_ERROR.el.label = ce.message; ",
443 " } catch(Gda.ConnectionError ue) {",
444 " _this.database_ERROR.el.label = ue.message;",
446 " } catch(Gda.ConfigError ue) {",
447 " _this.database_ERROR.el.label = ue.message;",
450 " _this.database_ERROR.el.label = \"Connection Succeeded\";",
455 "utf8 label" : "Check Connection",
460 "* pack" : "pack_start,false,false,0",
462 "id" : "database_ERROR",
474 "$ Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL",
476 "int margin_bottom" : 4,
477 "int margin_end" : 4,
478 "int margin_start" : 4,
479 "int margin_top" : 4,
488 " _this.done = true;",
489 " _this.el.hide(); ",
493 "string label" : "Cancel",
503 " _this.buttonPressed(\"apply\");",
509 "string label" : "Apply / Keep editing",
520 " _this.buttonPressed(\"save\");",
522 "\t// what about .js ?",
523 " _this.done = true;",
524 "\t_this.el.hide();",
526 "// hopefull this will work with bjs files..",
533 "string label" : "Save",
537 "xtype" : "ButtonBox"
543 "uint border_width" : 0,
547 " var buf = _this.view.el.get_buffer();",
550 " buf.get_start_iter(out s);",
551 " buf.get_end_iter(out e);",
552 "\t_this.project.runhtml = buf.get_text(s,e,true);",
554 " _this.project.rootURL = _this.rootURL.el.get_text();",
557 " Gtk.TreeIter iter;",
558 " Value html_gen_val;",
559 " _this.html_gen.el.get_active_iter(out iter);",
560 " _this.html_gen_model.el.get_value (iter, 0, out html_gen_val);",
562 " _this.project.html_gen = (string)html_gen_val;",
564 " // set by event changed...",
565 " //_this.project.base_template = _this.base_template.el.get_text(); ",
567 " var js = _this.project.json_project_data;",
568 " js.set_string_member(\"DBTYPE\", _this.database_DBTYPE.el.get_text());",
569 " js.set_string_member(\"DBNAME\", _this.database_DBNAME.el.get_text());",
570 " js.set_string_member(\"DBUSERNAME\", _this.database_DBUSERNAME.el.get_text());",
571 " js.set_string_member(\"DBPASSWORD\", _this.database_DBPASSWORD.el.get_text());",
572 "// _this.project.set_string_member(\"DBHOST\", _this.DBTYPE.el.get_text()); ",
574 " // need to re-init the database ",
576 " _this.project.initRooDatabase();",
582 " (Gtk.Widget btn, Project.Project project) {",
583 " _this.done = false;",
585 " _this.project = project;",
586 " _this.path.el.label = project.firstPath();",
587 " // get the active project.",
588 " var lm = Gtk.SourceLanguageManager.get_default();",
590 " ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(",
591 " lm.get_language(\"html\")",
594 " //print (project.fn);",
595 " //project.runhtml = project.runhtml || '';",
596 " _this.view.el.get_buffer().set_text(project.runhtml);",
600 " _this.rootURL.el.set_text( _this.project.rootURL );",
602 " _this.html_gen_model.loadData(_this.project.html_gen);",
604 " _this.base_template_model.loadData();",
606 " var js = _this.project;",
607 " _this.database_DBTYPE.el.set_text( js.get_string_member(\"DBTYPE\") );",
608 " _this.database_DBNAME.el.set_text( js.get_string_member(\"DBNAME\") );",
609 " _this.database_DBUSERNAME.el.set_text( js.get_string_member(\"DBUSERNAME\") );",
610 " _this.database_DBPASSWORD.el.set_text( js.get_string_member(\"DBPASSWORD\") );",
612 " \t//console.log('show all');",
613 "\tthis.el.set_modal(true);",
614 "\tthis.el.set_relative_to(btn);",
616 "\tthis.el.set_position(Gtk.PositionType.RIGHT);",
618 "\t// window + header?",
619 "\t print(\"SHOWALL - POPIP\\n\");",
620 "\tthis.el.show_all();",
621 "\tthis.el.set_size_request(800,600);",
622 "\tthis.view.el.grab_focus();",
625 " //this.el.show_all();",
632 "name" : "RooProjectSettings",
634 "path" : "/home/alan/gitlive/roobuilder/src/Builder4/RooProjectSettings.bjs",