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.ftdbcellrenderer.el , "markup", 1 );
363 this.el.changed.connect( () => {
366 if (this.el.get_active_iter(out iter)) {
368 _this.ftdbmodel.el.get_value (iter, 0, out vfname);
369 is_bjs = ((string)vfname) == "bjs";
373 // directory is only available for non-bjs
374 this.showhide(is_bjs);
380 // user defined functions
381 public void showhide (bool is_bjs) {
382 for (var i = 2; i < 9;i++) {
383 var el = _this.grid.el.get_child_at(0,i);
385 var showhide= is_bjs;
387 showhide = !showhide;
395 el = _this.grid.el.get_child_at(1,i);
402 // load up the directories
403 //??? why can we not create bjs files in other directories??
404 if (!is_bjs && _this.file.path.length < 1) {
405 _this.dirmodel.loadData();
413 public class Xcls_base_template_cellrenderer : Object
415 public Gtk.CellRendererText el;
416 private Xcls_RooProjectSettings _this;
422 public Xcls_base_template_cellrenderer(Xcls_RooProjectSettings _owner )
425 _this.base_template_cellrenderer = this;
426 this.el = new Gtk.CellRendererText();
430 // set gobject values
433 // user defined functions
436 public class Xcls_base_template_model : Object
438 public Gtk.ListStore el;
439 private Xcls_RooProjectSettings _this;
445 public Xcls_base_template_model(Xcls_RooProjectSettings _owner )
448 _this.base_template_model = this;
449 this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
453 // set gobject values
456 // user defined functions
457 public void loadData (string cur) {
462 /// el.append(out iter);
465 // el.set_value(iter, 0, "");
466 // el.set_value(iter, 1, "aaa - Just add Element - aaa");
471 el.set_value(iter, 0, "bjs");
472 el.set_value(iter, 1, "User Interface File (bjs)");
473 _this.filetype.el.set_active_iter(iter);
477 el.set_value(iter, 0, "vala");
478 el.set_value(iter, 1, "Vala");
480 _this.filetype.el.set_active_iter(iter);
487 el.set_value(iter, 0, "js");
488 el.set_value(iter, 1, "Javascript");
491 _this.filetype.el.set_active_iter(iter);
496 el.set_value(iter, 0, "css");
497 el.set_value(iter, 1, "CSS");
500 _this.filetype.el.set_active_iter(iter);
508 public class Xcls_Box13 : Object
511 private Xcls_RooProjectSettings _this;
517 public Xcls_Box13(Xcls_RooProjectSettings _owner )
520 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
524 // set gobject values
525 this.el.homogeneous = false;
526 this.el.expand = false;
527 var child_0 = new Xcls_Label14( _this );
529 this.el.pack_start ( child_0.el , false,false,0 );
530 var child_1 = new Xcls_rootURL( _this );
532 this.el.add ( child_1.el );
535 // user defined functions
537 public class Xcls_Label14 : Object
540 private Xcls_RooProjectSettings _this;
546 public Xcls_Label14(Xcls_RooProjectSettings _owner )
549 this.el = new Gtk.Label( "root URL" );
553 // set gobject values
557 // user defined functions
560 public class Xcls_rootURL : Object
563 private Xcls_RooProjectSettings _this;
569 public Xcls_rootURL(Xcls_RooProjectSettings _owner )
572 _this.rootURL = this;
573 this.el = new Gtk.Entry();
577 // set gobject values
580 // user defined functions
584 public class Xcls_Label16 : Object
587 private Xcls_RooProjectSettings _this;
593 public Xcls_Label16(Xcls_RooProjectSettings _owner )
596 this.el = new Gtk.Label( "HTML To insert at end of <HEAD>" );
600 // set gobject values
603 // user defined functions
606 public class Xcls_ScrolledWindow17 : Object
608 public Gtk.ScrolledWindow el;
609 private Xcls_RooProjectSettings _this;
615 public Xcls_ScrolledWindow17(Xcls_RooProjectSettings _owner )
618 this.el = new Gtk.ScrolledWindow( null, null );
622 // set gobject values
623 var child_0 = new Xcls_view( _this );
625 this.el.add ( child_0.el );
628 // user defined functions
630 public class Xcls_view : Object
632 public Gtk.SourceView el;
633 private Xcls_RooProjectSettings _this;
639 public Xcls_view(Xcls_RooProjectSettings _owner )
643 this.el = new Gtk.SourceView();
649 var description = Pango.FontDescription.from_string("monospace");
650 description.set_size(9000);
651 this.el.override_font(description);
654 this.el.key_release_event.connect( ( event) =>{
655 if (event.keyval != 115) {
659 if ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {
662 var buf = this.el.get_buffer();
665 buf.get_start_iter(out s);
666 buf.get_end_iter(out e);
667 _this.project.runhtml = buf.get_text(s,e,true);
670 _this.buttonPressed("save");
677 // user defined functions
682 public class Xcls_Box19 : Object
685 private Xcls_RooProjectSettings _this;
691 public Xcls_Box19(Xcls_RooProjectSettings _owner )
694 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
698 // set gobject values
699 this.el.homogeneous = false;
700 var child_0 = new Xcls_Label20( _this );
702 this.el.pack_start ( child_0.el , false,false,0 );
703 var child_1 = new Xcls_database_DBTYPE( _this );
705 this.el.pack_start ( child_1.el , false,false,0 );
706 var child_2 = new Xcls_Label22( _this );
708 this.el.pack_start ( child_2.el , false,false,0 );
709 var child_3 = new Xcls_database_DBNAME( _this );
711 this.el.pack_start ( child_3.el , false,false,0 );
712 var child_4 = new Xcls_Label24( _this );
714 this.el.pack_start ( child_4.el , false,false,0 );
715 var child_5 = new Xcls_database_DBUSERNAME( _this );
717 this.el.pack_start ( child_5.el , false,false,0 );
718 var child_6 = new Xcls_Label26( _this );
720 this.el.pack_start ( child_6.el , false,false,0 );
721 var child_7 = new Xcls_database_DBPASSWORD( _this );
723 this.el.pack_start ( child_7.el , false,false,0 );
724 var child_8 = new Xcls_Button28( _this );
726 this.el.pack_start ( child_8.el , false,false,0 );
727 var child_9 = new Xcls_database_ERROR( _this );
729 this.el.pack_start ( child_9.el , false,false,0 );
732 // user defined functions
734 public class Xcls_Label20 : Object
737 private Xcls_RooProjectSettings _this;
743 public Xcls_Label20(Xcls_RooProjectSettings _owner )
746 this.el = new Gtk.Label( "Type (eg. MySQL or PostgreSQL)" );
750 // set gobject values
754 // user defined functions
757 public class Xcls_database_DBTYPE : Object
760 private Xcls_RooProjectSettings _this;
766 public Xcls_database_DBTYPE(Xcls_RooProjectSettings _owner )
769 _this.database_DBTYPE = this;
770 this.el = new Gtk.Entry();
774 // set gobject values
777 this.el.key_press_event.connect( (ev) => {
779 if (ev.keyval == Gdk.Key.Tab) {
780 _this.database_DBNAME.el.grab_focus();
789 // user defined functions
792 public class Xcls_Label22 : Object
795 private Xcls_RooProjectSettings _this;
801 public Xcls_Label22(Xcls_RooProjectSettings _owner )
804 this.el = new Gtk.Label( "Name" );
808 // set gobject values
812 // user defined functions
815 public class Xcls_database_DBNAME : Object
818 private Xcls_RooProjectSettings _this;
824 public Xcls_database_DBNAME(Xcls_RooProjectSettings _owner )
827 _this.database_DBNAME = this;
828 this.el = new Gtk.Entry();
832 // set gobject values
835 this.el.key_press_event.connect( (ev) => {
837 if (ev.keyval == Gdk.Key.Tab) {
838 _this.database_DBUSERNAME.el.grab_focus();
847 // user defined functions
850 public class Xcls_Label24 : Object
853 private Xcls_RooProjectSettings _this;
859 public Xcls_Label24(Xcls_RooProjectSettings _owner )
862 this.el = new Gtk.Label( "Username" );
866 // set gobject values
870 // user defined functions
873 public class Xcls_database_DBUSERNAME : Object
876 private Xcls_RooProjectSettings _this;
882 public Xcls_database_DBUSERNAME(Xcls_RooProjectSettings _owner )
885 _this.database_DBUSERNAME = this;
886 this.el = new Gtk.Entry();
890 // set gobject values
893 this.el.key_press_event.connect( (ev) => {
895 if (ev.keyval == Gdk.Key.Tab) {
896 _this.database_DBPASSWORD.el.grab_focus();
905 // user defined functions
908 public class Xcls_Label26 : Object
911 private Xcls_RooProjectSettings _this;
917 public Xcls_Label26(Xcls_RooProjectSettings _owner )
920 this.el = new Gtk.Label( "Password" );
924 // set gobject values
928 // user defined functions
931 public class Xcls_database_DBPASSWORD : Object
934 private Xcls_RooProjectSettings _this;
940 public Xcls_database_DBPASSWORD(Xcls_RooProjectSettings _owner )
943 _this.database_DBPASSWORD = this;
944 this.el = new Gtk.Entry();
948 // set gobject values
951 // user defined functions
954 public class Xcls_Button28 : Object
956 public Gtk.Button el;
957 private Xcls_RooProjectSettings _this;
963 public Xcls_Button28(Xcls_RooProjectSettings _owner )
966 this.el = new Gtk.Button();
970 // set gobject values
971 this.el.label = "Check Connection";
974 this.el.clicked.connect( () => {
977 _this.database_ERROR.el.label = "";
980 // assumes localhost...
981 cnc = Gda.Connection.open_from_string (
982 _this.database_DBTYPE.el.get_text(),
983 "DB_NAME=" + _this.database_DBNAME.el.get_text(),
984 "USERNAME=" + _this.database_DBUSERNAME.el.get_text() +
985 ";PASSWORD=" + _this.database_DBPASSWORD.el.get_text(),
986 Gda.ConnectionOptions.NONE
988 //} catch (Gda.ConnectionError ce) {
989 // _this.database_ERROR.el.label = ce.message;
990 } catch(Gda.ConnectionError ue) {
991 _this.database_ERROR.el.label = ue.message;
993 } catch(Gda.ConfigError ue) {
994 _this.database_ERROR.el.label = ue.message;
997 _this.database_ERROR.el.label = "Connection Succeeded";
1002 // user defined functions
1005 public class Xcls_database_ERROR : Object
1007 public Gtk.Label el;
1008 private Xcls_RooProjectSettings _this;
1014 public Xcls_database_ERROR(Xcls_RooProjectSettings _owner )
1017 _this.database_ERROR = this;
1018 this.el = new Gtk.Label( " " );
1022 // set gobject values
1024 this.el.xalign = 0f;
1027 // user defined functions
1032 public class Xcls_Box30 : Object
1035 private Xcls_RooProjectSettings _this;
1041 public Xcls_Box30(Xcls_RooProjectSettings _owner )
1044 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
1048 // set gobject values
1049 this.el.homogeneous = true;
1050 this.el.expand = false;
1051 this.el.vexpand = false;
1052 var child_0 = new Xcls_Button31( _this );
1054 this.el.add ( child_0.el );
1055 var child_1 = new Xcls_Button32( _this );
1057 this.el.add ( child_1.el );
1060 // user defined functions
1062 public class Xcls_Button31 : Object
1064 public Gtk.Button el;
1065 private Xcls_RooProjectSettings _this;
1071 public Xcls_Button31(Xcls_RooProjectSettings _owner )
1074 this.el = new Gtk.Button();
1078 // set gobject values
1079 this.el.label = "Apply";
1082 this.el.button_press_event.connect( () => {
1085 _this.buttonPressed("apply");
1090 // user defined functions
1093 public class Xcls_Button32 : Object
1095 public Gtk.Button el;
1096 private Xcls_RooProjectSettings _this;
1102 public Xcls_Button32(Xcls_RooProjectSettings _owner )
1105 this.el = new Gtk.Button();
1109 // set gobject values
1110 this.el.label = "Save";
1113 this.el.button_press_event.connect( () => {
1116 _this.buttonPressed("save");
1121 // user defined functions