1 static Xcls_ProjectSettings _ProjectSettings;
3 public class Xcls_ProjectSettings : Object
6 private Xcls_ProjectSettings _this;
8 public static Xcls_ProjectSettings singleton()
10 if (_ProjectSettings == null) {
11 _ProjectSettings= new Xcls_ProjectSettings();
13 return _ProjectSettings;
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_rootURL rootURL;
20 public Xcls_view view;
21 public Xcls_database_DBTYPE database_DBTYPE;
22 public Xcls_database_DBNAME database_DBNAME;
23 public Xcls_database_DBUSERNAME database_DBUSERNAME;
24 public Xcls_database_DBPASSWORD database_DBPASSWORD;
25 public Xcls_database_ERROR database_ERROR;
28 public signal void buttonPressed (string btn);
29 public Project.Project project;
32 public Xcls_ProjectSettings()
35 this.el = new Gtk.Popover( null );
40 this.el.border_width = 0;
41 var child_0 = new Xcls_Box2( _this );
43 this.el.add ( child_0.el );
46 // user defined functions
47 public void show (Project.Project project) {
48 _this.project = project;
49 _this.path.el.label = project.firstPath();
50 // get the active project.
51 var lm = Gtk.SourceLanguageManager.get_default();
53 ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(
55 lm.get_language("html"));
58 //project.runhtml = project.runhtml || '';
59 _this.view.el.get_buffer().set_text(project.runhtml);
62 _this.rootURL.el.set_text( _this.project.rootURL );
63 _this.base_template.el.set_text(_this.project.base_template);
64 var js = _this.project;
65 _this.database_DBTYPE.el.set_text( js.get_string_member("DBTYPE") );
66 _this.database_DBNAME.el.set_text( js.get_string_member("DBNAME") );
67 _this.database_DBUSERNAME.el.set_text( js.get_string_member("DBUSERNAME") );
68 _this.database_DBPASSWORD.el.set_text( js.get_string_member("DBPASSWORD") );
72 var buf = _this.view.el.get_buffer();
75 buf.get_start_iter(out s);
76 buf.get_end_iter(out e);
77 _this.project.runhtml = buf.get_text(s,e,true);
79 _this.project.rootURL = _this.rootURL.el.get_text();
80 _this.project.base_template = _this.base_template.el.get_text();
82 var js = _this.project.json_project_data;
83 js.set_string_member("DBTYPE", _this.database_DBTYPE.el.get_text());
84 js.set_string_member("DBNAME", _this.database_DBNAME.el.get_text());
85 js.set_string_member("DBUSERNAME", _this.database_DBUSERNAME.el.get_text());
86 js.set_string_member("DBPASSWORD", _this.database_DBPASSWORD.el.get_text());
87 // _this.project.set_string_member("DBHOST", _this.DBTYPE.el.get_text());
89 // need to re-init the database
91 _this.project.initRooDatabase();
95 public class Xcls_Box2 : Object
98 private Xcls_ProjectSettings _this;
104 public Xcls_Box2(Xcls_ProjectSettings _owner )
107 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
111 // set gobject values
112 this.el.homogeneous = false;
113 this.el.border_width = 5;
114 var child_0 = new Xcls_Box3( _this );
116 this.el.pack_start ( child_0.el , false,false,0 );
117 var child_1 = new Xcls_Notebook6( _this );
119 this.el.pack_end ( child_1.el , true,true,0 );
122 // user defined functions
124 public class Xcls_Box3 : Object
127 private Xcls_ProjectSettings _this;
133 public Xcls_Box3(Xcls_ProjectSettings _owner )
136 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
140 // set gobject values
141 this.el.homogeneous = true;
142 this.el.expand = false;
143 this.el.vexpand = false;
144 var child_0 = new Xcls_Button4( _this );
146 this.el.add ( child_0.el );
147 var child_1 = new Xcls_Button5( _this );
149 this.el.add ( child_1.el );
152 // user defined functions
154 public class Xcls_Button4 : Object
156 public Gtk.Button el;
157 private Xcls_ProjectSettings _this;
163 public Xcls_Button4(Xcls_ProjectSettings _owner )
166 this.el = new Gtk.Button();
170 // set gobject values
171 this.el.label = "Apply";
174 this.el.button_press_event.connect( () => {
177 _this.buttonPressed("apply");
182 // user defined functions
185 public class Xcls_Button5 : Object
187 public Gtk.Button el;
188 private Xcls_ProjectSettings _this;
194 public Xcls_Button5(Xcls_ProjectSettings _owner )
197 this.el = new Gtk.Button();
201 // set gobject values
202 this.el.label = "Save";
205 this.el.button_press_event.connect( () => {
208 _this.buttonPressed("save");
213 // user defined functions
217 public class Xcls_Notebook6 : Object
219 public Gtk.Notebook el;
220 private Xcls_ProjectSettings _this;
226 public Xcls_Notebook6(Xcls_ProjectSettings _owner )
229 this.el = new Gtk.Notebook();
233 // set gobject values
234 var child_0 = new Xcls_label_global( _this );
236 var child_1 = new Xcls_label_database( _this );
238 var child_2 = new Xcls_Box9( _this );
240 this.el.append_page ( child_2.el , _this.label_global.el );
241 var child_3 = new Xcls_Box20( _this );
243 this.el.append_page ( child_3.el , _this.label_database.el );
246 // user defined functions
248 public class Xcls_label_global : Object
251 private Xcls_ProjectSettings _this;
257 public Xcls_label_global(Xcls_ProjectSettings _owner )
260 _this.label_global = this;
261 this.el = new Gtk.Label( "Global" );
265 // set gobject values
268 // user defined functions
271 public class Xcls_label_database : Object
274 private Xcls_ProjectSettings _this;
280 public Xcls_label_database(Xcls_ProjectSettings _owner )
283 _this.label_database = this;
284 this.el = new Gtk.Label( "Database" );
288 // set gobject values
291 // user defined functions
294 public class Xcls_Box9 : Object
297 private Xcls_ProjectSettings _this;
303 public Xcls_Box9(Xcls_ProjectSettings _owner )
306 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
310 // set gobject values
311 this.el.homogeneous = false;
312 var child_0 = new Xcls_path( _this );
314 this.el.pack_start ( child_0.el , false,false,0 );
315 var child_1 = new Xcls_Box11( _this );
317 this.el.pack_start ( child_1.el , false,false,0 );
318 var child_2 = new Xcls_Box14( _this );
320 this.el.pack_start ( child_2.el , false,false,0 );
321 var child_3 = new Xcls_Label17( _this );
323 this.el.pack_start ( child_3.el , false,false,0 );
324 var child_4 = new Xcls_ScrolledWindow18( _this );
326 this.el.pack_start ( child_4.el , true,true,0 );
329 // user defined functions
331 public class Xcls_path : Object
334 private Xcls_ProjectSettings _this;
340 public Xcls_path(Xcls_ProjectSettings _owner )
344 this.el = new Gtk.Label( "filename" );
348 // set gobject values
353 // user defined functions
356 public class Xcls_Box11 : Object
359 private Xcls_ProjectSettings _this;
365 public Xcls_Box11(Xcls_ProjectSettings _owner )
368 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
372 // set gobject values
373 this.el.homogeneous = false;
374 this.el.expand = false;
375 var child_0 = new Xcls_Label12( _this );
377 this.el.pack_start ( child_0.el , false,false,0 );
378 var child_1 = new Xcls_base_template( _this );
380 this.el.add ( child_1.el );
383 // user defined functions
385 public class Xcls_Label12 : Object
388 private Xcls_ProjectSettings _this;
394 public Xcls_Label12(Xcls_ProjectSettings _owner )
397 this.el = new Gtk.Label( "HTML template file" );
401 // set gobject values
405 // user defined functions
408 public class Xcls_base_template : Object
411 private Xcls_ProjectSettings _this;
417 public Xcls_base_template(Xcls_ProjectSettings _owner )
420 _this.base_template = this;
421 this.el = new Gtk.Entry();
425 // set gobject values
428 // user defined functions
432 public class Xcls_Box14 : Object
435 private Xcls_ProjectSettings _this;
441 public Xcls_Box14(Xcls_ProjectSettings _owner )
444 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
448 // set gobject values
449 this.el.homogeneous = false;
450 this.el.expand = false;
451 var child_0 = new Xcls_Label15( _this );
453 this.el.pack_start ( child_0.el , false,false,0 );
454 var child_1 = new Xcls_rootURL( _this );
456 this.el.add ( child_1.el );
459 // user defined functions
461 public class Xcls_Label15 : Object
464 private Xcls_ProjectSettings _this;
470 public Xcls_Label15(Xcls_ProjectSettings _owner )
473 this.el = new Gtk.Label( "root URL" );
477 // set gobject values
481 // user defined functions
484 public class Xcls_rootURL : Object
487 private Xcls_ProjectSettings _this;
493 public Xcls_rootURL(Xcls_ProjectSettings _owner )
496 _this.rootURL = this;
497 this.el = new Gtk.Entry();
501 // set gobject values
504 // user defined functions
508 public class Xcls_Label17 : Object
511 private Xcls_ProjectSettings _this;
517 public Xcls_Label17(Xcls_ProjectSettings _owner )
520 this.el = new Gtk.Label( "HTML To insert at end of <HEAD>" );
524 // set gobject values
527 // user defined functions
530 public class Xcls_ScrolledWindow18 : Object
532 public Gtk.ScrolledWindow el;
533 private Xcls_ProjectSettings _this;
539 public Xcls_ScrolledWindow18(Xcls_ProjectSettings _owner )
542 this.el = new Gtk.ScrolledWindow( null, null );
546 // set gobject values
547 var child_0 = new Xcls_view( _this );
549 this.el.add ( child_0.el );
552 // user defined functions
554 public class Xcls_view : Object
556 public Gtk.SourceView el;
557 private Xcls_ProjectSettings _this;
563 public Xcls_view(Xcls_ProjectSettings _owner )
567 this.el = new Gtk.SourceView();
573 var description = Pango.FontDescription.from_string("monospace");
574 description.set_size(9000);
575 this.el.override_font(description);
578 this.el.key_release_event.connect( ( event) =>{
579 if (event.keyval != 115) {
583 if ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {
586 var buf = this.el.get_buffer();
589 buf.get_start_iter(out s);
590 buf.get_end_iter(out e);
591 _this.project.runhtml = buf.get_text(s,e,true);
594 _this.buttonPressed("save");
601 // user defined functions
606 public class Xcls_Box20 : Object
609 private Xcls_ProjectSettings _this;
615 public Xcls_Box20(Xcls_ProjectSettings _owner )
618 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
622 // set gobject values
623 this.el.homogeneous = false;
624 var child_0 = new Xcls_Label21( _this );
626 this.el.pack_start ( child_0.el , false,false,0 );
627 var child_1 = new Xcls_database_DBTYPE( _this );
629 this.el.pack_start ( child_1.el , false,false,0 );
630 var child_2 = new Xcls_Label23( _this );
632 this.el.pack_start ( child_2.el , false,false,0 );
633 var child_3 = new Xcls_database_DBNAME( _this );
635 this.el.pack_start ( child_3.el , false,false,0 );
636 var child_4 = new Xcls_Label25( _this );
638 this.el.pack_start ( child_4.el , false,false,0 );
639 var child_5 = new Xcls_database_DBUSERNAME( _this );
641 this.el.pack_start ( child_5.el , false,false,0 );
642 var child_6 = new Xcls_Label27( _this );
644 this.el.pack_start ( child_6.el , false,false,0 );
645 var child_7 = new Xcls_database_DBPASSWORD( _this );
647 this.el.pack_start ( child_7.el , false,false,0 );
648 var child_8 = new Xcls_Button29( _this );
650 this.el.pack_start ( child_8.el , false,false,0 );
651 var child_9 = new Xcls_database_ERROR( _this );
653 this.el.pack_start ( child_9.el , false,false,0 );
656 // user defined functions
658 public class Xcls_Label21 : Object
661 private Xcls_ProjectSettings _this;
667 public Xcls_Label21(Xcls_ProjectSettings _owner )
670 this.el = new Gtk.Label( "Type (eg. MySQL or PostgreSQL)" );
674 // set gobject values
678 // user defined functions
681 public class Xcls_database_DBTYPE : Object
684 private Xcls_ProjectSettings _this;
690 public Xcls_database_DBTYPE(Xcls_ProjectSettings _owner )
693 _this.database_DBTYPE = this;
694 this.el = new Gtk.Entry();
698 // set gobject values
701 this.el.key_press_event.connect( (ev) => {
703 if (ev.keyval == Gdk.Key.Tab) {
704 _this.database_DBNAME.el.grab_focus();
713 // user defined functions
716 public class Xcls_Label23 : Object
719 private Xcls_ProjectSettings _this;
725 public Xcls_Label23(Xcls_ProjectSettings _owner )
728 this.el = new Gtk.Label( "Name" );
732 // set gobject values
736 // user defined functions
739 public class Xcls_database_DBNAME : Object
742 private Xcls_ProjectSettings _this;
748 public Xcls_database_DBNAME(Xcls_ProjectSettings _owner )
751 _this.database_DBNAME = this;
752 this.el = new Gtk.Entry();
756 // set gobject values
759 this.el.key_press_event.connect( (ev) => {
761 if (ev.keyval == Gdk.Key.Tab) {
762 _this.database_DBUSERNAME.el.grab_focus();
771 // user defined functions
774 public class Xcls_Label25 : Object
777 private Xcls_ProjectSettings _this;
783 public Xcls_Label25(Xcls_ProjectSettings _owner )
786 this.el = new Gtk.Label( "Username" );
790 // set gobject values
794 // user defined functions
797 public class Xcls_database_DBUSERNAME : Object
800 private Xcls_ProjectSettings _this;
806 public Xcls_database_DBUSERNAME(Xcls_ProjectSettings _owner )
809 _this.database_DBUSERNAME = this;
810 this.el = new Gtk.Entry();
814 // set gobject values
817 this.el.key_press_event.connect( (ev) => {
819 if (ev.keyval == Gdk.Key.Tab) {
820 _this.database_DBPASSWORD.el.grab_focus();
829 // user defined functions
832 public class Xcls_Label27 : Object
835 private Xcls_ProjectSettings _this;
841 public Xcls_Label27(Xcls_ProjectSettings _owner )
844 this.el = new Gtk.Label( "Password" );
848 // set gobject values
852 // user defined functions
855 public class Xcls_database_DBPASSWORD : Object
858 private Xcls_ProjectSettings _this;
864 public Xcls_database_DBPASSWORD(Xcls_ProjectSettings _owner )
867 _this.database_DBPASSWORD = this;
868 this.el = new Gtk.Entry();
872 // set gobject values
875 // user defined functions
878 public class Xcls_Button29 : Object
880 public Gtk.Button el;
881 private Xcls_ProjectSettings _this;
887 public Xcls_Button29(Xcls_ProjectSettings _owner )
890 this.el = new Gtk.Button();
894 // set gobject values
895 this.el.label = "Check Connection";
898 this.el.clicked.connect( () => {
901 _this.database_ERROR.el.label = "";
904 // assumes localhost...
905 cnc = Gda.Connection.open_from_string (
906 _this.database_DBTYPE.el.get_text(),
907 "DB_NAME=" + _this.database_DBNAME.el.get_text(),
908 "USERNAME=" + _this.database_DBUSERNAME.el.get_text() +
909 ";PASSWORD=" + _this.database_DBPASSWORD.el.get_text(),
910 Gda.ConnectionOptions.NONE
912 //} catch (Gda.ConnectionError ce) {
913 // _this.database_ERROR.el.label = ce.message;
914 } catch(Gda.ConnectionError ue) {
915 _this.database_ERROR.el.label = ue.message;
917 } catch(Gda.ConfigError ue) {
918 _this.database_ERROR.el.label = ue.message;
921 _this.database_ERROR.el.label = "Connection Succeeded";
926 // user defined functions
929 public class Xcls_database_ERROR : Object
932 private Xcls_ProjectSettings _this;
938 public Xcls_database_ERROR(Xcls_ProjectSettings _owner )
941 _this.database_ERROR = this;
942 this.el = new Gtk.Label( " " );
946 // set gobject values
951 // user defined functions