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;
39 public Xcls_RooProjectSettings()
42 this.el = new Gtk.Popover( null );
48 this.el.border_width = 0;
50 this.el.position = Gtk.PositionType.RIGHT;
51 var child_0 = new Xcls_Box2( _this );
53 this.el.add ( child_0.el );
56 // user defined functions
57 public void show (Gtk.Widget btn, Project.Project project) {
60 _this.project = project;
61 _this.path.el.label = project.firstPath();
62 // get the active project.
63 var lm = Gtk.SourceLanguageManager.get_default();
65 ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(
66 lm.get_language("html")
70 //project.runhtml = project.runhtml || '';
71 _this.view.el.get_buffer().set_text(project.runhtml);
75 _this.rootURL.el.set_text( _this.project.rootURL );
77 _this.html_gen_model.loadData(_this.project.html_gen);
79 _this.base_template_model.loadData();
81 var js = _this.project;
82 _this.database_DBTYPE.el.set_text( js.get_string_member("DBTYPE") );
83 _this.database_DBNAME.el.set_text( js.get_string_member("DBNAME") );
84 _this.database_DBUSERNAME.el.set_text( js.get_string_member("DBUSERNAME") );
85 _this.database_DBPASSWORD.el.set_text( js.get_string_member("DBPASSWORD") );
87 //console.log('show all');
88 this.el.set_modal(true);
89 this.el.set_relative_to(btn);
91 this.el.set_position(Gtk.PositionType.RIGHT);
94 print("SHOWALL - POPIP\n");
96 this.el.set_size_request(800,600);
97 this.view.el.grab_focus();
100 //this.el.show_all();
102 public void save () {
103 var buf = _this.view.el.get_buffer();
106 buf.get_start_iter(out s);
107 buf.get_end_iter(out e);
108 _this.project.runhtml = buf.get_text(s,e,true);
110 _this.project.rootURL = _this.rootURL.el.get_text();
115 _this.html_gen.el.get_active_iter(out iter);
116 _this.html_gen_model.el.get_value (iter, 0, out html_gen_val);
118 _this.project.html_gen = (string)html_gen_val;
120 // set by event changed...
121 //_this.project.base_template = _this.base_template.el.get_text();
123 var js = _this.project.json_project_data;
124 js.set_string_member("DBTYPE", _this.database_DBTYPE.el.get_text());
125 js.set_string_member("DBNAME", _this.database_DBNAME.el.get_text());
126 js.set_string_member("DBUSERNAME", _this.database_DBUSERNAME.el.get_text());
127 js.set_string_member("DBPASSWORD", _this.database_DBPASSWORD.el.get_text());
128 // _this.project.set_string_member("DBHOST", _this.DBTYPE.el.get_text());
130 // need to re-init the database
132 _this.project.initRooDatabase();
136 public class Xcls_Box2 : Object
139 private Xcls_RooProjectSettings _this;
145 public Xcls_Box2(Xcls_RooProjectSettings _owner )
148 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
152 // set gobject values
153 this.el.homogeneous = false;
154 this.el.border_width = 5;
155 var child_0 = new Xcls_Notebook3( _this );
157 this.el.pack_start ( child_0.el , true,true,0 );
158 var child_1 = new Xcls_ButtonBox34( _this );
160 this.el.add( child_1.el );
163 // user defined functions
165 public class Xcls_Notebook3 : Object
167 public Gtk.Notebook el;
168 private Xcls_RooProjectSettings _this;
174 public Xcls_Notebook3(Xcls_RooProjectSettings _owner )
177 this.el = new Gtk.Notebook();
181 // set gobject values
182 var child_0 = new Xcls_label_global( _this );
184 var child_1 = new Xcls_label_database( _this );
186 var child_2 = new Xcls_Box6( _this );
188 this.el.append_page ( child_2.el , _this.label_global.el );
189 var child_3 = new Xcls_Box23( _this );
191 this.el.append_page ( child_3.el , _this.label_database.el );
194 // user defined functions
196 public class Xcls_label_global : Object
199 private Xcls_RooProjectSettings _this;
205 public Xcls_label_global(Xcls_RooProjectSettings _owner )
208 _this.label_global = this;
209 this.el = new Gtk.Label( "Global" );
213 // set gobject values
216 // user defined functions
219 public class Xcls_label_database : Object
222 private Xcls_RooProjectSettings _this;
228 public Xcls_label_database(Xcls_RooProjectSettings _owner )
231 _this.label_database = this;
232 this.el = new Gtk.Label( "Database" );
236 // set gobject values
239 // user defined functions
242 public class Xcls_Box6 : Object
245 private Xcls_RooProjectSettings _this;
251 public Xcls_Box6(Xcls_RooProjectSettings _owner )
254 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
258 // set gobject values
259 this.el.homogeneous = false;
260 var child_0 = new Xcls_grid( _this );
262 this.el.pack_start ( child_0.el , false,false,4 );
263 var child_1 = new Xcls_Label20( _this );
265 this.el.pack_start ( child_1.el , false,false,0 );
266 var child_2 = new Xcls_ScrolledWindow21( _this );
268 this.el.pack_start ( child_2.el , true,true,0 );
271 // user defined functions
273 public class Xcls_grid : Object
276 private Xcls_RooProjectSettings _this;
282 public Xcls_grid(Xcls_RooProjectSettings _owner )
286 this.el = new Gtk.Grid();
290 // set gobject values
291 this.el.margin_end = 4;
292 this.el.margin_start = 4;
293 this.el.row_spacing = 2;
294 var child_0 = new Xcls_Label8( _this );
296 this.el.attach ( child_0.el , 0,0,1,1 );
297 var child_1 = new Xcls_path( _this );
299 this.el.attach ( child_1.el , 1,0,1,1 );
300 var child_2 = new Xcls_Label10( _this );
302 this.el.attach ( child_2.el , 0,1,1,1 );
303 var child_3 = new Xcls_base_template( _this );
305 this.el.attach ( child_3.el , 1,1,1,1 );
306 var child_4 = new Xcls_Label14( _this );
308 this.el.attach ( child_4.el , 0,2,1,1 );
309 var child_5 = new Xcls_rootURL( _this );
311 this.el.attach ( child_5.el , 1,2,1,1 );
312 var child_6 = new Xcls_Label16( _this );
314 this.el.attach ( child_6.el , 0,3,1,1 );
315 var child_7 = new Xcls_html_gen( _this );
317 this.el.attach ( child_7.el , 1,3,1,1 );
320 // user defined functions
322 public class Xcls_Label8 : Object
325 private Xcls_RooProjectSettings _this;
331 public Xcls_Label8(Xcls_RooProjectSettings _owner )
334 this.el = new Gtk.Label( "Filename" );
338 // set gobject values
343 // user defined functions
346 public class Xcls_path : Object
349 private Xcls_RooProjectSettings _this;
355 public Xcls_path(Xcls_RooProjectSettings _owner )
359 this.el = new Gtk.Label( "filename" );
363 // set gobject values
368 // user defined functions
371 public class Xcls_Label10 : Object
374 private Xcls_RooProjectSettings _this;
380 public Xcls_Label10(Xcls_RooProjectSettings _owner )
383 this.el = new Gtk.Label( "HTML template file" );
387 // set gobject values
391 // user defined functions
394 public class Xcls_base_template : Object
396 public Gtk.ComboBox el;
397 private Xcls_RooProjectSettings _this;
404 public Xcls_base_template(Xcls_RooProjectSettings _owner )
407 _this.base_template = this;
408 this.el = new Gtk.ComboBox();
411 this.loading = false;
413 // set gobject values
414 var child_0 = new Xcls_base_template_cellrenderer( _this );
416 this.el.pack_start ( child_0.el , true );
417 var child_1 = new Xcls_base_template_model( _this );
419 this.el.set_model ( child_1.el );
423 this.el.add_attribute(_this.base_template_cellrenderer.el , "markup", 0 );
426 this.el.changed.connect( () => {
429 // this get's called when we are filling in the data... ???
435 if (this.el.get_active_iter(out iter)) {
437 _this.base_template_model.el.get_value (iter, 0, out vfname);
438 _this.project.base_template = ((string)vfname) ;
440 print("\nSET base template to %s\n", _this.project.base_template );
441 // is_bjs = ((string)vfname) == "bjs";
445 // directory is only available for non-bjs
452 // user defined functions
454 public class Xcls_base_template_cellrenderer : Object
456 public Gtk.CellRendererText el;
457 private Xcls_RooProjectSettings _this;
463 public Xcls_base_template_cellrenderer(Xcls_RooProjectSettings _owner )
466 _this.base_template_cellrenderer = this;
467 this.el = new Gtk.CellRendererText();
471 // set gobject values
474 // user defined functions
477 public class Xcls_base_template_model : Object
479 public Gtk.ListStore el;
480 private Xcls_RooProjectSettings _this;
486 public Xcls_base_template_model(Xcls_RooProjectSettings _owner )
489 _this.base_template_model = this;
490 this.el = new Gtk.ListStore.newv( { typeof(string) } );
494 // set gobject values
497 // user defined functions
498 public void loadData () {
499 _this.base_template.loading = true;
505 /// el.append(out iter);
509 el.set_value(iter, 0, "roo.builder.html");
510 _this.base_template.el.set_active_iter(iter);
511 if (_this.project.base_template == "roo.builder.html") {
512 _this.base_template.el.set_active_iter(iter);
516 el.set_value(iter, 0, "bootstrap.builder.html");
518 print("\ncur template = %s\n", _this.project.base_template);
520 if (_this.project.base_template == "bootstrap.builder.html") {
521 _this.base_template.el.set_active_iter(iter);
524 el.set_value(iter, 0, "bootstrap4.builder.html");
525 if (_this.project.base_template == "bootstrap4.builder.html") {
526 _this.base_template.el.set_active_iter(iter);
531 el.set_value(iter, 0, "mailer.builder.html");
533 if (_this.project.base_template == "mailer.builder.html") {
534 _this.base_template.el.set_active_iter(iter);
536 _this.base_template.loading = false;
542 public class Xcls_Label14 : Object
545 private Xcls_RooProjectSettings _this;
551 public Xcls_Label14(Xcls_RooProjectSettings _owner )
554 this.el = new Gtk.Label( "root URL" );
558 // set gobject values
562 // user defined functions
565 public class Xcls_rootURL : Object
568 private Xcls_RooProjectSettings _this;
574 public Xcls_rootURL(Xcls_RooProjectSettings _owner )
577 _this.rootURL = this;
578 this.el = new Gtk.Entry();
582 // set gobject values
585 // user defined functions
588 public class Xcls_Label16 : Object
591 private Xcls_RooProjectSettings _this;
597 public Xcls_Label16(Xcls_RooProjectSettings _owner )
600 this.el = new Gtk.Label( "Generate HTML in" );
604 // set gobject values
608 // user defined functions
611 public class Xcls_html_gen : Object
613 public Gtk.ComboBox el;
614 private Xcls_RooProjectSettings _this;
620 public Xcls_html_gen(Xcls_RooProjectSettings _owner )
623 _this.html_gen = this;
624 this.el = new Gtk.ComboBox();
628 // set gobject values
629 var child_0 = new Xcls_html_gen_cellrenderer( _this );
631 this.el.pack_start ( child_0.el , true );
632 var child_1 = new Xcls_html_gen_model( _this );
634 this.el.set_model ( child_1.el );
638 this.el.add_attribute(_this.html_gen_cellrenderer.el , "markup", 1 );
641 // user defined functions
643 public class Xcls_html_gen_cellrenderer : Object
645 public Gtk.CellRendererText el;
646 private Xcls_RooProjectSettings _this;
652 public Xcls_html_gen_cellrenderer(Xcls_RooProjectSettings _owner )
655 _this.html_gen_cellrenderer = this;
656 this.el = new Gtk.CellRendererText();
660 // set gobject values
663 // user defined functions
666 public class Xcls_html_gen_model : Object
668 public Gtk.ListStore el;
669 private Xcls_RooProjectSettings _this;
675 public Xcls_html_gen_model(Xcls_RooProjectSettings _owner )
678 _this.html_gen_model = this;
679 this.el = new Gtk.ListStore.newv( { typeof(string),typeof(string) } );
683 // set gobject values
686 // user defined functions
687 public void loadData (string cur) {
696 el.set_value(iter, 0, "");
697 el.set_value(iter, 1, "Do not Generate");
698 _this.html_gen.el.set_active_iter(iter);
702 el.set_value(iter, 0, "bjs");
703 el.set_value(iter, 1, "same directory as BJS file");
705 _this.html_gen.el.set_active_iter(iter);
712 el.set_value(iter, 0, "templates");
713 el.set_value(iter, 1, "in templates subdirectory");
715 if (cur == "template") {
716 _this.html_gen.el.set_active_iter(iter);
725 public class Xcls_Label20 : Object
728 private Xcls_RooProjectSettings _this;
734 public Xcls_Label20(Xcls_RooProjectSettings _owner )
737 this.el = new Gtk.Label( "HTML To insert at end of <HEAD>" );
741 // set gobject values
744 // user defined functions
747 public class Xcls_ScrolledWindow21 : Object
749 public Gtk.ScrolledWindow el;
750 private Xcls_RooProjectSettings _this;
756 public Xcls_ScrolledWindow21(Xcls_RooProjectSettings _owner )
759 this.el = new Gtk.ScrolledWindow( null, null );
763 // set gobject values
764 var child_0 = new Xcls_view( _this );
766 this.el.add ( child_0.el );
769 // user defined functions
771 public class Xcls_view : Object
773 public Gtk.SourceView el;
774 private Xcls_RooProjectSettings _this;
778 public Gtk.CssProvider css;
781 public Xcls_view(Xcls_RooProjectSettings _owner )
785 this.el = new Gtk.SourceView();
789 // set gobject values
790 this.el.name = "roo-project-settings-view";
794 this.css = new Gtk.CssProvider();
796 this.css.load_from_data("#roo-project-settings-view{ font: monospace 10px;}");
798 this.el.get_style_context().add_provider(this.css,Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
801 this.el.key_release_event.connect( ( event) =>{
802 if (event.keyval != 115) {
806 if ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {
809 var buf = this.el.get_buffer();
812 buf.get_start_iter(out s);
813 buf.get_end_iter(out e);
814 _this.project.runhtml = buf.get_text(s,e,true);
817 _this.buttonPressed("save");
824 // user defined functions
829 public class Xcls_Box23 : Object
832 private Xcls_RooProjectSettings _this;
838 public Xcls_Box23(Xcls_RooProjectSettings _owner )
841 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
845 // set gobject values
846 this.el.homogeneous = false;
847 var child_0 = new Xcls_Label24( _this );
849 this.el.pack_start ( child_0.el , false,false,0 );
850 var child_1 = new Xcls_database_DBTYPE( _this );
852 this.el.pack_start ( child_1.el , false,false,0 );
853 var child_2 = new Xcls_Label26( _this );
855 this.el.pack_start ( child_2.el , false,false,0 );
856 var child_3 = new Xcls_database_DBNAME( _this );
858 this.el.pack_start ( child_3.el , false,false,0 );
859 var child_4 = new Xcls_Label28( _this );
861 this.el.pack_start ( child_4.el , false,false,0 );
862 var child_5 = new Xcls_database_DBUSERNAME( _this );
864 this.el.pack_start ( child_5.el , false,false,0 );
865 var child_6 = new Xcls_Label30( _this );
867 this.el.pack_start ( child_6.el , false,false,0 );
868 var child_7 = new Xcls_database_DBPASSWORD( _this );
870 this.el.pack_start ( child_7.el , false,false,0 );
871 var child_8 = new Xcls_Button32( _this );
873 this.el.pack_start ( child_8.el , false,false,0 );
874 var child_9 = new Xcls_database_ERROR( _this );
876 this.el.pack_start ( child_9.el , false,false,0 );
879 // user defined functions
881 public class Xcls_Label24 : Object
884 private Xcls_RooProjectSettings _this;
890 public Xcls_Label24(Xcls_RooProjectSettings _owner )
893 this.el = new Gtk.Label( "Type (eg. MySQL or PostgreSQL)" );
897 // set gobject values
901 // user defined functions
904 public class Xcls_database_DBTYPE : Object
907 private Xcls_RooProjectSettings _this;
913 public Xcls_database_DBTYPE(Xcls_RooProjectSettings _owner )
916 _this.database_DBTYPE = this;
917 this.el = new Gtk.Entry();
921 // set gobject values
924 this.el.key_press_event.connect( (ev) => {
926 if (ev.keyval == Gdk.Key.Tab) {
927 _this.database_DBNAME.el.grab_focus();
936 // user defined functions
939 public class Xcls_Label26 : Object
942 private Xcls_RooProjectSettings _this;
948 public Xcls_Label26(Xcls_RooProjectSettings _owner )
951 this.el = new Gtk.Label( "Name" );
955 // set gobject values
959 // user defined functions
962 public class Xcls_database_DBNAME : Object
965 private Xcls_RooProjectSettings _this;
971 public Xcls_database_DBNAME(Xcls_RooProjectSettings _owner )
974 _this.database_DBNAME = this;
975 this.el = new Gtk.Entry();
979 // set gobject values
982 this.el.key_press_event.connect( (ev) => {
984 if (ev.keyval == Gdk.Key.Tab) {
985 _this.database_DBUSERNAME.el.grab_focus();
994 // user defined functions
997 public class Xcls_Label28 : Object
1000 private Xcls_RooProjectSettings _this;
1006 public Xcls_Label28(Xcls_RooProjectSettings _owner )
1009 this.el = new Gtk.Label( "Username" );
1013 // set gobject values
1014 this.el.xalign = 0f;
1017 // user defined functions
1020 public class Xcls_database_DBUSERNAME : Object
1022 public Gtk.Entry el;
1023 private Xcls_RooProjectSettings _this;
1029 public Xcls_database_DBUSERNAME(Xcls_RooProjectSettings _owner )
1032 _this.database_DBUSERNAME = this;
1033 this.el = new Gtk.Entry();
1037 // set gobject values
1040 this.el.key_press_event.connect( (ev) => {
1042 if (ev.keyval == Gdk.Key.Tab) {
1043 _this.database_DBPASSWORD.el.grab_focus();
1052 // user defined functions
1055 public class Xcls_Label30 : Object
1057 public Gtk.Label el;
1058 private Xcls_RooProjectSettings _this;
1064 public Xcls_Label30(Xcls_RooProjectSettings _owner )
1067 this.el = new Gtk.Label( "Password" );
1071 // set gobject values
1072 this.el.xalign = 0f;
1075 // user defined functions
1078 public class Xcls_database_DBPASSWORD : Object
1080 public Gtk.Entry el;
1081 private Xcls_RooProjectSettings _this;
1087 public Xcls_database_DBPASSWORD(Xcls_RooProjectSettings _owner )
1090 _this.database_DBPASSWORD = this;
1091 this.el = new Gtk.Entry();
1095 // set gobject values
1098 // user defined functions
1101 public class Xcls_Button32 : Object
1103 public Gtk.Button el;
1104 private Xcls_RooProjectSettings _this;
1110 public Xcls_Button32(Xcls_RooProjectSettings _owner )
1113 this.el = new Gtk.Button();
1117 // set gobject values
1118 this.el.label = "Check Connection";
1121 this.el.clicked.connect( () => {
1124 _this.database_ERROR.el.label = "";
1127 // assumes localhost...
1128 cnc = Gda.Connection.open_from_string (
1129 _this.database_DBTYPE.el.get_text(),
1130 "DB_NAME=" + _this.database_DBNAME.el.get_text(),
1131 "USERNAME=" + _this.database_DBUSERNAME.el.get_text() +
1132 ";PASSWORD=" + _this.database_DBPASSWORD.el.get_text(),
1133 Gda.ConnectionOptions.NONE
1135 //} catch (Gda.ConnectionError ce) {
1136 // _this.database_ERROR.el.label = ce.message;
1137 } catch(Gda.ConnectionError ue) {
1138 _this.database_ERROR.el.label = ue.message;
1140 } catch(Gda.ConfigError ue) {
1141 _this.database_ERROR.el.label = ue.message;
1144 _this.database_ERROR.el.label = "Connection Succeeded";
1149 // user defined functions
1152 public class Xcls_database_ERROR : Object
1154 public Gtk.Label el;
1155 private Xcls_RooProjectSettings _this;
1161 public Xcls_database_ERROR(Xcls_RooProjectSettings _owner )
1164 _this.database_ERROR = this;
1165 this.el = new Gtk.Label( " " );
1169 // set gobject values
1171 this.el.xalign = 0f;
1174 // user defined functions
1179 public class Xcls_ButtonBox34 : Object
1181 public Gtk.ButtonBox el;
1182 private Xcls_RooProjectSettings _this;
1188 public Xcls_ButtonBox34(Xcls_RooProjectSettings _owner )
1191 this.el = new Gtk.ButtonBox( Gtk.Orientation.HORIZONTAL );
1195 // set gobject values
1196 this.el.margin_end = 4;
1197 this.el.margin_start = 4;
1198 this.el.margin_bottom = 4;
1199 this.el.margin_top = 4;
1200 var child_0 = new Xcls_Button35( _this );
1202 this.el.add ( child_0.el );
1203 var child_1 = new Xcls_Button36( _this );
1205 this.el.add ( child_1.el );
1206 var child_2 = new Xcls_Button37( _this );
1208 this.el.add ( child_2.el );
1211 // user defined functions
1213 public class Xcls_Button35 : Object
1215 public Gtk.Button el;
1216 private Xcls_RooProjectSettings _this;
1222 public Xcls_Button35(Xcls_RooProjectSettings _owner )
1225 this.el = new Gtk.Button();
1229 // set gobject values
1230 this.el.label = "Cancel";
1233 this.el.clicked.connect( () => {
1240 // user defined functions
1243 public class Xcls_Button36 : Object
1245 public Gtk.Button el;
1246 private Xcls_RooProjectSettings _this;
1252 public Xcls_Button36(Xcls_RooProjectSettings _owner )
1255 this.el = new Gtk.Button();
1259 // set gobject values
1260 this.el.label = "Apply / Keep editing";
1263 this.el.clicked.connect( ( ) => {
1265 _this.buttonPressed("apply");
1271 // user defined functions
1274 public class Xcls_Button37 : Object
1276 public Gtk.Button el;
1277 private Xcls_RooProjectSettings _this;
1283 public Xcls_Button37(Xcls_RooProjectSettings _owner )
1286 this.el = new Gtk.Button();
1290 // set gobject values
1291 this.el.label = "Save";
1294 this.el.clicked.connect( ( ) => {
1297 _this.buttonPressed("save");
1303 // hopefull this will work with bjs files..
1310 // user defined functions