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);
70 _this.rootURL.el.set_text( _this.project.rootURL );
73 _this.base_template_model.loadData();
75 var js = _this.project;
76 _this.database_DBTYPE.el.set_text( js.get_string_member("DBTYPE") );
77 _this.database_DBNAME.el.set_text( js.get_string_member("DBNAME") );
78 _this.database_DBUSERNAME.el.set_text( js.get_string_member("DBUSERNAME") );
79 _this.database_DBPASSWORD.el.set_text( js.get_string_member("DBPASSWORD") );
81 //console.log('show all');
82 this.el.set_modal(true);
83 this.el.set_relative_to(btn);
85 this.el.set_position(Gtk.PositionType.RIGHT);
88 print("SHOWALL - POPIP\n");
90 this.el.set_size_request(800,500);
91 this.view.el.grab_focus();
97 var buf = _this.view.el.get_buffer();
100 buf.get_start_iter(out s);
101 buf.get_end_iter(out e);
102 _this.project.runhtml = buf.get_text(s,e,true);
104 _this.project.rootURL = _this.rootURL.el.get_text();
109 _this.html_gen_model.el.get_value (iter, 0, out html_gen_val);
111 _this.project.html_gen = (string)html_gen_val;
113 // set by event changed...
114 //_this.project.base_template = _this.base_template.el.get_text();
116 var js = _this.project.json_project_data;
117 js.set_string_member("DBTYPE", _this.database_DBTYPE.el.get_text());
118 js.set_string_member("DBNAME", _this.database_DBNAME.el.get_text());
119 js.set_string_member("DBUSERNAME", _this.database_DBUSERNAME.el.get_text());
120 js.set_string_member("DBPASSWORD", _this.database_DBPASSWORD.el.get_text());
121 // _this.project.set_string_member("DBHOST", _this.DBTYPE.el.get_text());
123 // need to re-init the database
125 _this.project.initRooDatabase();
129 public class Xcls_Box2 : Object
132 private Xcls_RooProjectSettings _this;
138 public Xcls_Box2(Xcls_RooProjectSettings _owner )
141 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
145 // set gobject values
146 this.el.homogeneous = false;
147 this.el.border_width = 5;
148 var child_0 = new Xcls_Notebook3( _this );
150 this.el.pack_start ( child_0.el , true,true,0 );
151 var child_1 = new Xcls_Box34( _this );
153 this.el.pack_end ( child_1.el , false,false,0 );
156 // user defined functions
158 public class Xcls_Notebook3 : Object
160 public Gtk.Notebook el;
161 private Xcls_RooProjectSettings _this;
167 public Xcls_Notebook3(Xcls_RooProjectSettings _owner )
170 this.el = new Gtk.Notebook();
174 // set gobject values
175 var child_0 = new Xcls_label_global( _this );
177 var child_1 = new Xcls_label_database( _this );
179 var child_2 = new Xcls_Box6( _this );
181 this.el.append_page ( child_2.el , _this.label_global.el );
182 var child_3 = new Xcls_Box23( _this );
184 this.el.append_page ( child_3.el , _this.label_database.el );
187 // user defined functions
189 public class Xcls_label_global : Object
192 private Xcls_RooProjectSettings _this;
198 public Xcls_label_global(Xcls_RooProjectSettings _owner )
201 _this.label_global = this;
202 this.el = new Gtk.Label( "Global" );
206 // set gobject values
209 // user defined functions
212 public class Xcls_label_database : Object
215 private Xcls_RooProjectSettings _this;
221 public Xcls_label_database(Xcls_RooProjectSettings _owner )
224 _this.label_database = this;
225 this.el = new Gtk.Label( "Database" );
229 // set gobject values
232 // user defined functions
235 public class Xcls_Box6 : Object
238 private Xcls_RooProjectSettings _this;
244 public Xcls_Box6(Xcls_RooProjectSettings _owner )
247 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
251 // set gobject values
252 this.el.homogeneous = false;
253 var child_0 = new Xcls_grid( _this );
255 this.el.pack_start ( child_0.el , false,false,4 );
256 var child_1 = new Xcls_Label20( _this );
258 this.el.pack_start ( child_1.el , false,false,0 );
259 var child_2 = new Xcls_ScrolledWindow21( _this );
261 this.el.pack_start ( child_2.el , true,true,0 );
264 // user defined functions
266 public class Xcls_grid : Object
269 private Xcls_RooProjectSettings _this;
275 public Xcls_grid(Xcls_RooProjectSettings _owner )
279 this.el = new Gtk.Grid();
283 // set gobject values
284 this.el.margin_right = 4;
285 this.el.margin_left = 4;
286 this.el.row_spacing = 2;
287 var child_0 = new Xcls_Label8( _this );
289 this.el.attach ( child_0.el , 0,0,1,1 );
290 var child_1 = new Xcls_path( _this );
292 this.el.attach ( child_1.el , 1,0,1,1 );
293 var child_2 = new Xcls_Label10( _this );
295 this.el.attach ( child_2.el , 0,1,1,1 );
296 var child_3 = new Xcls_base_template( _this );
298 this.el.attach ( child_3.el , 1,1,1,1 );
299 var child_4 = new Xcls_Label14( _this );
301 this.el.attach ( child_4.el , 0,2,1,1 );
302 var child_5 = new Xcls_rootURL( _this );
304 this.el.attach ( child_5.el , 1,2,1,1 );
305 var child_6 = new Xcls_Label16( _this );
307 this.el.attach ( child_6.el , 0,3,1,1 );
308 var child_7 = new Xcls_html_gen( _this );
310 this.el.attach ( child_7.el , 1,3,1,1 );
313 // user defined functions
315 public class Xcls_Label8 : Object
318 private Xcls_RooProjectSettings _this;
324 public Xcls_Label8(Xcls_RooProjectSettings _owner )
327 this.el = new Gtk.Label( "Filename" );
331 // set gobject values
336 // user defined functions
339 public class Xcls_path : Object
342 private Xcls_RooProjectSettings _this;
348 public Xcls_path(Xcls_RooProjectSettings _owner )
352 this.el = new Gtk.Label( "filename" );
356 // set gobject values
361 // user defined functions
364 public class Xcls_Label10 : Object
367 private Xcls_RooProjectSettings _this;
373 public Xcls_Label10(Xcls_RooProjectSettings _owner )
376 this.el = new Gtk.Label( "HTML template file" );
380 // set gobject values
384 // user defined functions
387 public class Xcls_base_template : Object
389 public Gtk.ComboBox el;
390 private Xcls_RooProjectSettings _this;
397 public Xcls_base_template(Xcls_RooProjectSettings _owner )
400 _this.base_template = this;
401 this.el = new Gtk.ComboBox();
404 this.loading = false;
406 // set gobject values
407 var child_0 = new Xcls_base_template_cellrenderer( _this );
409 this.el.pack_start ( child_0.el , true );
410 var child_1 = new Xcls_base_template_model( _this );
412 this.el.set_model ( child_1.el );
416 this.el.add_attribute(_this.base_template_cellrenderer.el , "markup", 0 );
419 this.el.changed.connect( () => {
422 // this get's called when we are filling in the data... ???
428 if (this.el.get_active_iter(out iter)) {
430 _this.base_template_model.el.get_value (iter, 0, out vfname);
431 _this.project.base_template = ((string)vfname) ;
433 print("\nSET base template to %s\n", _this.project.base_template );
434 // is_bjs = ((string)vfname) == "bjs";
438 // directory is only available for non-bjs
445 // user defined functions
447 public class Xcls_base_template_cellrenderer : Object
449 public Gtk.CellRendererText el;
450 private Xcls_RooProjectSettings _this;
456 public Xcls_base_template_cellrenderer(Xcls_RooProjectSettings _owner )
459 _this.base_template_cellrenderer = this;
460 this.el = new Gtk.CellRendererText();
464 // set gobject values
467 // user defined functions
470 public class Xcls_base_template_model : Object
472 public Gtk.ListStore el;
473 private Xcls_RooProjectSettings _this;
479 public Xcls_base_template_model(Xcls_RooProjectSettings _owner )
482 _this.base_template_model = this;
483 this.el = new Gtk.ListStore( 1, typeof(string) );
487 // set gobject values
490 // user defined functions
491 public void loadData () {
492 _this.base_template.loading = true;
498 /// el.append(out iter);
502 el.set_value(iter, 0, "roo.builder.html");
503 _this.base_template.el.set_active_iter(iter);
504 if (_this.project.base_template == "roo.builder.html") {
505 _this.base_template.el.set_active_iter(iter);
509 el.set_value(iter, 0, "bootstrap.builder.html");
511 print("\ncur template = %s\n", _this.project.base_template);
513 if (_this.project.base_template == "bootstrap.builder.html") {
514 _this.base_template.el.set_active_iter(iter);
518 el.set_value(iter, 0, "mailer.builder.html");
520 if (_this.project.base_template == "mailer.builder.html") {
521 _this.base_template.el.set_active_iter(iter);
523 _this.base_template.loading = false;
529 public class Xcls_Label14 : Object
532 private Xcls_RooProjectSettings _this;
538 public Xcls_Label14(Xcls_RooProjectSettings _owner )
541 this.el = new Gtk.Label( "root URL" );
545 // set gobject values
549 // user defined functions
552 public class Xcls_rootURL : Object
555 private Xcls_RooProjectSettings _this;
561 public Xcls_rootURL(Xcls_RooProjectSettings _owner )
564 _this.rootURL = this;
565 this.el = new Gtk.Entry();
569 // set gobject values
572 // user defined functions
575 public class Xcls_Label16 : Object
578 private Xcls_RooProjectSettings _this;
584 public Xcls_Label16(Xcls_RooProjectSettings _owner )
587 this.el = new Gtk.Label( "Generate HTML in" );
591 // set gobject values
595 // user defined functions
598 public class Xcls_html_gen : Object
600 public Gtk.ComboBox el;
601 private Xcls_RooProjectSettings _this;
607 public Xcls_html_gen(Xcls_RooProjectSettings _owner )
610 _this.html_gen = this;
611 this.el = new Gtk.ComboBox();
615 // set gobject values
616 var child_0 = new Xcls_html_gen_cellrenderer( _this );
618 this.el.pack_start ( child_0.el , true );
619 var child_1 = new Xcls_html_gen_model( _this );
621 this.el.set_model ( child_1.el );
625 this.el.add_attribute(_this.html_gen_cellrenderer.el , "markup", 1 );
628 // user defined functions
630 public class Xcls_html_gen_cellrenderer : Object
632 public Gtk.CellRendererText el;
633 private Xcls_RooProjectSettings _this;
639 public Xcls_html_gen_cellrenderer(Xcls_RooProjectSettings _owner )
642 _this.html_gen_cellrenderer = this;
643 this.el = new Gtk.CellRendererText();
647 // set gobject values
650 // user defined functions
653 public class Xcls_html_gen_model : Object
655 public Gtk.ListStore el;
656 private Xcls_RooProjectSettings _this;
662 public Xcls_html_gen_model(Xcls_RooProjectSettings _owner )
665 _this.html_gen_model = this;
666 this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
670 // set gobject values
673 // user defined functions
674 public void loadData (string cur) {
683 el.set_value(iter, 0, "");
684 el.set_value(iter, 1, "Do not Generate");
685 _this.filetype.el.set_active_iter(iter);
689 el.set_value(iter, 0, "same directory as BJS file");
690 el.set_value(iter, 1, "bjs");
692 _this.filetype.el.set_active_iter(iter);
699 el.set_value(iter, 0, "template");
700 el.set_value(iter, 1, "in template subdirectory");
702 if (cur == "template") {
703 _this.filetype.el.set_active_iter(iter);
712 public class Xcls_Label20 : Object
715 private Xcls_RooProjectSettings _this;
721 public Xcls_Label20(Xcls_RooProjectSettings _owner )
724 this.el = new Gtk.Label( "HTML To insert at end of <HEAD>" );
728 // set gobject values
731 // user defined functions
734 public class Xcls_ScrolledWindow21 : Object
736 public Gtk.ScrolledWindow el;
737 private Xcls_RooProjectSettings _this;
743 public Xcls_ScrolledWindow21(Xcls_RooProjectSettings _owner )
746 this.el = new Gtk.ScrolledWindow( null, null );
750 // set gobject values
751 var child_0 = new Xcls_view( _this );
753 this.el.add ( child_0.el );
756 // user defined functions
758 public class Xcls_view : Object
760 public Gtk.SourceView el;
761 private Xcls_RooProjectSettings _this;
767 public Xcls_view(Xcls_RooProjectSettings _owner )
771 this.el = new Gtk.SourceView();
777 var description = Pango.FontDescription.from_string("monospace");
778 description.set_size(9000);
779 this.el.override_font(description);
782 this.el.key_release_event.connect( ( event) =>{
783 if (event.keyval != 115) {
787 if ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {
790 var buf = this.el.get_buffer();
793 buf.get_start_iter(out s);
794 buf.get_end_iter(out e);
795 _this.project.runhtml = buf.get_text(s,e,true);
798 _this.buttonPressed("save");
805 // user defined functions
810 public class Xcls_Box23 : Object
813 private Xcls_RooProjectSettings _this;
819 public Xcls_Box23(Xcls_RooProjectSettings _owner )
822 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
826 // set gobject values
827 this.el.homogeneous = false;
828 var child_0 = new Xcls_Label24( _this );
830 this.el.pack_start ( child_0.el , false,false,0 );
831 var child_1 = new Xcls_database_DBTYPE( _this );
833 this.el.pack_start ( child_1.el , false,false,0 );
834 var child_2 = new Xcls_Label26( _this );
836 this.el.pack_start ( child_2.el , false,false,0 );
837 var child_3 = new Xcls_database_DBNAME( _this );
839 this.el.pack_start ( child_3.el , false,false,0 );
840 var child_4 = new Xcls_Label28( _this );
842 this.el.pack_start ( child_4.el , false,false,0 );
843 var child_5 = new Xcls_database_DBUSERNAME( _this );
845 this.el.pack_start ( child_5.el , false,false,0 );
846 var child_6 = new Xcls_Label30( _this );
848 this.el.pack_start ( child_6.el , false,false,0 );
849 var child_7 = new Xcls_database_DBPASSWORD( _this );
851 this.el.pack_start ( child_7.el , false,false,0 );
852 var child_8 = new Xcls_Button32( _this );
854 this.el.pack_start ( child_8.el , false,false,0 );
855 var child_9 = new Xcls_database_ERROR( _this );
857 this.el.pack_start ( child_9.el , false,false,0 );
860 // user defined functions
862 public class Xcls_Label24 : Object
865 private Xcls_RooProjectSettings _this;
871 public Xcls_Label24(Xcls_RooProjectSettings _owner )
874 this.el = new Gtk.Label( "Type (eg. MySQL or PostgreSQL)" );
878 // set gobject values
882 // user defined functions
885 public class Xcls_database_DBTYPE : Object
888 private Xcls_RooProjectSettings _this;
894 public Xcls_database_DBTYPE(Xcls_RooProjectSettings _owner )
897 _this.database_DBTYPE = this;
898 this.el = new Gtk.Entry();
902 // set gobject values
905 this.el.key_press_event.connect( (ev) => {
907 if (ev.keyval == Gdk.Key.Tab) {
908 _this.database_DBNAME.el.grab_focus();
917 // user defined functions
920 public class Xcls_Label26 : Object
923 private Xcls_RooProjectSettings _this;
929 public Xcls_Label26(Xcls_RooProjectSettings _owner )
932 this.el = new Gtk.Label( "Name" );
936 // set gobject values
940 // user defined functions
943 public class Xcls_database_DBNAME : Object
946 private Xcls_RooProjectSettings _this;
952 public Xcls_database_DBNAME(Xcls_RooProjectSettings _owner )
955 _this.database_DBNAME = this;
956 this.el = new Gtk.Entry();
960 // set gobject values
963 this.el.key_press_event.connect( (ev) => {
965 if (ev.keyval == Gdk.Key.Tab) {
966 _this.database_DBUSERNAME.el.grab_focus();
975 // user defined functions
978 public class Xcls_Label28 : Object
981 private Xcls_RooProjectSettings _this;
987 public Xcls_Label28(Xcls_RooProjectSettings _owner )
990 this.el = new Gtk.Label( "Username" );
994 // set gobject values
998 // user defined functions
1001 public class Xcls_database_DBUSERNAME : Object
1003 public Gtk.Entry el;
1004 private Xcls_RooProjectSettings _this;
1010 public Xcls_database_DBUSERNAME(Xcls_RooProjectSettings _owner )
1013 _this.database_DBUSERNAME = this;
1014 this.el = new Gtk.Entry();
1018 // set gobject values
1021 this.el.key_press_event.connect( (ev) => {
1023 if (ev.keyval == Gdk.Key.Tab) {
1024 _this.database_DBPASSWORD.el.grab_focus();
1033 // user defined functions
1036 public class Xcls_Label30 : Object
1038 public Gtk.Label el;
1039 private Xcls_RooProjectSettings _this;
1045 public Xcls_Label30(Xcls_RooProjectSettings _owner )
1048 this.el = new Gtk.Label( "Password" );
1052 // set gobject values
1053 this.el.xalign = 0f;
1056 // user defined functions
1059 public class Xcls_database_DBPASSWORD : Object
1061 public Gtk.Entry el;
1062 private Xcls_RooProjectSettings _this;
1068 public Xcls_database_DBPASSWORD(Xcls_RooProjectSettings _owner )
1071 _this.database_DBPASSWORD = this;
1072 this.el = new Gtk.Entry();
1076 // set gobject values
1079 // user defined functions
1082 public class Xcls_Button32 : Object
1084 public Gtk.Button el;
1085 private Xcls_RooProjectSettings _this;
1091 public Xcls_Button32(Xcls_RooProjectSettings _owner )
1094 this.el = new Gtk.Button();
1098 // set gobject values
1099 this.el.label = "Check Connection";
1102 this.el.clicked.connect( () => {
1105 _this.database_ERROR.el.label = "";
1108 // assumes localhost...
1109 cnc = Gda.Connection.open_from_string (
1110 _this.database_DBTYPE.el.get_text(),
1111 "DB_NAME=" + _this.database_DBNAME.el.get_text(),
1112 "USERNAME=" + _this.database_DBUSERNAME.el.get_text() +
1113 ";PASSWORD=" + _this.database_DBPASSWORD.el.get_text(),
1114 Gda.ConnectionOptions.NONE
1116 //} catch (Gda.ConnectionError ce) {
1117 // _this.database_ERROR.el.label = ce.message;
1118 } catch(Gda.ConnectionError ue) {
1119 _this.database_ERROR.el.label = ue.message;
1121 } catch(Gda.ConfigError ue) {
1122 _this.database_ERROR.el.label = ue.message;
1125 _this.database_ERROR.el.label = "Connection Succeeded";
1130 // user defined functions
1133 public class Xcls_database_ERROR : Object
1135 public Gtk.Label el;
1136 private Xcls_RooProjectSettings _this;
1142 public Xcls_database_ERROR(Xcls_RooProjectSettings _owner )
1145 _this.database_ERROR = this;
1146 this.el = new Gtk.Label( " " );
1150 // set gobject values
1152 this.el.xalign = 0f;
1155 // user defined functions
1160 public class Xcls_Box34 : Object
1163 private Xcls_RooProjectSettings _this;
1169 public Xcls_Box34(Xcls_RooProjectSettings _owner )
1172 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
1176 // set gobject values
1177 this.el.homogeneous = true;
1178 this.el.expand = false;
1179 this.el.vexpand = false;
1180 var child_0 = new Xcls_Button35( _this );
1182 this.el.add ( child_0.el );
1183 var child_1 = new Xcls_Button36( _this );
1185 this.el.add ( child_1.el );
1188 // user defined functions
1190 public class Xcls_Button35 : Object
1192 public Gtk.Button el;
1193 private Xcls_RooProjectSettings _this;
1199 public Xcls_Button35(Xcls_RooProjectSettings _owner )
1202 this.el = new Gtk.Button();
1206 // set gobject values
1207 this.el.label = "Apply";
1210 this.el.button_press_event.connect( () => {
1213 _this.buttonPressed("apply");
1218 // user defined functions
1221 public class Xcls_Button36 : Object
1223 public Gtk.Button el;
1224 private Xcls_RooProjectSettings _this;
1230 public Xcls_Button36(Xcls_RooProjectSettings _owner )
1233 this.el = new Gtk.Button();
1237 // set gobject values
1238 this.el.label = "Save";
1241 this.el.button_press_event.connect( () => {
1244 _this.buttonPressed("save");
1249 // user defined functions