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(
58 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 // set by event changed...
101 //_this.project.base_template = _this.base_template.el.get_text();
103 var js = _this.project.json_project_data;
104 js.set_string_member("DBTYPE", _this.database_DBTYPE.el.get_text());
105 js.set_string_member("DBNAME", _this.database_DBNAME.el.get_text());
106 js.set_string_member("DBUSERNAME", _this.database_DBUSERNAME.el.get_text());
107 js.set_string_member("DBPASSWORD", _this.database_DBPASSWORD.el.get_text());
108 // _this.project.set_string_member("DBHOST", _this.DBTYPE.el.get_text());
110 // need to re-init the database
112 _this.project.initRooDatabase();
116 public class Xcls_Box2 : Object
119 private Xcls_RooProjectSettings _this;
125 public Xcls_Box2(Xcls_RooProjectSettings _owner )
128 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
132 // set gobject values
133 this.el.homogeneous = false;
134 this.el.border_width = 5;
135 var child_0 = new Xcls_Notebook3( _this );
137 this.el.pack_start ( child_0.el , true,true,0 );
138 var child_1 = new Xcls_Box30( _this );
140 this.el.pack_end ( child_1.el , false,false,0 );
143 // user defined functions
145 public class Xcls_Notebook3 : Object
147 public Gtk.Notebook el;
148 private Xcls_RooProjectSettings _this;
154 public Xcls_Notebook3(Xcls_RooProjectSettings _owner )
157 this.el = new Gtk.Notebook();
161 // set gobject values
162 var child_0 = new Xcls_label_global( _this );
164 var child_1 = new Xcls_label_database( _this );
166 var child_2 = new Xcls_Box6( _this );
168 this.el.append_page ( child_2.el , _this.label_global.el );
169 var child_3 = new Xcls_Box19( _this );
171 this.el.append_page ( child_3.el , _this.label_database.el );
174 // user defined functions
176 public class Xcls_label_global : Object
179 private Xcls_RooProjectSettings _this;
185 public Xcls_label_global(Xcls_RooProjectSettings _owner )
188 _this.label_global = this;
189 this.el = new Gtk.Label( "Global" );
193 // set gobject values
196 // user defined functions
199 public class Xcls_label_database : Object
202 private Xcls_RooProjectSettings _this;
208 public Xcls_label_database(Xcls_RooProjectSettings _owner )
211 _this.label_database = this;
212 this.el = new Gtk.Label( "Database" );
216 // set gobject values
219 // user defined functions
222 public class Xcls_Box6 : Object
225 private Xcls_RooProjectSettings _this;
231 public Xcls_Box6(Xcls_RooProjectSettings _owner )
234 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
238 // set gobject values
239 this.el.homogeneous = false;
240 var child_0 = new Xcls_path( _this );
242 this.el.pack_start ( child_0.el , false,false,0 );
243 var child_1 = new Xcls_Box8( _this );
245 this.el.pack_start ( child_1.el , false,false,0 );
246 var child_2 = new Xcls_Box13( _this );
248 this.el.pack_start ( child_2.el , false,false,0 );
249 var child_3 = new Xcls_Label16( _this );
251 this.el.pack_start ( child_3.el , false,false,0 );
252 var child_4 = new Xcls_ScrolledWindow17( _this );
254 this.el.pack_start ( child_4.el , true,true,0 );
257 // user defined functions
259 public class Xcls_path : Object
262 private Xcls_RooProjectSettings _this;
268 public Xcls_path(Xcls_RooProjectSettings _owner )
272 this.el = new Gtk.Label( "filename" );
276 // set gobject values
281 // user defined functions
284 public class Xcls_Box8 : Object
287 private Xcls_RooProjectSettings _this;
293 public Xcls_Box8(Xcls_RooProjectSettings _owner )
296 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
300 // set gobject values
301 this.el.homogeneous = false;
302 this.el.expand = false;
303 var child_0 = new Xcls_Label9( _this );
305 this.el.pack_start ( child_0.el , false,false,0 );
306 var child_1 = new Xcls_base_template( _this );
308 this.el.add ( child_1.el );
311 // user defined functions
313 public class Xcls_Label9 : Object
316 private Xcls_RooProjectSettings _this;
322 public Xcls_Label9(Xcls_RooProjectSettings _owner )
325 this.el = new Gtk.Label( "HTML template file" );
329 // set gobject values
333 // user defined functions
336 public class Xcls_base_template : Object
338 public Gtk.ComboBox el;
339 private Xcls_RooProjectSettings _this;
345 public Xcls_base_template(Xcls_RooProjectSettings _owner )
348 _this.base_template = this;
349 this.el = new Gtk.ComboBox();
353 // set gobject values
354 var child_0 = new Xcls_base_template_cellrenderer( _this );
356 this.el.pack_start ( child_0.el , true );
357 var child_1 = new Xcls_base_template_model( _this );
359 this.el.set_model ( child_1.el );
363 this.el.add_attribute(_this.base_template_cellrenderer.el , "markup", 0 );
366 this.el.changed.connect( () => {
369 if (this.el.get_active_iter(out iter)) {
371 _this.base_template_model.el.get_value (iter, 0, out vfname);
372 _this.project.base_template = ((string)vfname) ;
373 // is_bjs = ((string)vfname) == "bjs";
377 // directory is only available for non-bjs
384 // user defined functions
386 public class Xcls_base_template_cellrenderer : Object
388 public Gtk.CellRendererText el;
389 private Xcls_RooProjectSettings _this;
395 public Xcls_base_template_cellrenderer(Xcls_RooProjectSettings _owner )
398 _this.base_template_cellrenderer = this;
399 this.el = new Gtk.CellRendererText();
403 // set gobject values
406 // user defined functions
409 public class Xcls_base_template_model : Object
411 public Gtk.ListStore el;
412 private Xcls_RooProjectSettings _this;
418 public Xcls_base_template_model(Xcls_RooProjectSettings _owner )
421 _this.base_template_model = this;
422 this.el = new Gtk.ListStore( 1, typeof(string) );
426 // set gobject values
429 // user defined functions
430 public void loadData (string cur) {
435 /// el.append(out iter);
439 el.set_value(iter, 0, "roo.builder.html");
440 _this.base_template.el.set_active_iter(iter);
441 if (cur == "roo.builder.html") {
444 _this.base_template.el.set_active_iter(iter);
448 el.set_value(iter, 0, "bootstrap.builder.html");
449 print("CUR = %s\n", cur);
450 if (cur == "bootstrap.builder.html") {
451 _this.base_template.el.set_active_iter(iter);
455 el.set_value(iter, 0, "mailer.builder.html");
457 if (cur == "mailer.builder.html") {
458 _this.base_template.el.set_active_iter(iter);
467 public class Xcls_Box13 : Object
470 private Xcls_RooProjectSettings _this;
476 public Xcls_Box13(Xcls_RooProjectSettings _owner )
479 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
483 // set gobject values
484 this.el.homogeneous = false;
485 this.el.expand = false;
486 var child_0 = new Xcls_Label14( _this );
488 this.el.pack_start ( child_0.el , false,false,0 );
489 var child_1 = new Xcls_rootURL( _this );
491 this.el.add ( child_1.el );
494 // user defined functions
496 public class Xcls_Label14 : Object
499 private Xcls_RooProjectSettings _this;
505 public Xcls_Label14(Xcls_RooProjectSettings _owner )
508 this.el = new Gtk.Label( "root URL" );
512 // set gobject values
516 // user defined functions
519 public class Xcls_rootURL : Object
522 private Xcls_RooProjectSettings _this;
528 public Xcls_rootURL(Xcls_RooProjectSettings _owner )
531 _this.rootURL = this;
532 this.el = new Gtk.Entry();
536 // set gobject values
539 // user defined functions
543 public class Xcls_Label16 : Object
546 private Xcls_RooProjectSettings _this;
552 public Xcls_Label16(Xcls_RooProjectSettings _owner )
555 this.el = new Gtk.Label( "HTML To insert at end of <HEAD>" );
559 // set gobject values
562 // user defined functions
565 public class Xcls_ScrolledWindow17 : Object
567 public Gtk.ScrolledWindow el;
568 private Xcls_RooProjectSettings _this;
574 public Xcls_ScrolledWindow17(Xcls_RooProjectSettings _owner )
577 this.el = new Gtk.ScrolledWindow( null, null );
581 // set gobject values
582 var child_0 = new Xcls_view( _this );
584 this.el.add ( child_0.el );
587 // user defined functions
589 public class Xcls_view : Object
591 public Gtk.SourceView el;
592 private Xcls_RooProjectSettings _this;
598 public Xcls_view(Xcls_RooProjectSettings _owner )
602 this.el = new Gtk.SourceView();
608 var description = Pango.FontDescription.from_string("monospace");
609 description.set_size(9000);
610 this.el.override_font(description);
613 this.el.key_release_event.connect( ( event) =>{
614 if (event.keyval != 115) {
618 if ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {
621 var buf = this.el.get_buffer();
624 buf.get_start_iter(out s);
625 buf.get_end_iter(out e);
626 _this.project.runhtml = buf.get_text(s,e,true);
629 _this.buttonPressed("save");
636 // user defined functions
641 public class Xcls_Box19 : Object
644 private Xcls_RooProjectSettings _this;
650 public Xcls_Box19(Xcls_RooProjectSettings _owner )
653 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
657 // set gobject values
658 this.el.homogeneous = false;
659 var child_0 = new Xcls_Label20( _this );
661 this.el.pack_start ( child_0.el , false,false,0 );
662 var child_1 = new Xcls_database_DBTYPE( _this );
664 this.el.pack_start ( child_1.el , false,false,0 );
665 var child_2 = new Xcls_Label22( _this );
667 this.el.pack_start ( child_2.el , false,false,0 );
668 var child_3 = new Xcls_database_DBNAME( _this );
670 this.el.pack_start ( child_3.el , false,false,0 );
671 var child_4 = new Xcls_Label24( _this );
673 this.el.pack_start ( child_4.el , false,false,0 );
674 var child_5 = new Xcls_database_DBUSERNAME( _this );
676 this.el.pack_start ( child_5.el , false,false,0 );
677 var child_6 = new Xcls_Label26( _this );
679 this.el.pack_start ( child_6.el , false,false,0 );
680 var child_7 = new Xcls_database_DBPASSWORD( _this );
682 this.el.pack_start ( child_7.el , false,false,0 );
683 var child_8 = new Xcls_Button28( _this );
685 this.el.pack_start ( child_8.el , false,false,0 );
686 var child_9 = new Xcls_database_ERROR( _this );
688 this.el.pack_start ( child_9.el , false,false,0 );
691 // user defined functions
693 public class Xcls_Label20 : Object
696 private Xcls_RooProjectSettings _this;
702 public Xcls_Label20(Xcls_RooProjectSettings _owner )
705 this.el = new Gtk.Label( "Type (eg. MySQL or PostgreSQL)" );
709 // set gobject values
713 // user defined functions
716 public class Xcls_database_DBTYPE : Object
719 private Xcls_RooProjectSettings _this;
725 public Xcls_database_DBTYPE(Xcls_RooProjectSettings _owner )
728 _this.database_DBTYPE = this;
729 this.el = new Gtk.Entry();
733 // set gobject values
736 this.el.key_press_event.connect( (ev) => {
738 if (ev.keyval == Gdk.Key.Tab) {
739 _this.database_DBNAME.el.grab_focus();
748 // user defined functions
751 public class Xcls_Label22 : Object
754 private Xcls_RooProjectSettings _this;
760 public Xcls_Label22(Xcls_RooProjectSettings _owner )
763 this.el = new Gtk.Label( "Name" );
767 // set gobject values
771 // user defined functions
774 public class Xcls_database_DBNAME : Object
777 private Xcls_RooProjectSettings _this;
783 public Xcls_database_DBNAME(Xcls_RooProjectSettings _owner )
786 _this.database_DBNAME = this;
787 this.el = new Gtk.Entry();
791 // set gobject values
794 this.el.key_press_event.connect( (ev) => {
796 if (ev.keyval == Gdk.Key.Tab) {
797 _this.database_DBUSERNAME.el.grab_focus();
806 // user defined functions
809 public class Xcls_Label24 : Object
812 private Xcls_RooProjectSettings _this;
818 public Xcls_Label24(Xcls_RooProjectSettings _owner )
821 this.el = new Gtk.Label( "Username" );
825 // set gobject values
829 // user defined functions
832 public class Xcls_database_DBUSERNAME : Object
835 private Xcls_RooProjectSettings _this;
841 public Xcls_database_DBUSERNAME(Xcls_RooProjectSettings _owner )
844 _this.database_DBUSERNAME = this;
845 this.el = new Gtk.Entry();
849 // set gobject values
852 this.el.key_press_event.connect( (ev) => {
854 if (ev.keyval == Gdk.Key.Tab) {
855 _this.database_DBPASSWORD.el.grab_focus();
864 // user defined functions
867 public class Xcls_Label26 : Object
870 private Xcls_RooProjectSettings _this;
876 public Xcls_Label26(Xcls_RooProjectSettings _owner )
879 this.el = new Gtk.Label( "Password" );
883 // set gobject values
887 // user defined functions
890 public class Xcls_database_DBPASSWORD : Object
893 private Xcls_RooProjectSettings _this;
899 public Xcls_database_DBPASSWORD(Xcls_RooProjectSettings _owner )
902 _this.database_DBPASSWORD = this;
903 this.el = new Gtk.Entry();
907 // set gobject values
910 // user defined functions
913 public class Xcls_Button28 : Object
915 public Gtk.Button el;
916 private Xcls_RooProjectSettings _this;
922 public Xcls_Button28(Xcls_RooProjectSettings _owner )
925 this.el = new Gtk.Button();
929 // set gobject values
930 this.el.label = "Check Connection";
933 this.el.clicked.connect( () => {
936 _this.database_ERROR.el.label = "";
939 // assumes localhost...
940 cnc = Gda.Connection.open_from_string (
941 _this.database_DBTYPE.el.get_text(),
942 "DB_NAME=" + _this.database_DBNAME.el.get_text(),
943 "USERNAME=" + _this.database_DBUSERNAME.el.get_text() +
944 ";PASSWORD=" + _this.database_DBPASSWORD.el.get_text(),
945 Gda.ConnectionOptions.NONE
947 //} catch (Gda.ConnectionError ce) {
948 // _this.database_ERROR.el.label = ce.message;
949 } catch(Gda.ConnectionError ue) {
950 _this.database_ERROR.el.label = ue.message;
952 } catch(Gda.ConfigError ue) {
953 _this.database_ERROR.el.label = ue.message;
956 _this.database_ERROR.el.label = "Connection Succeeded";
961 // user defined functions
964 public class Xcls_database_ERROR : Object
967 private Xcls_RooProjectSettings _this;
973 public Xcls_database_ERROR(Xcls_RooProjectSettings _owner )
976 _this.database_ERROR = this;
977 this.el = new Gtk.Label( " " );
981 // set gobject values
986 // user defined functions
991 public class Xcls_Box30 : Object
994 private Xcls_RooProjectSettings _this;
1000 public Xcls_Box30(Xcls_RooProjectSettings _owner )
1003 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
1007 // set gobject values
1008 this.el.homogeneous = true;
1009 this.el.expand = false;
1010 this.el.vexpand = false;
1011 var child_0 = new Xcls_Button31( _this );
1013 this.el.add ( child_0.el );
1014 var child_1 = new Xcls_Button32( _this );
1016 this.el.add ( child_1.el );
1019 // user defined functions
1021 public class Xcls_Button31 : Object
1023 public Gtk.Button el;
1024 private Xcls_RooProjectSettings _this;
1030 public Xcls_Button31(Xcls_RooProjectSettings _owner )
1033 this.el = new Gtk.Button();
1037 // set gobject values
1038 this.el.label = "Apply";
1041 this.el.button_press_event.connect( () => {
1044 _this.buttonPressed("apply");
1049 // user defined functions
1052 public class Xcls_Button32 : Object
1054 public Gtk.Button el;
1055 private Xcls_RooProjectSettings _this;
1061 public Xcls_Button32(Xcls_RooProjectSettings _owner )
1064 this.el = new Gtk.Button();
1068 // set gobject values
1069 this.el.label = "Save";
1072 this.el.button_press_event.connect( () => {
1075 _this.buttonPressed("save");
1080 // user defined functions