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 );
67 _this.base_template.el.set_text(_this.project.base_template);
68 var js = _this.project;
69 _this.database_DBTYPE.el.set_text( js.get_string_member("DBTYPE") );
70 _this.database_DBNAME.el.set_text( js.get_string_member("DBNAME") );
71 _this.database_DBUSERNAME.el.set_text( js.get_string_member("DBUSERNAME") );
72 _this.database_DBPASSWORD.el.set_text( js.get_string_member("DBPASSWORD") );
74 //console.log('show all');
75 this.el.set_modal(true);
76 this.el.set_relative_to(btn);
78 this.el.set_position(Gtk.PositionType.RIGHT);
81 print("SHOWALL - POPIP\n");
83 this.el.set_size_request(800,500);
84 this.view.el.grab_focus();
90 var buf = _this.view.el.get_buffer();
93 buf.get_start_iter(out s);
94 buf.get_end_iter(out e);
95 _this.project.runhtml = buf.get_text(s,e,true);
97 _this.project.rootURL = _this.rootURL.el.get_text();
98 _this.project.base_template = _this.base_template.el.get_text();
100 var js = _this.project.json_project_data;
101 js.set_string_member("DBTYPE", _this.database_DBTYPE.el.get_text());
102 js.set_string_member("DBNAME", _this.database_DBNAME.el.get_text());
103 js.set_string_member("DBUSERNAME", _this.database_DBUSERNAME.el.get_text());
104 js.set_string_member("DBPASSWORD", _this.database_DBPASSWORD.el.get_text());
105 // _this.project.set_string_member("DBHOST", _this.DBTYPE.el.get_text());
107 // need to re-init the database
109 _this.project.initRooDatabase();
113 public class Xcls_Box2 : Object
116 private Xcls_RooProjectSettings _this;
122 public Xcls_Box2(Xcls_RooProjectSettings _owner )
125 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
129 // set gobject values
130 this.el.homogeneous = false;
131 this.el.border_width = 5;
132 var child_0 = new Xcls_Notebook3( _this );
134 this.el.pack_start ( child_0.el , true,true,0 );
135 var child_1 = new Xcls_Box30( _this );
137 this.el.pack_end ( child_1.el , false,false,0 );
140 // user defined functions
142 public class Xcls_Notebook3 : Object
144 public Gtk.Notebook el;
145 private Xcls_RooProjectSettings _this;
151 public Xcls_Notebook3(Xcls_RooProjectSettings _owner )
154 this.el = new Gtk.Notebook();
158 // set gobject values
159 var child_0 = new Xcls_label_global( _this );
161 var child_1 = new Xcls_label_database( _this );
163 var child_2 = new Xcls_Box6( _this );
165 this.el.append_page ( child_2.el , _this.label_global.el );
166 var child_3 = new Xcls_Box19( _this );
168 this.el.append_page ( child_3.el , _this.label_database.el );
171 // user defined functions
173 public class Xcls_label_global : Object
176 private Xcls_RooProjectSettings _this;
182 public Xcls_label_global(Xcls_RooProjectSettings _owner )
185 _this.label_global = this;
186 this.el = new Gtk.Label( "Global" );
190 // set gobject values
193 // user defined functions
196 public class Xcls_label_database : Object
199 private Xcls_RooProjectSettings _this;
205 public Xcls_label_database(Xcls_RooProjectSettings _owner )
208 _this.label_database = this;
209 this.el = new Gtk.Label( "Database" );
213 // set gobject values
216 // user defined functions
219 public class Xcls_Box6 : Object
222 private Xcls_RooProjectSettings _this;
228 public Xcls_Box6(Xcls_RooProjectSettings _owner )
231 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
235 // set gobject values
236 this.el.homogeneous = false;
237 var child_0 = new Xcls_path( _this );
239 this.el.pack_start ( child_0.el , false,false,0 );
240 var child_1 = new Xcls_Box8( _this );
242 this.el.pack_start ( child_1.el , false,false,0 );
243 var child_2 = new Xcls_Box13( _this );
245 this.el.pack_start ( child_2.el , false,false,0 );
246 var child_3 = new Xcls_Label16( _this );
248 this.el.pack_start ( child_3.el , false,false,0 );
249 var child_4 = new Xcls_ScrolledWindow17( _this );
251 this.el.pack_start ( child_4.el , true,true,0 );
254 // user defined functions
256 public class Xcls_path : Object
259 private Xcls_RooProjectSettings _this;
265 public Xcls_path(Xcls_RooProjectSettings _owner )
269 this.el = new Gtk.Label( "filename" );
273 // set gobject values
278 // user defined functions
281 public class Xcls_Box8 : Object
284 private Xcls_RooProjectSettings _this;
290 public Xcls_Box8(Xcls_RooProjectSettings _owner )
293 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
297 // set gobject values
298 this.el.homogeneous = false;
299 this.el.expand = false;
300 var child_0 = new Xcls_Label9( _this );
302 this.el.pack_start ( child_0.el , false,false,0 );
303 var child_1 = new Xcls_base_template( _this );
305 this.el.attach ( child_1.el , 1,0,1,1 );
308 // user defined functions
310 public class Xcls_Label9 : Object
313 private Xcls_RooProjectSettings _this;
319 public Xcls_Label9(Xcls_RooProjectSettings _owner )
322 this.el = new Gtk.Label( "HTML template file" );
326 // set gobject values
330 // user defined functions
333 public class Xcls_base_template : Object
335 public Gtk.ComboBox el;
336 private Xcls_RooProjectSettings _this;
342 public Xcls_base_template(Xcls_RooProjectSettings _owner )
345 _this.base_template = this;
346 this.el = new Gtk.ComboBox();
350 // set gobject values
351 var child_0 = new Xcls_base_template_cellrenderer( _this );
353 this.el.pack_start ( child_0.el , true );
354 var child_1 = new Xcls_base_template_model( _this );
356 this.el.set_model ( child_1.el );
360 this.el.add_attribute(_this.base_template_cellrenderer.el , "markup", 1 );
363 this.el.changed.connect( () => {
366 if (this.el.get_active_iter(out iter)) {
368 _this.base_template_model.el.get_value (iter, 0, out vfname);
369 // is_bjs = ((string)vfname) == "bjs";
373 // directory is only available for non-bjs
380 // user defined functions
382 public class Xcls_base_template_cellrenderer : Object
384 public Gtk.CellRendererText el;
385 private Xcls_RooProjectSettings _this;
391 public Xcls_base_template_cellrenderer(Xcls_RooProjectSettings _owner )
394 _this.base_template_cellrenderer = this;
395 this.el = new Gtk.CellRendererText();
399 // set gobject values
402 // user defined functions
405 public class Xcls_base_template_model : Object
407 public Gtk.ListStore el;
408 private Xcls_RooProjectSettings _this;
414 public Xcls_base_template_model(Xcls_RooProjectSettings _owner )
417 _this.base_template_model = this;
418 this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
422 // set gobject values
425 // user defined functions
426 public void loadData (string cur) {
431 /// el.append(out iter);
434 // el.set_value(iter, 0, "");
435 // el.set_value(iter, 1, "aaa - Just add Element - aaa");
438 el.set_value(iter, 0, "roo.builder.html");
439 _this.filetype.el.set_active_iter(iter);
443 el.set_value(iter, 0, "bootstrap.builder.html");
444 if (cur == "bootstrap.builder.html") {
445 _this.base_template.el.set_active_iter(iter);
449 el.set_value(iter, 0, "mailer.builder.html");
451 if (cur == "mailer.builder.html") {
452 _this.base_template.el.set_active_iter(iter);
461 public class Xcls_Box13 : Object
464 private Xcls_RooProjectSettings _this;
470 public Xcls_Box13(Xcls_RooProjectSettings _owner )
473 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
477 // set gobject values
478 this.el.homogeneous = false;
479 this.el.expand = false;
480 var child_0 = new Xcls_Label14( _this );
482 this.el.pack_start ( child_0.el , false,false,0 );
483 var child_1 = new Xcls_rootURL( _this );
485 this.el.add ( child_1.el );
488 // user defined functions
490 public class Xcls_Label14 : Object
493 private Xcls_RooProjectSettings _this;
499 public Xcls_Label14(Xcls_RooProjectSettings _owner )
502 this.el = new Gtk.Label( "root URL" );
506 // set gobject values
510 // user defined functions
513 public class Xcls_rootURL : Object
516 private Xcls_RooProjectSettings _this;
522 public Xcls_rootURL(Xcls_RooProjectSettings _owner )
525 _this.rootURL = this;
526 this.el = new Gtk.Entry();
530 // set gobject values
533 // user defined functions
537 public class Xcls_Label16 : Object
540 private Xcls_RooProjectSettings _this;
546 public Xcls_Label16(Xcls_RooProjectSettings _owner )
549 this.el = new Gtk.Label( "HTML To insert at end of <HEAD>" );
553 // set gobject values
556 // user defined functions
559 public class Xcls_ScrolledWindow17 : Object
561 public Gtk.ScrolledWindow el;
562 private Xcls_RooProjectSettings _this;
568 public Xcls_ScrolledWindow17(Xcls_RooProjectSettings _owner )
571 this.el = new Gtk.ScrolledWindow( null, null );
575 // set gobject values
576 var child_0 = new Xcls_view( _this );
578 this.el.add ( child_0.el );
581 // user defined functions
583 public class Xcls_view : Object
585 public Gtk.SourceView el;
586 private Xcls_RooProjectSettings _this;
592 public Xcls_view(Xcls_RooProjectSettings _owner )
596 this.el = new Gtk.SourceView();
602 var description = Pango.FontDescription.from_string("monospace");
603 description.set_size(9000);
604 this.el.override_font(description);
607 this.el.key_release_event.connect( ( event) =>{
608 if (event.keyval != 115) {
612 if ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {
615 var buf = this.el.get_buffer();
618 buf.get_start_iter(out s);
619 buf.get_end_iter(out e);
620 _this.project.runhtml = buf.get_text(s,e,true);
623 _this.buttonPressed("save");
630 // user defined functions
635 public class Xcls_Box19 : Object
638 private Xcls_RooProjectSettings _this;
644 public Xcls_Box19(Xcls_RooProjectSettings _owner )
647 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
651 // set gobject values
652 this.el.homogeneous = false;
653 var child_0 = new Xcls_Label20( _this );
655 this.el.pack_start ( child_0.el , false,false,0 );
656 var child_1 = new Xcls_database_DBTYPE( _this );
658 this.el.pack_start ( child_1.el , false,false,0 );
659 var child_2 = new Xcls_Label22( _this );
661 this.el.pack_start ( child_2.el , false,false,0 );
662 var child_3 = new Xcls_database_DBNAME( _this );
664 this.el.pack_start ( child_3.el , false,false,0 );
665 var child_4 = new Xcls_Label24( _this );
667 this.el.pack_start ( child_4.el , false,false,0 );
668 var child_5 = new Xcls_database_DBUSERNAME( _this );
670 this.el.pack_start ( child_5.el , false,false,0 );
671 var child_6 = new Xcls_Label26( _this );
673 this.el.pack_start ( child_6.el , false,false,0 );
674 var child_7 = new Xcls_database_DBPASSWORD( _this );
676 this.el.pack_start ( child_7.el , false,false,0 );
677 var child_8 = new Xcls_Button28( _this );
679 this.el.pack_start ( child_8.el , false,false,0 );
680 var child_9 = new Xcls_database_ERROR( _this );
682 this.el.pack_start ( child_9.el , false,false,0 );
685 // user defined functions
687 public class Xcls_Label20 : Object
690 private Xcls_RooProjectSettings _this;
696 public Xcls_Label20(Xcls_RooProjectSettings _owner )
699 this.el = new Gtk.Label( "Type (eg. MySQL or PostgreSQL)" );
703 // set gobject values
707 // user defined functions
710 public class Xcls_database_DBTYPE : Object
713 private Xcls_RooProjectSettings _this;
719 public Xcls_database_DBTYPE(Xcls_RooProjectSettings _owner )
722 _this.database_DBTYPE = this;
723 this.el = new Gtk.Entry();
727 // set gobject values
730 this.el.key_press_event.connect( (ev) => {
732 if (ev.keyval == Gdk.Key.Tab) {
733 _this.database_DBNAME.el.grab_focus();
742 // user defined functions
745 public class Xcls_Label22 : Object
748 private Xcls_RooProjectSettings _this;
754 public Xcls_Label22(Xcls_RooProjectSettings _owner )
757 this.el = new Gtk.Label( "Name" );
761 // set gobject values
765 // user defined functions
768 public class Xcls_database_DBNAME : Object
771 private Xcls_RooProjectSettings _this;
777 public Xcls_database_DBNAME(Xcls_RooProjectSettings _owner )
780 _this.database_DBNAME = this;
781 this.el = new Gtk.Entry();
785 // set gobject values
788 this.el.key_press_event.connect( (ev) => {
790 if (ev.keyval == Gdk.Key.Tab) {
791 _this.database_DBUSERNAME.el.grab_focus();
800 // user defined functions
803 public class Xcls_Label24 : Object
806 private Xcls_RooProjectSettings _this;
812 public Xcls_Label24(Xcls_RooProjectSettings _owner )
815 this.el = new Gtk.Label( "Username" );
819 // set gobject values
823 // user defined functions
826 public class Xcls_database_DBUSERNAME : Object
829 private Xcls_RooProjectSettings _this;
835 public Xcls_database_DBUSERNAME(Xcls_RooProjectSettings _owner )
838 _this.database_DBUSERNAME = this;
839 this.el = new Gtk.Entry();
843 // set gobject values
846 this.el.key_press_event.connect( (ev) => {
848 if (ev.keyval == Gdk.Key.Tab) {
849 _this.database_DBPASSWORD.el.grab_focus();
858 // user defined functions
861 public class Xcls_Label26 : Object
864 private Xcls_RooProjectSettings _this;
870 public Xcls_Label26(Xcls_RooProjectSettings _owner )
873 this.el = new Gtk.Label( "Password" );
877 // set gobject values
881 // user defined functions
884 public class Xcls_database_DBPASSWORD : Object
887 private Xcls_RooProjectSettings _this;
893 public Xcls_database_DBPASSWORD(Xcls_RooProjectSettings _owner )
896 _this.database_DBPASSWORD = this;
897 this.el = new Gtk.Entry();
901 // set gobject values
904 // user defined functions
907 public class Xcls_Button28 : Object
909 public Gtk.Button el;
910 private Xcls_RooProjectSettings _this;
916 public Xcls_Button28(Xcls_RooProjectSettings _owner )
919 this.el = new Gtk.Button();
923 // set gobject values
924 this.el.label = "Check Connection";
927 this.el.clicked.connect( () => {
930 _this.database_ERROR.el.label = "";
933 // assumes localhost...
934 cnc = Gda.Connection.open_from_string (
935 _this.database_DBTYPE.el.get_text(),
936 "DB_NAME=" + _this.database_DBNAME.el.get_text(),
937 "USERNAME=" + _this.database_DBUSERNAME.el.get_text() +
938 ";PASSWORD=" + _this.database_DBPASSWORD.el.get_text(),
939 Gda.ConnectionOptions.NONE
941 //} catch (Gda.ConnectionError ce) {
942 // _this.database_ERROR.el.label = ce.message;
943 } catch(Gda.ConnectionError ue) {
944 _this.database_ERROR.el.label = ue.message;
946 } catch(Gda.ConfigError ue) {
947 _this.database_ERROR.el.label = ue.message;
950 _this.database_ERROR.el.label = "Connection Succeeded";
955 // user defined functions
958 public class Xcls_database_ERROR : Object
961 private Xcls_RooProjectSettings _this;
967 public Xcls_database_ERROR(Xcls_RooProjectSettings _owner )
970 _this.database_ERROR = this;
971 this.el = new Gtk.Label( " " );
975 // set gobject values
980 // user defined functions
985 public class Xcls_Box30 : Object
988 private Xcls_RooProjectSettings _this;
994 public Xcls_Box30(Xcls_RooProjectSettings _owner )
997 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
1001 // set gobject values
1002 this.el.homogeneous = true;
1003 this.el.expand = false;
1004 this.el.vexpand = false;
1005 var child_0 = new Xcls_Button31( _this );
1007 this.el.add ( child_0.el );
1008 var child_1 = new Xcls_Button32( _this );
1010 this.el.add ( child_1.el );
1013 // user defined functions
1015 public class Xcls_Button31 : Object
1017 public Gtk.Button el;
1018 private Xcls_RooProjectSettings _this;
1024 public Xcls_Button31(Xcls_RooProjectSettings _owner )
1027 this.el = new Gtk.Button();
1031 // set gobject values
1032 this.el.label = "Apply";
1035 this.el.button_press_event.connect( () => {
1038 _this.buttonPressed("apply");
1043 // user defined functions
1046 public class Xcls_Button32 : Object
1048 public Gtk.Button el;
1049 private Xcls_RooProjectSettings _this;
1055 public Xcls_Button32(Xcls_RooProjectSettings _owner )
1058 this.el = new Gtk.Button();
1062 // set gobject values
1063 this.el.label = "Save";
1066 this.el.button_press_event.connect( () => {
1069 _this.buttonPressed("save");
1074 // user defined functions