1 static Xcls_RooProjectSettings _RooProjectSettings;
3 public class Xcls_RooProjectSettings : Object
6 private Xcls_RooProjectSettings _this;
8 public static Xcls_RooProjectSettings singleton()
10 if (_RooProjectSettings == null) {
11 _RooProjectSettings= new Xcls_RooProjectSettings();
13 return _RooProjectSettings;
15 public Xcls_label_global label_global;
16 public Xcls_label_database label_database;
17 public Xcls_grid grid;
18 public Xcls_path path;
19 public Xcls_base_template base_template;
20 public Xcls_base_template_cellrenderer base_template_cellrenderer;
21 public Xcls_base_template_model base_template_model;
22 public Xcls_rootURL rootURL;
23 public Xcls_html_gen html_gen;
24 public Xcls_html_gen_cellrenderer html_gen_cellrenderer;
25 public Xcls_html_gen_model html_gen_model;
26 public Xcls_view view;
27 public Xcls_database_DBTYPE database_DBTYPE;
28 public Xcls_database_DBNAME database_DBNAME;
29 public Xcls_database_DBUSERNAME database_DBUSERNAME;
30 public Xcls_database_DBPASSWORD database_DBPASSWORD;
31 public Xcls_database_ERROR database_ERROR;
34 public signal void buttonPressed (string btn);
35 public Project.Project project;
38 public Xcls_RooProjectSettings()
41 this.el = new Gtk.Popover( null );
46 this.el.border_width = 0;
48 this.el.position = Gtk.PositionType.RIGHT;
49 var child_0 = new Xcls_Box2( _this );
51 this.el.add ( child_0.el );
54 // user defined functions
55 public void show (Gtk.Widget btn, Project.Project project) {
56 _this.project = project;
57 _this.path.el.label = project.firstPath();
58 // get the active project.
59 var lm = Gtk.SourceLanguageManager.get_default();
61 ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(
62 lm.get_language("html")
66 //project.runhtml = project.runhtml || '';
67 _this.view.el.get_buffer().set_text(project.runhtml);
71 _this.rootURL.el.set_text( _this.project.rootURL );
73 _this.html_gen_model.loadData(_this.project.html_gen);
75 _this.base_template_model.loadData();
77 var js = _this.project;
78 _this.database_DBTYPE.el.set_text( js.get_string_member("DBTYPE") );
79 _this.database_DBNAME.el.set_text( js.get_string_member("DBNAME") );
80 _this.database_DBUSERNAME.el.set_text( js.get_string_member("DBUSERNAME") );
81 _this.database_DBPASSWORD.el.set_text( js.get_string_member("DBPASSWORD") );
83 //console.log('show all');
84 this.el.set_modal(true);
85 this.el.set_relative_to(btn);
87 this.el.set_position(Gtk.PositionType.RIGHT);
90 print("SHOWALL - POPIP\n");
92 this.el.set_size_request(800,500);
93 this.view.el.grab_focus();
99 var buf = _this.view.el.get_buffer();
102 buf.get_start_iter(out s);
103 buf.get_end_iter(out e);
104 _this.project.runhtml = buf.get_text(s,e,true);
106 _this.project.rootURL = _this.rootURL.el.get_text();
111 _this.html_gen_model.el.get_value (iter, 0, out html_gen_val);
113 _this.project.html_gen = (string)html_gen_val;
115 // set by event changed...
116 //_this.project.base_template = _this.base_template.el.get_text();
118 var js = _this.project.json_project_data;
119 js.set_string_member("DBTYPE", _this.database_DBTYPE.el.get_text());
120 js.set_string_member("DBNAME", _this.database_DBNAME.el.get_text());
121 js.set_string_member("DBUSERNAME", _this.database_DBUSERNAME.el.get_text());
122 js.set_string_member("DBPASSWORD", _this.database_DBPASSWORD.el.get_text());
123 // _this.project.set_string_member("DBHOST", _this.DBTYPE.el.get_text());
125 // need to re-init the database
127 _this.project.initRooDatabase();
131 public class Xcls_Box2 : Object
134 private Xcls_RooProjectSettings _this;
140 public Xcls_Box2(Xcls_RooProjectSettings _owner )
143 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
147 // set gobject values
148 this.el.homogeneous = false;
149 this.el.border_width = 5;
150 var child_0 = new Xcls_Notebook3( _this );
152 this.el.pack_start ( child_0.el , true,true,0 );
153 var child_1 = new Xcls_Box34( _this );
155 this.el.pack_end ( child_1.el , false,false,0 );
158 // user defined functions
160 public class Xcls_Notebook3 : Object
162 public Gtk.Notebook el;
163 private Xcls_RooProjectSettings _this;
169 public Xcls_Notebook3(Xcls_RooProjectSettings _owner )
172 this.el = new Gtk.Notebook();
176 // set gobject values
177 var child_0 = new Xcls_label_global( _this );
179 var child_1 = new Xcls_label_database( _this );
181 var child_2 = new Xcls_Box6( _this );
183 this.el.append_page ( child_2.el , _this.label_global.el );
184 var child_3 = new Xcls_Box23( _this );
186 this.el.append_page ( child_3.el , _this.label_database.el );
189 // user defined functions
191 public class Xcls_label_global : Object
194 private Xcls_RooProjectSettings _this;
200 public Xcls_label_global(Xcls_RooProjectSettings _owner )
203 _this.label_global = this;
204 this.el = new Gtk.Label( "Global" );
208 // set gobject values
211 // user defined functions
214 public class Xcls_label_database : Object
217 private Xcls_RooProjectSettings _this;
223 public Xcls_label_database(Xcls_RooProjectSettings _owner )
226 _this.label_database = this;
227 this.el = new Gtk.Label( "Database" );
231 // set gobject values
234 // user defined functions
237 public class Xcls_Box6 : Object
240 private Xcls_RooProjectSettings _this;
246 public Xcls_Box6(Xcls_RooProjectSettings _owner )
249 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
253 // set gobject values
254 this.el.homogeneous = false;
255 var child_0 = new Xcls_grid( _this );
257 this.el.pack_start ( child_0.el , false,false,4 );
258 var child_1 = new Xcls_Label20( _this );
260 this.el.pack_start ( child_1.el , false,false,0 );
261 var child_2 = new Xcls_ScrolledWindow21( _this );
263 this.el.pack_start ( child_2.el , true,true,0 );
266 // user defined functions
268 public class Xcls_grid : Object
271 private Xcls_RooProjectSettings _this;
277 public Xcls_grid(Xcls_RooProjectSettings _owner )
281 this.el = new Gtk.Grid();
285 // set gobject values
286 this.el.margin_right = 4;
287 this.el.margin_left = 4;
288 this.el.row_spacing = 2;
289 var child_0 = new Xcls_Label8( _this );
291 this.el.attach ( child_0.el , 0,0,1,1 );
292 var child_1 = new Xcls_path( _this );
294 this.el.attach ( child_1.el , 1,0,1,1 );
295 var child_2 = new Xcls_Label10( _this );
297 this.el.attach ( child_2.el , 0,1,1,1 );
298 var child_3 = new Xcls_base_template( _this );
300 this.el.attach ( child_3.el , 1,1,1,1 );
301 var child_4 = new Xcls_Label14( _this );
303 this.el.attach ( child_4.el , 0,2,1,1 );
304 var child_5 = new Xcls_rootURL( _this );
306 this.el.attach ( child_5.el , 1,2,1,1 );
307 var child_6 = new Xcls_Label16( _this );
309 this.el.attach ( child_6.el , 0,3,1,1 );
310 var child_7 = new Xcls_html_gen( _this );
312 this.el.attach ( child_7.el , 1,3,1,1 );
315 // user defined functions
317 public class Xcls_Label8 : Object
320 private Xcls_RooProjectSettings _this;
326 public Xcls_Label8(Xcls_RooProjectSettings _owner )
329 this.el = new Gtk.Label( "Filename" );
333 // set gobject values
338 // user defined functions
341 public class Xcls_path : Object
344 private Xcls_RooProjectSettings _this;
350 public Xcls_path(Xcls_RooProjectSettings _owner )
354 this.el = new Gtk.Label( "filename" );
358 // set gobject values
363 // user defined functions
366 public class Xcls_Label10 : Object
369 private Xcls_RooProjectSettings _this;
375 public Xcls_Label10(Xcls_RooProjectSettings _owner )
378 this.el = new Gtk.Label( "HTML template file" );
382 // set gobject values
386 // user defined functions
389 public class Xcls_base_template : Object
391 public Gtk.ComboBox el;
392 private Xcls_RooProjectSettings _this;
399 public Xcls_base_template(Xcls_RooProjectSettings _owner )
402 _this.base_template = this;
403 this.el = new Gtk.ComboBox();
406 this.loading = false;
408 // set gobject values
409 var child_0 = new Xcls_base_template_cellrenderer( _this );
411 this.el.pack_start ( child_0.el , true );
412 var child_1 = new Xcls_base_template_model( _this );
414 this.el.set_model ( child_1.el );
418 this.el.add_attribute(_this.base_template_cellrenderer.el , "markup", 0 );
421 this.el.changed.connect( () => {
424 // this get's called when we are filling in the data... ???
430 if (this.el.get_active_iter(out iter)) {
432 _this.base_template_model.el.get_value (iter, 0, out vfname);
433 _this.project.base_template = ((string)vfname) ;
435 print("\nSET base template to %s\n", _this.project.base_template );
436 // is_bjs = ((string)vfname) == "bjs";
440 // directory is only available for non-bjs
447 // user defined functions
449 public class Xcls_base_template_cellrenderer : Object
451 public Gtk.CellRendererText el;
452 private Xcls_RooProjectSettings _this;
458 public Xcls_base_template_cellrenderer(Xcls_RooProjectSettings _owner )
461 _this.base_template_cellrenderer = this;
462 this.el = new Gtk.CellRendererText();
466 // set gobject values
469 // user defined functions
472 public class Xcls_base_template_model : Object
474 public Gtk.ListStore el;
475 private Xcls_RooProjectSettings _this;
481 public Xcls_base_template_model(Xcls_RooProjectSettings _owner )
484 _this.base_template_model = this;
485 this.el = new Gtk.ListStore( 1, typeof(string) );
489 // set gobject values
492 // user defined functions
493 public void loadData () {
494 _this.base_template.loading = true;
500 /// el.append(out iter);
504 el.set_value(iter, 0, "roo.builder.html");
505 _this.base_template.el.set_active_iter(iter);
506 if (_this.project.base_template == "roo.builder.html") {
507 _this.base_template.el.set_active_iter(iter);
511 el.set_value(iter, 0, "bootstrap.builder.html");
513 print("\ncur template = %s\n", _this.project.base_template);
515 if (_this.project.base_template == "bootstrap.builder.html") {
516 _this.base_template.el.set_active_iter(iter);
520 el.set_value(iter, 0, "mailer.builder.html");
522 if (_this.project.base_template == "mailer.builder.html") {
523 _this.base_template.el.set_active_iter(iter);
525 _this.base_template.loading = false;
531 public class Xcls_Label14 : Object
534 private Xcls_RooProjectSettings _this;
540 public Xcls_Label14(Xcls_RooProjectSettings _owner )
543 this.el = new Gtk.Label( "root URL" );
547 // set gobject values
551 // user defined functions
554 public class Xcls_rootURL : Object
557 private Xcls_RooProjectSettings _this;
563 public Xcls_rootURL(Xcls_RooProjectSettings _owner )
566 _this.rootURL = this;
567 this.el = new Gtk.Entry();
571 // set gobject values
574 // user defined functions
577 public class Xcls_Label16 : Object
580 private Xcls_RooProjectSettings _this;
586 public Xcls_Label16(Xcls_RooProjectSettings _owner )
589 this.el = new Gtk.Label( "Generate HTML in" );
593 // set gobject values
597 // user defined functions
600 public class Xcls_html_gen : Object
602 public Gtk.ComboBox el;
603 private Xcls_RooProjectSettings _this;
609 public Xcls_html_gen(Xcls_RooProjectSettings _owner )
612 _this.html_gen = this;
613 this.el = new Gtk.ComboBox();
617 // set gobject values
618 var child_0 = new Xcls_html_gen_cellrenderer( _this );
620 this.el.pack_start ( child_0.el , true );
621 var child_1 = new Xcls_html_gen_model( _this );
623 this.el.set_model ( child_1.el );
627 this.el.add_attribute(_this.html_gen_cellrenderer.el , "markup", 1 );
630 // user defined functions
632 public class Xcls_html_gen_cellrenderer : Object
634 public Gtk.CellRendererText el;
635 private Xcls_RooProjectSettings _this;
641 public Xcls_html_gen_cellrenderer(Xcls_RooProjectSettings _owner )
644 _this.html_gen_cellrenderer = this;
645 this.el = new Gtk.CellRendererText();
649 // set gobject values
652 // user defined functions
655 public class Xcls_html_gen_model : Object
657 public Gtk.ListStore el;
658 private Xcls_RooProjectSettings _this;
664 public Xcls_html_gen_model(Xcls_RooProjectSettings _owner )
667 _this.html_gen_model = this;
668 this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
672 // set gobject values
675 // user defined functions
676 public void loadData (string cur) {
685 el.set_value(iter, 0, "");
686 el.set_value(iter, 1, "Do not Generate");
687 _this.html_gen.el.set_active_iter(iter);
691 el.set_value(iter, 0, "same directory as BJS file");
692 el.set_value(iter, 1, "bjs");
694 _this.html_gen.el.set_active_iter(iter);
701 el.set_value(iter, 0, "template");
702 el.set_value(iter, 1, "in template subdirectory");
704 if (cur == "template") {
705 _this.html_gen.el.set_active_iter(iter);
714 public class Xcls_Label20 : Object
717 private Xcls_RooProjectSettings _this;
723 public Xcls_Label20(Xcls_RooProjectSettings _owner )
726 this.el = new Gtk.Label( "HTML To insert at end of <HEAD>" );
730 // set gobject values
733 // user defined functions
736 public class Xcls_ScrolledWindow21 : Object
738 public Gtk.ScrolledWindow el;
739 private Xcls_RooProjectSettings _this;
745 public Xcls_ScrolledWindow21(Xcls_RooProjectSettings _owner )
748 this.el = new Gtk.ScrolledWindow( null, null );
752 // set gobject values
753 var child_0 = new Xcls_view( _this );
755 this.el.add ( child_0.el );
758 // user defined functions
760 public class Xcls_view : Object
762 public Gtk.SourceView el;
763 private Xcls_RooProjectSettings _this;
769 public Xcls_view(Xcls_RooProjectSettings _owner )
773 this.el = new Gtk.SourceView();
779 var description = Pango.FontDescription.from_string("monospace");
780 description.set_size(9000);
781 this.el.override_font(description);
784 this.el.key_release_event.connect( ( event) =>{
785 if (event.keyval != 115) {
789 if ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {
792 var buf = this.el.get_buffer();
795 buf.get_start_iter(out s);
796 buf.get_end_iter(out e);
797 _this.project.runhtml = buf.get_text(s,e,true);
800 _this.buttonPressed("save");
807 // user defined functions
812 public class Xcls_Box23 : Object
815 private Xcls_RooProjectSettings _this;
821 public Xcls_Box23(Xcls_RooProjectSettings _owner )
824 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
828 // set gobject values
829 this.el.homogeneous = false;
830 var child_0 = new Xcls_Label24( _this );
832 this.el.pack_start ( child_0.el , false,false,0 );
833 var child_1 = new Xcls_database_DBTYPE( _this );
835 this.el.pack_start ( child_1.el , false,false,0 );
836 var child_2 = new Xcls_Label26( _this );
838 this.el.pack_start ( child_2.el , false,false,0 );
839 var child_3 = new Xcls_database_DBNAME( _this );
841 this.el.pack_start ( child_3.el , false,false,0 );
842 var child_4 = new Xcls_Label28( _this );
844 this.el.pack_start ( child_4.el , false,false,0 );
845 var child_5 = new Xcls_database_DBUSERNAME( _this );
847 this.el.pack_start ( child_5.el , false,false,0 );
848 var child_6 = new Xcls_Label30( _this );
850 this.el.pack_start ( child_6.el , false,false,0 );
851 var child_7 = new Xcls_database_DBPASSWORD( _this );
853 this.el.pack_start ( child_7.el , false,false,0 );
854 var child_8 = new Xcls_Button32( _this );
856 this.el.pack_start ( child_8.el , false,false,0 );
857 var child_9 = new Xcls_database_ERROR( _this );
859 this.el.pack_start ( child_9.el , false,false,0 );
862 // user defined functions
864 public class Xcls_Label24 : Object
867 private Xcls_RooProjectSettings _this;
873 public Xcls_Label24(Xcls_RooProjectSettings _owner )
876 this.el = new Gtk.Label( "Type (eg. MySQL or PostgreSQL)" );
880 // set gobject values
884 // user defined functions
887 public class Xcls_database_DBTYPE : Object
890 private Xcls_RooProjectSettings _this;
896 public Xcls_database_DBTYPE(Xcls_RooProjectSettings _owner )
899 _this.database_DBTYPE = this;
900 this.el = new Gtk.Entry();
904 // set gobject values
907 this.el.key_press_event.connect( (ev) => {
909 if (ev.keyval == Gdk.Key.Tab) {
910 _this.database_DBNAME.el.grab_focus();
919 // user defined functions
922 public class Xcls_Label26 : Object
925 private Xcls_RooProjectSettings _this;
931 public Xcls_Label26(Xcls_RooProjectSettings _owner )
934 this.el = new Gtk.Label( "Name" );
938 // set gobject values
942 // user defined functions
945 public class Xcls_database_DBNAME : Object
948 private Xcls_RooProjectSettings _this;
954 public Xcls_database_DBNAME(Xcls_RooProjectSettings _owner )
957 _this.database_DBNAME = this;
958 this.el = new Gtk.Entry();
962 // set gobject values
965 this.el.key_press_event.connect( (ev) => {
967 if (ev.keyval == Gdk.Key.Tab) {
968 _this.database_DBUSERNAME.el.grab_focus();
977 // user defined functions
980 public class Xcls_Label28 : Object
983 private Xcls_RooProjectSettings _this;
989 public Xcls_Label28(Xcls_RooProjectSettings _owner )
992 this.el = new Gtk.Label( "Username" );
996 // set gobject values
1000 // user defined functions
1003 public class Xcls_database_DBUSERNAME : Object
1005 public Gtk.Entry el;
1006 private Xcls_RooProjectSettings _this;
1012 public Xcls_database_DBUSERNAME(Xcls_RooProjectSettings _owner )
1015 _this.database_DBUSERNAME = this;
1016 this.el = new Gtk.Entry();
1020 // set gobject values
1023 this.el.key_press_event.connect( (ev) => {
1025 if (ev.keyval == Gdk.Key.Tab) {
1026 _this.database_DBPASSWORD.el.grab_focus();
1035 // user defined functions
1038 public class Xcls_Label30 : Object
1040 public Gtk.Label el;
1041 private Xcls_RooProjectSettings _this;
1047 public Xcls_Label30(Xcls_RooProjectSettings _owner )
1050 this.el = new Gtk.Label( "Password" );
1054 // set gobject values
1055 this.el.xalign = 0f;
1058 // user defined functions
1061 public class Xcls_database_DBPASSWORD : Object
1063 public Gtk.Entry el;
1064 private Xcls_RooProjectSettings _this;
1070 public Xcls_database_DBPASSWORD(Xcls_RooProjectSettings _owner )
1073 _this.database_DBPASSWORD = this;
1074 this.el = new Gtk.Entry();
1078 // set gobject values
1081 // user defined functions
1084 public class Xcls_Button32 : Object
1086 public Gtk.Button el;
1087 private Xcls_RooProjectSettings _this;
1093 public Xcls_Button32(Xcls_RooProjectSettings _owner )
1096 this.el = new Gtk.Button();
1100 // set gobject values
1101 this.el.label = "Check Connection";
1104 this.el.clicked.connect( () => {
1107 _this.database_ERROR.el.label = "";
1110 // assumes localhost...
1111 cnc = Gda.Connection.open_from_string (
1112 _this.database_DBTYPE.el.get_text(),
1113 "DB_NAME=" + _this.database_DBNAME.el.get_text(),
1114 "USERNAME=" + _this.database_DBUSERNAME.el.get_text() +
1115 ";PASSWORD=" + _this.database_DBPASSWORD.el.get_text(),
1116 Gda.ConnectionOptions.NONE
1118 //} catch (Gda.ConnectionError ce) {
1119 // _this.database_ERROR.el.label = ce.message;
1120 } catch(Gda.ConnectionError ue) {
1121 _this.database_ERROR.el.label = ue.message;
1123 } catch(Gda.ConfigError ue) {
1124 _this.database_ERROR.el.label = ue.message;
1127 _this.database_ERROR.el.label = "Connection Succeeded";
1132 // user defined functions
1135 public class Xcls_database_ERROR : Object
1137 public Gtk.Label el;
1138 private Xcls_RooProjectSettings _this;
1144 public Xcls_database_ERROR(Xcls_RooProjectSettings _owner )
1147 _this.database_ERROR = this;
1148 this.el = new Gtk.Label( " " );
1152 // set gobject values
1154 this.el.xalign = 0f;
1157 // user defined functions
1162 public class Xcls_Box34 : Object
1165 private Xcls_RooProjectSettings _this;
1171 public Xcls_Box34(Xcls_RooProjectSettings _owner )
1174 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
1178 // set gobject values
1179 this.el.homogeneous = true;
1180 this.el.expand = false;
1181 this.el.vexpand = false;
1182 var child_0 = new Xcls_Button35( _this );
1184 this.el.add ( child_0.el );
1185 var child_1 = new Xcls_Button36( _this );
1187 this.el.add ( child_1.el );
1190 // user defined functions
1192 public class Xcls_Button35 : Object
1194 public Gtk.Button el;
1195 private Xcls_RooProjectSettings _this;
1201 public Xcls_Button35(Xcls_RooProjectSettings _owner )
1204 this.el = new Gtk.Button();
1208 // set gobject values
1209 this.el.label = "Apply";
1212 this.el.button_press_event.connect( () => {
1215 _this.buttonPressed("apply");
1220 // user defined functions
1223 public class Xcls_Button36 : Object
1225 public Gtk.Button el;
1226 private Xcls_RooProjectSettings _this;
1232 public Xcls_Button36(Xcls_RooProjectSettings _owner )
1235 this.el = new Gtk.Button();
1239 // set gobject values
1240 this.el.label = "Save";
1243 this.el.button_press_event.connect( () => {
1246 _this.buttonPressed("save");
1251 // user defined functions