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 var child_0 = new Xcls_Box2( _this );
42 this.el.add ( child_0.el );
45 // user defined functions
46 public void show (Project.Project project) {
47 _this.project = project;
48 _this.path.el.label = project.firstPath();
49 // get the active project.
50 var lm = Gtk.SourceLanguageManager.get_default();
52 ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(
54 lm.get_language("html"));
57 //project.runhtml = project.runhtml || '';
58 _this.view.el.get_buffer().set_text(project.runhtml);
61 _this.rootURL.el.set_text( _this.project.rootURL );
62 _this.base_template.el.set_text(_this.project.base_template);
63 var js = _this.project;
64 _this.database_DBTYPE.el.set_text( js.get_string_member("DBTYPE") );
65 _this.database_DBNAME.el.set_text( js.get_string_member("DBNAME") );
66 _this.database_DBUSERNAME.el.set_text( js.get_string_member("DBUSERNAME") );
67 _this.database_DBPASSWORD.el.set_text( js.get_string_member("DBPASSWORD") );
71 var buf = _this.view.el.get_buffer();
74 buf.get_start_iter(out s);
75 buf.get_end_iter(out e);
76 _this.project.runhtml = buf.get_text(s,e,true);
78 _this.project.rootURL = _this.rootURL.el.get_text();
79 _this.project.base_template = _this.base_template.el.get_text();
81 var js = _this.project.json_project_data;
82 js.set_string_member("DBTYPE", _this.database_DBTYPE.el.get_text());
83 js.set_string_member("DBNAME", _this.database_DBNAME.el.get_text());
84 js.set_string_member("DBUSERNAME", _this.database_DBUSERNAME.el.get_text());
85 js.set_string_member("DBPASSWORD", _this.database_DBPASSWORD.el.get_text());
86 // _this.project.set_string_member("DBHOST", _this.DBTYPE.el.get_text());
88 // need to re-init the database
90 _this.project.initRooDatabase();
94 public class Xcls_Box2 : Object
97 private Xcls_ProjectSettings _this;
103 public Xcls_Box2(Xcls_ProjectSettings _owner )
106 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
110 // set gobject values
111 this.el.homogeneous = false;
112 this.el.border_width = 5;
113 var child_0 = new Xcls_Box3( _this );
115 this.el.pack_start ( child_0.el , false,false,0 );
116 var child_1 = new Xcls_Notebook6( _this );
118 this.el.pack_end ( child_1.el , true,true,0 );
121 // user defined functions
123 public class Xcls_Box3 : Object
126 private Xcls_ProjectSettings _this;
132 public Xcls_Box3(Xcls_ProjectSettings _owner )
135 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
139 // set gobject values
140 this.el.homogeneous = true;
141 this.el.expand = false;
142 this.el.vexpand = false;
143 var child_0 = new Xcls_Button4( _this );
145 this.el.add ( child_0.el );
146 var child_1 = new Xcls_Button5( _this );
148 this.el.add ( child_1.el );
151 // user defined functions
153 public class Xcls_Button4 : Object
155 public Gtk.Button el;
156 private Xcls_ProjectSettings _this;
162 public Xcls_Button4(Xcls_ProjectSettings _owner )
165 this.el = new Gtk.Button();
169 // set gobject values
170 this.el.label = "Apply";
173 this.el.button_press_event.connect( () => {
176 _this.buttonPressed("apply");
181 // user defined functions
184 public class Xcls_Button5 : Object
186 public Gtk.Button el;
187 private Xcls_ProjectSettings _this;
193 public Xcls_Button5(Xcls_ProjectSettings _owner )
196 this.el = new Gtk.Button();
200 // set gobject values
201 this.el.label = "Save";
204 this.el.button_press_event.connect( () => {
207 _this.buttonPressed("save");
212 // user defined functions
216 public class Xcls_Notebook6 : Object
218 public Gtk.Notebook el;
219 private Xcls_ProjectSettings _this;
225 public Xcls_Notebook6(Xcls_ProjectSettings _owner )
228 this.el = new Gtk.Notebook();
232 // set gobject values
233 var child_0 = new Xcls_label_global( _this );
235 var child_1 = new Xcls_label_database( _this );
237 var child_2 = new Xcls_Box9( _this );
239 this.el.append_page ( child_2.el , _this.label_global.el );
240 var child_3 = new Xcls_Box20( _this );
242 this.el.append_page ( child_3.el , _this.label_database.el );
245 // user defined functions
247 public class Xcls_label_global : Object
250 private Xcls_ProjectSettings _this;
256 public Xcls_label_global(Xcls_ProjectSettings _owner )
259 _this.label_global = this;
260 this.el = new Gtk.Label( "Global" );
264 // set gobject values
267 // user defined functions
270 public class Xcls_label_database : Object
273 private Xcls_ProjectSettings _this;
279 public Xcls_label_database(Xcls_ProjectSettings _owner )
282 _this.label_database = this;
283 this.el = new Gtk.Label( "Database" );
287 // set gobject values
290 // user defined functions
293 public class Xcls_Box9 : Object
296 private Xcls_ProjectSettings _this;
302 public Xcls_Box9(Xcls_ProjectSettings _owner )
305 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
309 // set gobject values
310 this.el.homogeneous = false;
311 var child_0 = new Xcls_path( _this );
313 this.el.pack_start ( child_0.el , false,false,0 );
314 var child_1 = new Xcls_Box11( _this );
316 this.el.pack_start ( child_1.el , false,false,0 );
317 var child_2 = new Xcls_Box14( _this );
319 this.el.pack_start ( child_2.el , false,false,0 );
320 var child_3 = new Xcls_Label17( _this );
322 this.el.pack_start ( child_3.el , false,false,0 );
323 var child_4 = new Xcls_ScrolledWindow18( _this );
325 this.el.pack_start ( child_4.el , true,true,0 );
328 // user defined functions
330 public class Xcls_path : Object
333 private Xcls_ProjectSettings _this;
339 public Xcls_path(Xcls_ProjectSettings _owner )
343 this.el = new Gtk.Label( "filename" );
347 // set gobject values
352 // user defined functions
355 public class Xcls_Box11 : Object
358 private Xcls_ProjectSettings _this;
364 public Xcls_Box11(Xcls_ProjectSettings _owner )
367 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
371 // set gobject values
372 this.el.homogeneous = false;
373 this.el.expand = false;
374 var child_0 = new Xcls_Label12( _this );
376 this.el.pack_start ( child_0.el , false,false,0 );
377 var child_1 = new Xcls_base_template( _this );
379 this.el.add ( child_1.el );
382 // user defined functions
384 public class Xcls_Label12 : Object
387 private Xcls_ProjectSettings _this;
393 public Xcls_Label12(Xcls_ProjectSettings _owner )
396 this.el = new Gtk.Label( "HTML template file" );
400 // set gobject values
404 // user defined functions
407 public class Xcls_base_template : Object
410 private Xcls_ProjectSettings _this;
416 public Xcls_base_template(Xcls_ProjectSettings _owner )
419 _this.base_template = this;
420 this.el = new Gtk.Entry();
424 // set gobject values
427 // user defined functions
431 public class Xcls_Box14 : Object
434 private Xcls_ProjectSettings _this;
440 public Xcls_Box14(Xcls_ProjectSettings _owner )
443 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
447 // set gobject values
448 this.el.homogeneous = false;
449 this.el.expand = false;
450 var child_0 = new Xcls_Label15( _this );
452 this.el.pack_start ( child_0.el , false,false,0 );
453 var child_1 = new Xcls_rootURL( _this );
455 this.el.add ( child_1.el );
458 // user defined functions
460 public class Xcls_Label15 : Object
463 private Xcls_ProjectSettings _this;
469 public Xcls_Label15(Xcls_ProjectSettings _owner )
472 this.el = new Gtk.Label( "root URL" );
476 // set gobject values
480 // user defined functions
483 public class Xcls_rootURL : Object
486 private Xcls_ProjectSettings _this;
492 public Xcls_rootURL(Xcls_ProjectSettings _owner )
495 _this.rootURL = this;
496 this.el = new Gtk.Entry();
500 // set gobject values
503 // user defined functions
507 public class Xcls_Label17 : Object
510 private Xcls_ProjectSettings _this;
516 public Xcls_Label17(Xcls_ProjectSettings _owner )
519 this.el = new Gtk.Label( "HTML To insert at end of <HEAD>" );
523 // set gobject values
526 // user defined functions
529 public class Xcls_ScrolledWindow18 : Object
531 public Gtk.ScrolledWindow el;
532 private Xcls_ProjectSettings _this;
538 public Xcls_ScrolledWindow18(Xcls_ProjectSettings _owner )
541 this.el = new Gtk.ScrolledWindow( null, null );
545 // set gobject values
546 var child_0 = new Xcls_view( _this );
548 this.el.add ( child_0.el );
551 // user defined functions
553 public class Xcls_view : Object
555 public Gtk.SourceView el;
556 private Xcls_ProjectSettings _this;
562 public Xcls_view(Xcls_ProjectSettings _owner )
566 this.el = new Gtk.SourceView();
572 var description = Pango.FontDescription.from_string("monospace");
573 description.set_size(9000);
574 this.el.override_font(description);
577 this.el.key_release_event.connect( ( event) =>{
578 if (event.keyval != 115) {
582 if ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {
585 var buf = this.el.get_buffer();
588 buf.get_start_iter(out s);
589 buf.get_end_iter(out e);
590 _this.project.runhtml = buf.get_text(s,e,true);
593 _this.buttonPressed("save");
600 // user defined functions
605 public class Xcls_Box20 : Object
608 private Xcls_ProjectSettings _this;
614 public Xcls_Box20(Xcls_ProjectSettings _owner )
617 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
621 // set gobject values
622 this.el.homogeneous = false;
623 var child_0 = new Xcls_Label21( _this );
625 this.el.pack_start ( child_0.el , false,false,0 );
626 var child_1 = new Xcls_database_DBTYPE( _this );
628 this.el.pack_start ( child_1.el , false,false,0 );
629 var child_2 = new Xcls_Label23( _this );
631 this.el.pack_start ( child_2.el , false,false,0 );
632 var child_3 = new Xcls_database_DBNAME( _this );
634 this.el.pack_start ( child_3.el , false,false,0 );
635 var child_4 = new Xcls_Label25( _this );
637 this.el.pack_start ( child_4.el , false,false,0 );
638 var child_5 = new Xcls_database_DBUSERNAME( _this );
640 this.el.pack_start ( child_5.el , false,false,0 );
641 var child_6 = new Xcls_Label27( _this );
643 this.el.pack_start ( child_6.el , false,false,0 );
644 var child_7 = new Xcls_database_DBPASSWORD( _this );
646 this.el.pack_start ( child_7.el , false,false,0 );
647 var child_8 = new Xcls_Button29( _this );
649 this.el.pack_start ( child_8.el , false,false,0 );
650 var child_9 = new Xcls_database_ERROR( _this );
652 this.el.pack_start ( child_9.el , false,false,0 );
655 // user defined functions
657 public class Xcls_Label21 : Object
660 private Xcls_ProjectSettings _this;
666 public Xcls_Label21(Xcls_ProjectSettings _owner )
669 this.el = new Gtk.Label( "Type (eg. MySQL or PostgreSQL)" );
673 // set gobject values
677 // user defined functions
680 public class Xcls_database_DBTYPE : Object
683 private Xcls_ProjectSettings _this;
689 public Xcls_database_DBTYPE(Xcls_ProjectSettings _owner )
692 _this.database_DBTYPE = this;
693 this.el = new Gtk.Entry();
697 // set gobject values
700 this.el.key_press_event.connect( (ev) => {
702 if (ev.keyval == Gdk.Key.Tab) {
703 _this.database_DBNAME.el.grab_focus();
712 // user defined functions
715 public class Xcls_Label23 : Object
718 private Xcls_ProjectSettings _this;
724 public Xcls_Label23(Xcls_ProjectSettings _owner )
727 this.el = new Gtk.Label( "Name" );
731 // set gobject values
735 // user defined functions
738 public class Xcls_database_DBNAME : Object
741 private Xcls_ProjectSettings _this;
747 public Xcls_database_DBNAME(Xcls_ProjectSettings _owner )
750 _this.database_DBNAME = this;
751 this.el = new Gtk.Entry();
755 // set gobject values
758 this.el.key_press_event.connect( (ev) => {
760 if (ev.keyval == Gdk.Key.Tab) {
761 _this.database_DBUSERNAME.el.grab_focus();
770 // user defined functions
773 public class Xcls_Label25 : Object
776 private Xcls_ProjectSettings _this;
782 public Xcls_Label25(Xcls_ProjectSettings _owner )
785 this.el = new Gtk.Label( "Username" );
789 // set gobject values
793 // user defined functions
796 public class Xcls_database_DBUSERNAME : Object
799 private Xcls_ProjectSettings _this;
805 public Xcls_database_DBUSERNAME(Xcls_ProjectSettings _owner )
808 _this.database_DBUSERNAME = this;
809 this.el = new Gtk.Entry();
813 // set gobject values
816 this.el.key_press_event.connect( (ev) => {
818 if (ev.keyval == Gdk.Key.Tab) {
819 _this.database_DBPASSWORD.el.grab_focus();
828 // user defined functions
831 public class Xcls_Label27 : Object
834 private Xcls_ProjectSettings _this;
840 public Xcls_Label27(Xcls_ProjectSettings _owner )
843 this.el = new Gtk.Label( "Password" );
847 // set gobject values
851 // user defined functions
854 public class Xcls_database_DBPASSWORD : Object
857 private Xcls_ProjectSettings _this;
863 public Xcls_database_DBPASSWORD(Xcls_ProjectSettings _owner )
866 _this.database_DBPASSWORD = this;
867 this.el = new Gtk.Entry();
871 // set gobject values
874 // user defined functions
877 public class Xcls_Button29 : Object
879 public Gtk.Button el;
880 private Xcls_ProjectSettings _this;
886 public Xcls_Button29(Xcls_ProjectSettings _owner )
889 this.el = new Gtk.Button();
893 // set gobject values
894 this.el.label = "Check Connection";
897 this.el.clicked.connect( () => {
900 _this.database_ERROR.el.label = "";
903 // assumes localhost...
904 cnc = Gda.Connection.open_from_string (
905 _this.database_DBTYPE.el.get_text(),
906 "DB_NAME=" + _this.database_DBNAME.el.get_text(),
907 "USERNAME=" + _this.database_DBUSERNAME.el.get_text() +
908 ";PASSWORD=" + _this.database_DBPASSWORD.el.get_text(),
909 Gda.ConnectionOptions.NONE
911 //} catch (Gda.ConnectionError ce) {
912 // _this.database_ERROR.el.label = ce.message;
913 } catch(Gda.ConnectionError ue) {
914 _this.database_ERROR.el.label = ue.message;
916 } catch(Gda.ConfigError ue) {
917 _this.database_ERROR.el.label = ue.message;
920 _this.database_ERROR.el.label = "Connection Succeeded";
925 // user defined functions
928 public class Xcls_database_ERROR : Object
931 private Xcls_ProjectSettings _this;
937 public Xcls_database_ERROR(Xcls_ProjectSettings _owner )
940 _this.database_ERROR = this;
941 this.el = new Gtk.Label( " " );
945 // set gobject values
950 // user defined functions