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_path path;
18 public Xcls_base_template base_template;
19 public Xcls_base_template_cellrenderer base_template_cellrenderer;
20 public Xcls_base_template_model base_template_model;
21 public Xcls_rootURL rootURL;
22 public Xcls_view view;
23 public Xcls_database_DBTYPE database_DBTYPE;
24 public Xcls_database_DBNAME database_DBNAME;
25 public Xcls_database_DBUSERNAME database_DBUSERNAME;
26 public Xcls_database_DBPASSWORD database_DBPASSWORD;
27 public Xcls_database_ERROR database_ERROR;
30 public signal void buttonPressed (string btn);
31 public Project.Project project;
34 public Xcls_RooProjectSettings()
37 this.el = new Gtk.Popover( null );
42 this.el.border_width = 0;
44 this.el.position = Gtk.PositionType.RIGHT;
45 var child_0 = new Xcls_Box2( _this );
47 this.el.add ( child_0.el );
50 // user defined functions
51 public void show (Gtk.Widget btn, Project.Project project) {
52 _this.project = project;
53 _this.path.el.label = project.firstPath();
54 // get the active project.
55 var lm = Gtk.SourceLanguageManager.get_default();
57 ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(
59 lm.get_language("html"));
62 //project.runhtml = project.runhtml || '';
63 _this.view.el.get_buffer().set_text(project.runhtml);
66 _this.rootURL.el.set_text( _this.project.rootURL );
68 _this.base_template_model.loadData(_this.project.base_template);
70 var js = _this.project;
71 _this.database_DBTYPE.el.set_text( js.get_string_member("DBTYPE") );
72 _this.database_DBNAME.el.set_text( js.get_string_member("DBNAME") );
73 _this.database_DBUSERNAME.el.set_text( js.get_string_member("DBUSERNAME") );
74 _this.database_DBPASSWORD.el.set_text( js.get_string_member("DBPASSWORD") );
76 //console.log('show all');
77 this.el.set_modal(true);
78 this.el.set_relative_to(btn);
80 this.el.set_position(Gtk.PositionType.RIGHT);
83 print("SHOWALL - POPIP\n");
85 this.el.set_size_request(800,500);
86 this.view.el.grab_focus();
92 var buf = _this.view.el.get_buffer();
95 buf.get_start_iter(out s);
96 buf.get_end_iter(out e);
97 _this.project.runhtml = buf.get_text(s,e,true);
99 _this.project.rootURL = _this.rootURL.el.get_text();
100 _this.project.base_template = _this.base_template.el.get_text();
102 var js = _this.project.json_project_data;
103 js.set_string_member("DBTYPE", _this.database_DBTYPE.el.get_text());
104 js.set_string_member("DBNAME", _this.database_DBNAME.el.get_text());
105 js.set_string_member("DBUSERNAME", _this.database_DBUSERNAME.el.get_text());
106 js.set_string_member("DBPASSWORD", _this.database_DBPASSWORD.el.get_text());
107 // _this.project.set_string_member("DBHOST", _this.DBTYPE.el.get_text());
109 // need to re-init the database
111 _this.project.initRooDatabase();
115 public class Xcls_Box2 : Object
118 private Xcls_RooProjectSettings _this;
124 public Xcls_Box2(Xcls_RooProjectSettings _owner )
127 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
131 // set gobject values
132 this.el.homogeneous = false;
133 this.el.border_width = 5;
134 var child_0 = new Xcls_Notebook3( _this );
136 this.el.pack_start ( child_0.el , true,true,0 );
137 var child_1 = new Xcls_Box30( _this );
139 this.el.pack_end ( child_1.el , false,false,0 );
142 // user defined functions
144 public class Xcls_Notebook3 : Object
146 public Gtk.Notebook el;
147 private Xcls_RooProjectSettings _this;
153 public Xcls_Notebook3(Xcls_RooProjectSettings _owner )
156 this.el = new Gtk.Notebook();
160 // set gobject values
161 var child_0 = new Xcls_label_global( _this );
163 var child_1 = new Xcls_label_database( _this );
165 var child_2 = new Xcls_Box6( _this );
167 this.el.append_page ( child_2.el , _this.label_global.el );
168 var child_3 = new Xcls_Box19( _this );
170 this.el.append_page ( child_3.el , _this.label_database.el );
173 // user defined functions
175 public class Xcls_label_global : Object
178 private Xcls_RooProjectSettings _this;
184 public Xcls_label_global(Xcls_RooProjectSettings _owner )
187 _this.label_global = this;
188 this.el = new Gtk.Label( "Global" );
192 // set gobject values
195 // user defined functions
198 public class Xcls_label_database : Object
201 private Xcls_RooProjectSettings _this;
207 public Xcls_label_database(Xcls_RooProjectSettings _owner )
210 _this.label_database = this;
211 this.el = new Gtk.Label( "Database" );
215 // set gobject values
218 // user defined functions
221 public class Xcls_Box6 : Object
224 private Xcls_RooProjectSettings _this;
230 public Xcls_Box6(Xcls_RooProjectSettings _owner )
233 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
237 // set gobject values
238 this.el.homogeneous = false;
239 var child_0 = new Xcls_path( _this );
241 this.el.pack_start ( child_0.el , false,false,0 );
242 var child_1 = new Xcls_Box8( _this );
244 this.el.pack_start ( child_1.el , false,false,0 );
245 var child_2 = new Xcls_Box13( _this );
247 this.el.pack_start ( child_2.el , false,false,0 );
248 var child_3 = new Xcls_Label16( _this );
250 this.el.pack_start ( child_3.el , false,false,0 );
251 var child_4 = new Xcls_ScrolledWindow17( _this );
253 this.el.pack_start ( child_4.el , true,true,0 );
256 // user defined functions
258 public class Xcls_path : Object
261 private Xcls_RooProjectSettings _this;
267 public Xcls_path(Xcls_RooProjectSettings _owner )
271 this.el = new Gtk.Label( "filename" );
275 // set gobject values
280 // user defined functions
283 public class Xcls_Box8 : Object
286 private Xcls_RooProjectSettings _this;
292 public Xcls_Box8(Xcls_RooProjectSettings _owner )
295 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
299 // set gobject values
300 this.el.homogeneous = false;
301 this.el.expand = false;
302 var child_0 = new Xcls_Label9( _this );
304 this.el.pack_start ( child_0.el , false,false,0 );
305 var child_1 = new Xcls_base_template( _this );
307 this.el.attach ( child_1.el , 1,0,1,1 );
310 // user defined functions
312 public class Xcls_Label9 : Object
315 private Xcls_RooProjectSettings _this;
321 public Xcls_Label9(Xcls_RooProjectSettings _owner )
324 this.el = new Gtk.Label( "HTML template file" );
328 // set gobject values
332 // user defined functions
335 public class Xcls_base_template : Object
337 public Gtk.ComboBox el;
338 private Xcls_RooProjectSettings _this;
344 public Xcls_base_template(Xcls_RooProjectSettings _owner )
347 _this.base_template = this;
348 this.el = new Gtk.ComboBox();
352 // set gobject values
353 var child_0 = new Xcls_base_template_cellrenderer( _this );
355 this.el.pack_start ( child_0.el , true );
356 var child_1 = new Xcls_base_template_model( _this );
358 this.el.set_model ( child_1.el );
362 this.el.add_attribute(_this.base_template_cellrenderer.el , "markup", 1 );
365 this.el.changed.connect( () => {
368 if (this.el.get_active_iter(out iter)) {
370 _this.base_template_model.el.get_value (iter, 0, out vfname);
371 // is_bjs = ((string)vfname) == "bjs";
375 // directory is only available for non-bjs
382 // user defined functions
384 public class Xcls_base_template_cellrenderer : Object
386 public Gtk.CellRendererText el;
387 private Xcls_RooProjectSettings _this;
393 public Xcls_base_template_cellrenderer(Xcls_RooProjectSettings _owner )
396 _this.base_template_cellrenderer = this;
397 this.el = new Gtk.CellRendererText();
401 // set gobject values
404 // user defined functions
407 public class Xcls_base_template_model : Object
409 public Gtk.ListStore el;
410 private Xcls_RooProjectSettings _this;
416 public Xcls_base_template_model(Xcls_RooProjectSettings _owner )
419 _this.base_template_model = this;
420 this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
424 // set gobject values
427 // user defined functions
428 public void loadData (string cur) {
433 /// el.append(out iter);
436 // el.set_value(iter, 0, "");
437 // el.set_value(iter, 1, "aaa - Just add Element - aaa");
440 el.set_value(iter, 0, "roo.builder.html");
441 _this.base_template.el.set_active_iter(iter);
445 el.set_value(iter, 0, "bootstrap.builder.html");
446 if (cur == "bootstrap.builder.html") {
447 _this.base_template.el.set_active_iter(iter);
451 el.set_value(iter, 0, "mailer.builder.html");
453 if (cur == "mailer.builder.html") {
454 _this.base_template.el.set_active_iter(iter);
463 public class Xcls_Box13 : Object
466 private Xcls_RooProjectSettings _this;
472 public Xcls_Box13(Xcls_RooProjectSettings _owner )
475 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
479 // set gobject values
480 this.el.homogeneous = false;
481 this.el.expand = false;
482 var child_0 = new Xcls_Label14( _this );
484 this.el.pack_start ( child_0.el , false,false,0 );
485 var child_1 = new Xcls_rootURL( _this );
487 this.el.add ( child_1.el );
490 // user defined functions
492 public class Xcls_Label14 : Object
495 private Xcls_RooProjectSettings _this;
501 public Xcls_Label14(Xcls_RooProjectSettings _owner )
504 this.el = new Gtk.Label( "root URL" );
508 // set gobject values
512 // user defined functions
515 public class Xcls_rootURL : Object
518 private Xcls_RooProjectSettings _this;
524 public Xcls_rootURL(Xcls_RooProjectSettings _owner )
527 _this.rootURL = this;
528 this.el = new Gtk.Entry();
532 // set gobject values
535 // user defined functions
539 public class Xcls_Label16 : Object
542 private Xcls_RooProjectSettings _this;
548 public Xcls_Label16(Xcls_RooProjectSettings _owner )
551 this.el = new Gtk.Label( "HTML To insert at end of <HEAD>" );
555 // set gobject values
558 // user defined functions
561 public class Xcls_ScrolledWindow17 : Object
563 public Gtk.ScrolledWindow el;
564 private Xcls_RooProjectSettings _this;
570 public Xcls_ScrolledWindow17(Xcls_RooProjectSettings _owner )
573 this.el = new Gtk.ScrolledWindow( null, null );
577 // set gobject values
578 var child_0 = new Xcls_view( _this );
580 this.el.add ( child_0.el );
583 // user defined functions
585 public class Xcls_view : Object
587 public Gtk.SourceView el;
588 private Xcls_RooProjectSettings _this;
594 public Xcls_view(Xcls_RooProjectSettings _owner )
598 this.el = new Gtk.SourceView();
604 var description = Pango.FontDescription.from_string("monospace");
605 description.set_size(9000);
606 this.el.override_font(description);
609 this.el.key_release_event.connect( ( event) =>{
610 if (event.keyval != 115) {
614 if ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {
617 var buf = this.el.get_buffer();
620 buf.get_start_iter(out s);
621 buf.get_end_iter(out e);
622 _this.project.runhtml = buf.get_text(s,e,true);
625 _this.buttonPressed("save");
632 // user defined functions
637 public class Xcls_Box19 : Object
640 private Xcls_RooProjectSettings _this;
646 public Xcls_Box19(Xcls_RooProjectSettings _owner )
649 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
653 // set gobject values
654 this.el.homogeneous = false;
655 var child_0 = new Xcls_Label20( _this );
657 this.el.pack_start ( child_0.el , false,false,0 );
658 var child_1 = new Xcls_database_DBTYPE( _this );
660 this.el.pack_start ( child_1.el , false,false,0 );
661 var child_2 = new Xcls_Label22( _this );
663 this.el.pack_start ( child_2.el , false,false,0 );
664 var child_3 = new Xcls_database_DBNAME( _this );
666 this.el.pack_start ( child_3.el , false,false,0 );
667 var child_4 = new Xcls_Label24( _this );
669 this.el.pack_start ( child_4.el , false,false,0 );
670 var child_5 = new Xcls_database_DBUSERNAME( _this );
672 this.el.pack_start ( child_5.el , false,false,0 );
673 var child_6 = new Xcls_Label26( _this );
675 this.el.pack_start ( child_6.el , false,false,0 );
676 var child_7 = new Xcls_database_DBPASSWORD( _this );
678 this.el.pack_start ( child_7.el , false,false,0 );
679 var child_8 = new Xcls_Button28( _this );
681 this.el.pack_start ( child_8.el , false,false,0 );
682 var child_9 = new Xcls_database_ERROR( _this );
684 this.el.pack_start ( child_9.el , false,false,0 );
687 // user defined functions
689 public class Xcls_Label20 : Object
692 private Xcls_RooProjectSettings _this;
698 public Xcls_Label20(Xcls_RooProjectSettings _owner )
701 this.el = new Gtk.Label( "Type (eg. MySQL or PostgreSQL)" );
705 // set gobject values
709 // user defined functions
712 public class Xcls_database_DBTYPE : Object
715 private Xcls_RooProjectSettings _this;
721 public Xcls_database_DBTYPE(Xcls_RooProjectSettings _owner )
724 _this.database_DBTYPE = this;
725 this.el = new Gtk.Entry();
729 // set gobject values
732 this.el.key_press_event.connect( (ev) => {
734 if (ev.keyval == Gdk.Key.Tab) {
735 _this.database_DBNAME.el.grab_focus();
744 // user defined functions
747 public class Xcls_Label22 : Object
750 private Xcls_RooProjectSettings _this;
756 public Xcls_Label22(Xcls_RooProjectSettings _owner )
759 this.el = new Gtk.Label( "Name" );
763 // set gobject values
767 // user defined functions
770 public class Xcls_database_DBNAME : Object
773 private Xcls_RooProjectSettings _this;
779 public Xcls_database_DBNAME(Xcls_RooProjectSettings _owner )
782 _this.database_DBNAME = this;
783 this.el = new Gtk.Entry();
787 // set gobject values
790 this.el.key_press_event.connect( (ev) => {
792 if (ev.keyval == Gdk.Key.Tab) {
793 _this.database_DBUSERNAME.el.grab_focus();
802 // user defined functions
805 public class Xcls_Label24 : Object
808 private Xcls_RooProjectSettings _this;
814 public Xcls_Label24(Xcls_RooProjectSettings _owner )
817 this.el = new Gtk.Label( "Username" );
821 // set gobject values
825 // user defined functions
828 public class Xcls_database_DBUSERNAME : Object
831 private Xcls_RooProjectSettings _this;
837 public Xcls_database_DBUSERNAME(Xcls_RooProjectSettings _owner )
840 _this.database_DBUSERNAME = this;
841 this.el = new Gtk.Entry();
845 // set gobject values
848 this.el.key_press_event.connect( (ev) => {
850 if (ev.keyval == Gdk.Key.Tab) {
851 _this.database_DBPASSWORD.el.grab_focus();
860 // user defined functions
863 public class Xcls_Label26 : Object
866 private Xcls_RooProjectSettings _this;
872 public Xcls_Label26(Xcls_RooProjectSettings _owner )
875 this.el = new Gtk.Label( "Password" );
879 // set gobject values
883 // user defined functions
886 public class Xcls_database_DBPASSWORD : Object
889 private Xcls_RooProjectSettings _this;
895 public Xcls_database_DBPASSWORD(Xcls_RooProjectSettings _owner )
898 _this.database_DBPASSWORD = this;
899 this.el = new Gtk.Entry();
903 // set gobject values
906 // user defined functions
909 public class Xcls_Button28 : Object
911 public Gtk.Button el;
912 private Xcls_RooProjectSettings _this;
918 public Xcls_Button28(Xcls_RooProjectSettings _owner )
921 this.el = new Gtk.Button();
925 // set gobject values
926 this.el.label = "Check Connection";
929 this.el.clicked.connect( () => {
932 _this.database_ERROR.el.label = "";
935 // assumes localhost...
936 cnc = Gda.Connection.open_from_string (
937 _this.database_DBTYPE.el.get_text(),
938 "DB_NAME=" + _this.database_DBNAME.el.get_text(),
939 "USERNAME=" + _this.database_DBUSERNAME.el.get_text() +
940 ";PASSWORD=" + _this.database_DBPASSWORD.el.get_text(),
941 Gda.ConnectionOptions.NONE
943 //} catch (Gda.ConnectionError ce) {
944 // _this.database_ERROR.el.label = ce.message;
945 } catch(Gda.ConnectionError ue) {
946 _this.database_ERROR.el.label = ue.message;
948 } catch(Gda.ConfigError ue) {
949 _this.database_ERROR.el.label = ue.message;
952 _this.database_ERROR.el.label = "Connection Succeeded";
957 // user defined functions
960 public class Xcls_database_ERROR : Object
963 private Xcls_RooProjectSettings _this;
969 public Xcls_database_ERROR(Xcls_RooProjectSettings _owner )
972 _this.database_ERROR = this;
973 this.el = new Gtk.Label( " " );
977 // set gobject values
982 // user defined functions
987 public class Xcls_Box30 : Object
990 private Xcls_RooProjectSettings _this;
996 public Xcls_Box30(Xcls_RooProjectSettings _owner )
999 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
1003 // set gobject values
1004 this.el.homogeneous = true;
1005 this.el.expand = false;
1006 this.el.vexpand = false;
1007 var child_0 = new Xcls_Button31( _this );
1009 this.el.add ( child_0.el );
1010 var child_1 = new Xcls_Button32( _this );
1012 this.el.add ( child_1.el );
1015 // user defined functions
1017 public class Xcls_Button31 : Object
1019 public Gtk.Button el;
1020 private Xcls_RooProjectSettings _this;
1026 public Xcls_Button31(Xcls_RooProjectSettings _owner )
1029 this.el = new Gtk.Button();
1033 // set gobject values
1034 this.el.label = "Apply";
1037 this.el.button_press_event.connect( () => {
1040 _this.buttonPressed("apply");
1045 // user defined functions
1048 public class Xcls_Button32 : Object
1050 public Gtk.Button el;
1051 private Xcls_RooProjectSettings _this;
1057 public Xcls_Button32(Xcls_RooProjectSettings _owner )
1060 this.el = new Gtk.Button();
1064 // set gobject values
1065 this.el.label = "Save";
1068 this.el.button_press_event.connect( () => {
1071 _this.buttonPressed("save");
1076 // user defined functions