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_view view;
24 public Xcls_database_DBTYPE database_DBTYPE;
25 public Xcls_database_DBNAME database_DBNAME;
26 public Xcls_database_DBUSERNAME database_DBUSERNAME;
27 public Xcls_database_DBPASSWORD database_DBPASSWORD;
28 public Xcls_database_ERROR database_ERROR;
31 public signal void buttonPressed (string btn);
32 public Project.Project project;
35 public Xcls_RooProjectSettings()
38 this.el = new Gtk.Popover( null );
43 this.el.border_width = 0;
45 this.el.position = Gtk.PositionType.RIGHT;
46 var child_0 = new Xcls_Box2( _this );
48 this.el.add ( child_0.el );
51 // user defined functions
52 public void show (Gtk.Widget btn, Project.Project project) {
53 _this.project = project;
54 _this.path.el.label = project.firstPath();
55 // get the active project.
56 var lm = Gtk.SourceLanguageManager.get_default();
58 ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(
59 lm.get_language("html")
63 //project.runhtml = project.runhtml || '';
64 _this.view.el.get_buffer().set_text(project.runhtml);
67 _this.rootURL.el.set_text( _this.project.rootURL );
70 _this.base_template_model.loadData();
72 var js = _this.project;
73 _this.database_DBTYPE.el.set_text( js.get_string_member("DBTYPE") );
74 _this.database_DBNAME.el.set_text( js.get_string_member("DBNAME") );
75 _this.database_DBUSERNAME.el.set_text( js.get_string_member("DBUSERNAME") );
76 _this.database_DBPASSWORD.el.set_text( js.get_string_member("DBPASSWORD") );
78 //console.log('show all');
79 this.el.set_modal(true);
80 this.el.set_relative_to(btn);
82 this.el.set_position(Gtk.PositionType.RIGHT);
85 print("SHOWALL - POPIP\n");
87 this.el.set_size_request(800,500);
88 this.view.el.grab_focus();
94 var buf = _this.view.el.get_buffer();
97 buf.get_start_iter(out s);
98 buf.get_end_iter(out e);
99 _this.project.runhtml = buf.get_text(s,e,true);
101 _this.project.rootURL = _this.rootURL.el.get_text();
102 // set by event changed...
103 //_this.project.base_template = _this.base_template.el.get_text();
105 var js = _this.project.json_project_data;
106 js.set_string_member("DBTYPE", _this.database_DBTYPE.el.get_text());
107 js.set_string_member("DBNAME", _this.database_DBNAME.el.get_text());
108 js.set_string_member("DBUSERNAME", _this.database_DBUSERNAME.el.get_text());
109 js.set_string_member("DBPASSWORD", _this.database_DBPASSWORD.el.get_text());
110 // _this.project.set_string_member("DBHOST", _this.DBTYPE.el.get_text());
112 // need to re-init the database
114 _this.project.initRooDatabase();
118 public class Xcls_Box2 : Object
121 private Xcls_RooProjectSettings _this;
127 public Xcls_Box2(Xcls_RooProjectSettings _owner )
130 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
134 // set gobject values
135 this.el.homogeneous = false;
136 this.el.border_width = 5;
137 var child_0 = new Xcls_Notebook3( _this );
139 this.el.pack_start ( child_0.el , true,true,0 );
140 var child_1 = new Xcls_Box31( _this );
142 this.el.pack_end ( child_1.el , false,false,0 );
145 // user defined functions
147 public class Xcls_Notebook3 : Object
149 public Gtk.Notebook el;
150 private Xcls_RooProjectSettings _this;
156 public Xcls_Notebook3(Xcls_RooProjectSettings _owner )
159 this.el = new Gtk.Notebook();
163 // set gobject values
164 var child_0 = new Xcls_label_global( _this );
166 var child_1 = new Xcls_label_database( _this );
168 var child_2 = new Xcls_Box6( _this );
170 this.el.append_page ( child_2.el , _this.label_global.el );
171 var child_3 = new Xcls_Box20( _this );
173 this.el.append_page ( child_3.el , _this.label_database.el );
176 // user defined functions
178 public class Xcls_label_global : Object
181 private Xcls_RooProjectSettings _this;
187 public Xcls_label_global(Xcls_RooProjectSettings _owner )
190 _this.label_global = this;
191 this.el = new Gtk.Label( "Global" );
195 // set gobject values
198 // user defined functions
201 public class Xcls_label_database : Object
204 private Xcls_RooProjectSettings _this;
210 public Xcls_label_database(Xcls_RooProjectSettings _owner )
213 _this.label_database = this;
214 this.el = new Gtk.Label( "Database" );
218 // set gobject values
221 // user defined functions
224 public class Xcls_Box6 : Object
227 private Xcls_RooProjectSettings _this;
233 public Xcls_Box6(Xcls_RooProjectSettings _owner )
236 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
240 // set gobject values
241 this.el.homogeneous = false;
242 var child_0 = new Xcls_grid( _this );
244 this.el.pack_start ( child_0.el , false,false,4 );
245 var child_1 = new Xcls_Label17( _this );
247 this.el.pack_start ( child_1.el , false,false,0 );
248 var child_2 = new Xcls_ScrolledWindow18( _this );
250 this.el.pack_start ( child_2.el , true,true,0 );
253 // user defined functions
255 public class Xcls_grid : Object
258 private Xcls_RooProjectSettings _this;
264 public Xcls_grid(Xcls_RooProjectSettings _owner )
268 this.el = new Gtk.Grid();
272 // set gobject values
273 this.el.margin_right = 4;
274 this.el.margin_left = 4;
275 this.el.row_spacing = 2;
276 var child_0 = new Xcls_Label8( _this );
278 this.el.attach ( child_0.el , 0,0,1,1 );
279 var child_1 = new Xcls_path( _this );
281 this.el.attach ( child_1.el , 1,0,1,1 );
282 var child_2 = new Xcls_Label10( _this );
284 this.el.attach ( child_2.el , 0,1,1,1 );
285 var child_3 = new Xcls_base_template( _this );
287 this.el.attach ( child_3.el , 1,1,1,1 );
288 var child_4 = new Xcls_Label14( _this );
290 this.el.attach ( child_4.el , 0,2,1,1 );
291 var child_5 = new Xcls_rootURL( _this );
293 this.el.attach ( child_5.el , 1,2,1,1 );
294 var child_6 = new Xcls_Label16( _this );
296 this.el.attach ( child_6.el , 0,1,1,1 );
299 // user defined functions
301 public class Xcls_Label8 : Object
304 private Xcls_RooProjectSettings _this;
310 public Xcls_Label8(Xcls_RooProjectSettings _owner )
313 this.el = new Gtk.Label( "Filename" );
317 // set gobject values
322 // user defined functions
325 public class Xcls_path : Object
328 private Xcls_RooProjectSettings _this;
334 public Xcls_path(Xcls_RooProjectSettings _owner )
338 this.el = new Gtk.Label( "filename" );
342 // set gobject values
347 // user defined functions
350 public class Xcls_Label10 : Object
353 private Xcls_RooProjectSettings _this;
359 public Xcls_Label10(Xcls_RooProjectSettings _owner )
362 this.el = new Gtk.Label( "HTML template file" );
366 // set gobject values
370 // user defined functions
373 public class Xcls_base_template : Object
375 public Gtk.ComboBox el;
376 private Xcls_RooProjectSettings _this;
383 public Xcls_base_template(Xcls_RooProjectSettings _owner )
386 _this.base_template = this;
387 this.el = new Gtk.ComboBox();
390 this.loading = false;
392 // set gobject values
393 var child_0 = new Xcls_base_template_cellrenderer( _this );
395 this.el.pack_start ( child_0.el , true );
396 var child_1 = new Xcls_base_template_model( _this );
398 this.el.set_model ( child_1.el );
402 this.el.add_attribute(_this.base_template_cellrenderer.el , "markup", 0 );
405 this.el.changed.connect( () => {
408 // this get's called when we are filling in the data... ???
414 if (this.el.get_active_iter(out iter)) {
416 _this.base_template_model.el.get_value (iter, 0, out vfname);
417 _this.project.base_template = ((string)vfname) ;
419 print("\nSET base template to %s\n", _this.project.base_template );
420 // is_bjs = ((string)vfname) == "bjs";
424 // directory is only available for non-bjs
431 // user defined functions
433 public class Xcls_base_template_cellrenderer : Object
435 public Gtk.CellRendererText el;
436 private Xcls_RooProjectSettings _this;
442 public Xcls_base_template_cellrenderer(Xcls_RooProjectSettings _owner )
445 _this.base_template_cellrenderer = this;
446 this.el = new Gtk.CellRendererText();
450 // set gobject values
453 // user defined functions
456 public class Xcls_base_template_model : Object
458 public Gtk.ListStore el;
459 private Xcls_RooProjectSettings _this;
465 public Xcls_base_template_model(Xcls_RooProjectSettings _owner )
468 _this.base_template_model = this;
469 this.el = new Gtk.ListStore( 1, typeof(string) );
473 // set gobject values
476 // user defined functions
477 public void loadData () {
478 _this.base_template.loading = true;
484 /// el.append(out iter);
488 el.set_value(iter, 0, "roo.builder.html");
489 _this.base_template.el.set_active_iter(iter);
490 if (_this.project.base_template == "roo.builder.html") {
491 _this.base_template.el.set_active_iter(iter);
495 el.set_value(iter, 0, "bootstrap.builder.html");
497 print("\ncur template = %s\n", _this.project.base_template);
499 if (_this.project.base_template == "bootstrap.builder.html") {
500 _this.base_template.el.set_active_iter(iter);
504 el.set_value(iter, 0, "mailer.builder.html");
506 if (_this.project.base_template == "mailer.builder.html") {
507 _this.base_template.el.set_active_iter(iter);
509 _this.base_template.loading = false;
515 public class Xcls_Label14 : Object
518 private Xcls_RooProjectSettings _this;
524 public Xcls_Label14(Xcls_RooProjectSettings _owner )
527 this.el = new Gtk.Label( "root URL" );
531 // set gobject values
535 // user defined functions
538 public class Xcls_rootURL : Object
541 private Xcls_RooProjectSettings _this;
547 public Xcls_rootURL(Xcls_RooProjectSettings _owner )
550 _this.rootURL = this;
551 this.el = new Gtk.Entry();
555 // set gobject values
558 // user defined functions
561 public class Xcls_Label16 : Object
564 private Xcls_RooProjectSettings _this;
570 public Xcls_Label16(Xcls_RooProjectSettings _owner )
573 this.el = new Gtk.Label( "Generate HTML in" );
577 // set gobject values
581 // user defined functions
585 public class Xcls_Label17 : Object
588 private Xcls_RooProjectSettings _this;
594 public Xcls_Label17(Xcls_RooProjectSettings _owner )
597 this.el = new Gtk.Label( "HTML To insert at end of <HEAD>" );
601 // set gobject values
604 // user defined functions
607 public class Xcls_ScrolledWindow18 : Object
609 public Gtk.ScrolledWindow el;
610 private Xcls_RooProjectSettings _this;
616 public Xcls_ScrolledWindow18(Xcls_RooProjectSettings _owner )
619 this.el = new Gtk.ScrolledWindow( null, null );
623 // set gobject values
624 var child_0 = new Xcls_view( _this );
626 this.el.add ( child_0.el );
629 // user defined functions
631 public class Xcls_view : Object
633 public Gtk.SourceView el;
634 private Xcls_RooProjectSettings _this;
640 public Xcls_view(Xcls_RooProjectSettings _owner )
644 this.el = new Gtk.SourceView();
650 var description = Pango.FontDescription.from_string("monospace");
651 description.set_size(9000);
652 this.el.override_font(description);
655 this.el.key_release_event.connect( ( event) =>{
656 if (event.keyval != 115) {
660 if ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {
663 var buf = this.el.get_buffer();
666 buf.get_start_iter(out s);
667 buf.get_end_iter(out e);
668 _this.project.runhtml = buf.get_text(s,e,true);
671 _this.buttonPressed("save");
678 // user defined functions
683 public class Xcls_Box20 : Object
686 private Xcls_RooProjectSettings _this;
692 public Xcls_Box20(Xcls_RooProjectSettings _owner )
695 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
699 // set gobject values
700 this.el.homogeneous = false;
701 var child_0 = new Xcls_Label21( _this );
703 this.el.pack_start ( child_0.el , false,false,0 );
704 var child_1 = new Xcls_database_DBTYPE( _this );
706 this.el.pack_start ( child_1.el , false,false,0 );
707 var child_2 = new Xcls_Label23( _this );
709 this.el.pack_start ( child_2.el , false,false,0 );
710 var child_3 = new Xcls_database_DBNAME( _this );
712 this.el.pack_start ( child_3.el , false,false,0 );
713 var child_4 = new Xcls_Label25( _this );
715 this.el.pack_start ( child_4.el , false,false,0 );
716 var child_5 = new Xcls_database_DBUSERNAME( _this );
718 this.el.pack_start ( child_5.el , false,false,0 );
719 var child_6 = new Xcls_Label27( _this );
721 this.el.pack_start ( child_6.el , false,false,0 );
722 var child_7 = new Xcls_database_DBPASSWORD( _this );
724 this.el.pack_start ( child_7.el , false,false,0 );
725 var child_8 = new Xcls_Button29( _this );
727 this.el.pack_start ( child_8.el , false,false,0 );
728 var child_9 = new Xcls_database_ERROR( _this );
730 this.el.pack_start ( child_9.el , false,false,0 );
733 // user defined functions
735 public class Xcls_Label21 : Object
738 private Xcls_RooProjectSettings _this;
744 public Xcls_Label21(Xcls_RooProjectSettings _owner )
747 this.el = new Gtk.Label( "Type (eg. MySQL or PostgreSQL)" );
751 // set gobject values
755 // user defined functions
758 public class Xcls_database_DBTYPE : Object
761 private Xcls_RooProjectSettings _this;
767 public Xcls_database_DBTYPE(Xcls_RooProjectSettings _owner )
770 _this.database_DBTYPE = this;
771 this.el = new Gtk.Entry();
775 // set gobject values
778 this.el.key_press_event.connect( (ev) => {
780 if (ev.keyval == Gdk.Key.Tab) {
781 _this.database_DBNAME.el.grab_focus();
790 // user defined functions
793 public class Xcls_Label23 : Object
796 private Xcls_RooProjectSettings _this;
802 public Xcls_Label23(Xcls_RooProjectSettings _owner )
805 this.el = new Gtk.Label( "Name" );
809 // set gobject values
813 // user defined functions
816 public class Xcls_database_DBNAME : Object
819 private Xcls_RooProjectSettings _this;
825 public Xcls_database_DBNAME(Xcls_RooProjectSettings _owner )
828 _this.database_DBNAME = this;
829 this.el = new Gtk.Entry();
833 // set gobject values
836 this.el.key_press_event.connect( (ev) => {
838 if (ev.keyval == Gdk.Key.Tab) {
839 _this.database_DBUSERNAME.el.grab_focus();
848 // user defined functions
851 public class Xcls_Label25 : Object
854 private Xcls_RooProjectSettings _this;
860 public Xcls_Label25(Xcls_RooProjectSettings _owner )
863 this.el = new Gtk.Label( "Username" );
867 // set gobject values
871 // user defined functions
874 public class Xcls_database_DBUSERNAME : Object
877 private Xcls_RooProjectSettings _this;
883 public Xcls_database_DBUSERNAME(Xcls_RooProjectSettings _owner )
886 _this.database_DBUSERNAME = this;
887 this.el = new Gtk.Entry();
891 // set gobject values
894 this.el.key_press_event.connect( (ev) => {
896 if (ev.keyval == Gdk.Key.Tab) {
897 _this.database_DBPASSWORD.el.grab_focus();
906 // user defined functions
909 public class Xcls_Label27 : Object
912 private Xcls_RooProjectSettings _this;
918 public Xcls_Label27(Xcls_RooProjectSettings _owner )
921 this.el = new Gtk.Label( "Password" );
925 // set gobject values
929 // user defined functions
932 public class Xcls_database_DBPASSWORD : Object
935 private Xcls_RooProjectSettings _this;
941 public Xcls_database_DBPASSWORD(Xcls_RooProjectSettings _owner )
944 _this.database_DBPASSWORD = this;
945 this.el = new Gtk.Entry();
949 // set gobject values
952 // user defined functions
955 public class Xcls_Button29 : Object
957 public Gtk.Button el;
958 private Xcls_RooProjectSettings _this;
964 public Xcls_Button29(Xcls_RooProjectSettings _owner )
967 this.el = new Gtk.Button();
971 // set gobject values
972 this.el.label = "Check Connection";
975 this.el.clicked.connect( () => {
978 _this.database_ERROR.el.label = "";
981 // assumes localhost...
982 cnc = Gda.Connection.open_from_string (
983 _this.database_DBTYPE.el.get_text(),
984 "DB_NAME=" + _this.database_DBNAME.el.get_text(),
985 "USERNAME=" + _this.database_DBUSERNAME.el.get_text() +
986 ";PASSWORD=" + _this.database_DBPASSWORD.el.get_text(),
987 Gda.ConnectionOptions.NONE
989 //} catch (Gda.ConnectionError ce) {
990 // _this.database_ERROR.el.label = ce.message;
991 } catch(Gda.ConnectionError ue) {
992 _this.database_ERROR.el.label = ue.message;
994 } catch(Gda.ConfigError ue) {
995 _this.database_ERROR.el.label = ue.message;
998 _this.database_ERROR.el.label = "Connection Succeeded";
1003 // user defined functions
1006 public class Xcls_database_ERROR : Object
1008 public Gtk.Label el;
1009 private Xcls_RooProjectSettings _this;
1015 public Xcls_database_ERROR(Xcls_RooProjectSettings _owner )
1018 _this.database_ERROR = this;
1019 this.el = new Gtk.Label( " " );
1023 // set gobject values
1025 this.el.xalign = 0f;
1028 // user defined functions
1033 public class Xcls_Box31 : Object
1036 private Xcls_RooProjectSettings _this;
1042 public Xcls_Box31(Xcls_RooProjectSettings _owner )
1045 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
1049 // set gobject values
1050 this.el.homogeneous = true;
1051 this.el.expand = false;
1052 this.el.vexpand = false;
1053 var child_0 = new Xcls_Button32( _this );
1055 this.el.add ( child_0.el );
1056 var child_1 = new Xcls_Button33( _this );
1058 this.el.add ( child_1.el );
1061 // user defined functions
1063 public class Xcls_Button32 : Object
1065 public Gtk.Button el;
1066 private Xcls_RooProjectSettings _this;
1072 public Xcls_Button32(Xcls_RooProjectSettings _owner )
1075 this.el = new Gtk.Button();
1079 // set gobject values
1080 this.el.label = "Apply";
1083 this.el.button_press_event.connect( () => {
1086 _this.buttonPressed("apply");
1091 // user defined functions
1094 public class Xcls_Button33 : Object
1096 public Gtk.Button el;
1097 private Xcls_RooProjectSettings _this;
1103 public Xcls_Button33(Xcls_RooProjectSettings _owner )
1106 this.el = new Gtk.Button();
1110 // set gobject values
1111 this.el.label = "Save";
1114 this.el.button_press_event.connect( () => {
1117 _this.buttonPressed("save");
1122 // user defined functions