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;
42 this.el.position = Gtk.PositionType.RIGHT;
43 var child_0 = new Xcls_Box2( _this );
45 this.el.add ( child_0.el );
48 // user defined functions
49 public void show (Project.Project project) {
50 _this.project = project;
51 _this.path.el.label = project.firstPath();
52 // get the active project.
53 var lm = Gtk.SourceLanguageManager.get_default();
55 ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(
57 lm.get_language("html"));
60 //project.runhtml = project.runhtml || '';
61 _this.view.el.get_buffer().set_text(project.runhtml);
64 _this.rootURL.el.set_text( _this.project.rootURL );
65 _this.base_template.el.set_text(_this.project.base_template);
66 var js = _this.project;
67 _this.database_DBTYPE.el.set_text( js.get_string_member("DBTYPE") );
68 _this.database_DBNAME.el.set_text( js.get_string_member("DBNAME") );
69 _this.database_DBUSERNAME.el.set_text( js.get_string_member("DBUSERNAME") );
70 _this.database_DBPASSWORD.el.set_text( js.get_string_member("DBPASSWORD") );
74 var buf = _this.view.el.get_buffer();
77 buf.get_start_iter(out s);
78 buf.get_end_iter(out e);
79 _this.project.runhtml = buf.get_text(s,e,true);
81 _this.project.rootURL = _this.rootURL.el.get_text();
82 _this.project.base_template = _this.base_template.el.get_text();
84 var js = _this.project.json_project_data;
85 js.set_string_member("DBTYPE", _this.database_DBTYPE.el.get_text());
86 js.set_string_member("DBNAME", _this.database_DBNAME.el.get_text());
87 js.set_string_member("DBUSERNAME", _this.database_DBUSERNAME.el.get_text());
88 js.set_string_member("DBPASSWORD", _this.database_DBPASSWORD.el.get_text());
89 // _this.project.set_string_member("DBHOST", _this.DBTYPE.el.get_text());
91 // need to re-init the database
93 _this.project.initRooDatabase();
97 public class Xcls_Box2 : Object
100 private Xcls_ProjectSettings _this;
106 public Xcls_Box2(Xcls_ProjectSettings _owner )
109 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
113 // set gobject values
114 this.el.homogeneous = false;
115 this.el.border_width = 5;
116 var child_0 = new Xcls_Box3( _this );
118 this.el.pack_start ( child_0.el , false,false,0 );
119 var child_1 = new Xcls_Notebook6( _this );
121 this.el.pack_end ( child_1.el , true,true,0 );
124 // user defined functions
126 public class Xcls_Box3 : Object
129 private Xcls_ProjectSettings _this;
135 public Xcls_Box3(Xcls_ProjectSettings _owner )
138 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
142 // set gobject values
143 this.el.homogeneous = true;
144 this.el.expand = false;
145 this.el.vexpand = false;
146 var child_0 = new Xcls_Button4( _this );
148 this.el.add ( child_0.el );
149 var child_1 = new Xcls_Button5( _this );
151 this.el.add ( child_1.el );
154 // user defined functions
156 public class Xcls_Button4 : Object
158 public Gtk.Button el;
159 private Xcls_ProjectSettings _this;
165 public Xcls_Button4(Xcls_ProjectSettings _owner )
168 this.el = new Gtk.Button();
172 // set gobject values
173 this.el.label = "Apply";
176 this.el.button_press_event.connect( () => {
179 _this.buttonPressed("apply");
184 // user defined functions
187 public class Xcls_Button5 : Object
189 public Gtk.Button el;
190 private Xcls_ProjectSettings _this;
196 public Xcls_Button5(Xcls_ProjectSettings _owner )
199 this.el = new Gtk.Button();
203 // set gobject values
204 this.el.label = "Save";
207 this.el.button_press_event.connect( () => {
210 _this.buttonPressed("save");
215 // user defined functions
219 public class Xcls_Notebook6 : Object
221 public Gtk.Notebook el;
222 private Xcls_ProjectSettings _this;
228 public Xcls_Notebook6(Xcls_ProjectSettings _owner )
231 this.el = new Gtk.Notebook();
235 // set gobject values
236 var child_0 = new Xcls_label_global( _this );
238 var child_1 = new Xcls_label_database( _this );
240 var child_2 = new Xcls_Box9( _this );
242 this.el.append_page ( child_2.el , _this.label_global.el );
243 var child_3 = new Xcls_Box20( _this );
245 this.el.append_page ( child_3.el , _this.label_database.el );
248 // user defined functions
250 public class Xcls_label_global : Object
253 private Xcls_ProjectSettings _this;
259 public Xcls_label_global(Xcls_ProjectSettings _owner )
262 _this.label_global = this;
263 this.el = new Gtk.Label( "Global" );
267 // set gobject values
270 // user defined functions
273 public class Xcls_label_database : Object
276 private Xcls_ProjectSettings _this;
282 public Xcls_label_database(Xcls_ProjectSettings _owner )
285 _this.label_database = this;
286 this.el = new Gtk.Label( "Database" );
290 // set gobject values
293 // user defined functions
296 public class Xcls_Box9 : Object
299 private Xcls_ProjectSettings _this;
305 public Xcls_Box9(Xcls_ProjectSettings _owner )
308 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
312 // set gobject values
313 this.el.homogeneous = false;
314 var child_0 = new Xcls_path( _this );
316 this.el.pack_start ( child_0.el , false,false,0 );
317 var child_1 = new Xcls_Box11( _this );
319 this.el.pack_start ( child_1.el , false,false,0 );
320 var child_2 = new Xcls_Box14( _this );
322 this.el.pack_start ( child_2.el , false,false,0 );
323 var child_3 = new Xcls_Label17( _this );
325 this.el.pack_start ( child_3.el , false,false,0 );
326 var child_4 = new Xcls_ScrolledWindow18( _this );
328 this.el.pack_start ( child_4.el , true,true,0 );
331 // user defined functions
333 public class Xcls_path : Object
336 private Xcls_ProjectSettings _this;
342 public Xcls_path(Xcls_ProjectSettings _owner )
346 this.el = new Gtk.Label( "filename" );
350 // set gobject values
355 // user defined functions
358 public class Xcls_Box11 : Object
361 private Xcls_ProjectSettings _this;
367 public Xcls_Box11(Xcls_ProjectSettings _owner )
370 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
374 // set gobject values
375 this.el.homogeneous = false;
376 this.el.expand = false;
377 var child_0 = new Xcls_Label12( _this );
379 this.el.pack_start ( child_0.el , false,false,0 );
380 var child_1 = new Xcls_base_template( _this );
382 this.el.add ( child_1.el );
385 // user defined functions
387 public class Xcls_Label12 : Object
390 private Xcls_ProjectSettings _this;
396 public Xcls_Label12(Xcls_ProjectSettings _owner )
399 this.el = new Gtk.Label( "HTML template file" );
403 // set gobject values
407 // user defined functions
410 public class Xcls_base_template : Object
413 private Xcls_ProjectSettings _this;
419 public Xcls_base_template(Xcls_ProjectSettings _owner )
422 _this.base_template = this;
423 this.el = new Gtk.Entry();
427 // set gobject values
430 // user defined functions
434 public class Xcls_Box14 : Object
437 private Xcls_ProjectSettings _this;
443 public Xcls_Box14(Xcls_ProjectSettings _owner )
446 this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
450 // set gobject values
451 this.el.homogeneous = false;
452 this.el.expand = false;
453 var child_0 = new Xcls_Label15( _this );
455 this.el.pack_start ( child_0.el , false,false,0 );
456 var child_1 = new Xcls_rootURL( _this );
458 this.el.add ( child_1.el );
461 // user defined functions
463 public class Xcls_Label15 : Object
466 private Xcls_ProjectSettings _this;
472 public Xcls_Label15(Xcls_ProjectSettings _owner )
475 this.el = new Gtk.Label( "root URL" );
479 // set gobject values
483 // user defined functions
486 public class Xcls_rootURL : Object
489 private Xcls_ProjectSettings _this;
495 public Xcls_rootURL(Xcls_ProjectSettings _owner )
498 _this.rootURL = this;
499 this.el = new Gtk.Entry();
503 // set gobject values
506 // user defined functions
510 public class Xcls_Label17 : Object
513 private Xcls_ProjectSettings _this;
519 public Xcls_Label17(Xcls_ProjectSettings _owner )
522 this.el = new Gtk.Label( "HTML To insert at end of <HEAD>" );
526 // set gobject values
529 // user defined functions
532 public class Xcls_ScrolledWindow18 : Object
534 public Gtk.ScrolledWindow el;
535 private Xcls_ProjectSettings _this;
541 public Xcls_ScrolledWindow18(Xcls_ProjectSettings _owner )
544 this.el = new Gtk.ScrolledWindow( null, null );
548 // set gobject values
549 var child_0 = new Xcls_view( _this );
551 this.el.add ( child_0.el );
554 // user defined functions
556 public class Xcls_view : Object
558 public Gtk.SourceView el;
559 private Xcls_ProjectSettings _this;
565 public Xcls_view(Xcls_ProjectSettings _owner )
569 this.el = new Gtk.SourceView();
575 var description = Pango.FontDescription.from_string("monospace");
576 description.set_size(9000);
577 this.el.override_font(description);
580 this.el.key_release_event.connect( ( event) =>{
581 if (event.keyval != 115) {
585 if ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {
588 var buf = this.el.get_buffer();
591 buf.get_start_iter(out s);
592 buf.get_end_iter(out e);
593 _this.project.runhtml = buf.get_text(s,e,true);
596 _this.buttonPressed("save");
603 // user defined functions
608 public class Xcls_Box20 : Object
611 private Xcls_ProjectSettings _this;
617 public Xcls_Box20(Xcls_ProjectSettings _owner )
620 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
624 // set gobject values
625 this.el.homogeneous = false;
626 var child_0 = new Xcls_Label21( _this );
628 this.el.pack_start ( child_0.el , false,false,0 );
629 var child_1 = new Xcls_database_DBTYPE( _this );
631 this.el.pack_start ( child_1.el , false,false,0 );
632 var child_2 = new Xcls_Label23( _this );
634 this.el.pack_start ( child_2.el , false,false,0 );
635 var child_3 = new Xcls_database_DBNAME( _this );
637 this.el.pack_start ( child_3.el , false,false,0 );
638 var child_4 = new Xcls_Label25( _this );
640 this.el.pack_start ( child_4.el , false,false,0 );
641 var child_5 = new Xcls_database_DBUSERNAME( _this );
643 this.el.pack_start ( child_5.el , false,false,0 );
644 var child_6 = new Xcls_Label27( _this );
646 this.el.pack_start ( child_6.el , false,false,0 );
647 var child_7 = new Xcls_database_DBPASSWORD( _this );
649 this.el.pack_start ( child_7.el , false,false,0 );
650 var child_8 = new Xcls_Button29( _this );
652 this.el.pack_start ( child_8.el , false,false,0 );
653 var child_9 = new Xcls_database_ERROR( _this );
655 this.el.pack_start ( child_9.el , false,false,0 );
658 // user defined functions
660 public class Xcls_Label21 : Object
663 private Xcls_ProjectSettings _this;
669 public Xcls_Label21(Xcls_ProjectSettings _owner )
672 this.el = new Gtk.Label( "Type (eg. MySQL or PostgreSQL)" );
676 // set gobject values
680 // user defined functions
683 public class Xcls_database_DBTYPE : Object
686 private Xcls_ProjectSettings _this;
692 public Xcls_database_DBTYPE(Xcls_ProjectSettings _owner )
695 _this.database_DBTYPE = this;
696 this.el = new Gtk.Entry();
700 // set gobject values
703 this.el.key_press_event.connect( (ev) => {
705 if (ev.keyval == Gdk.Key.Tab) {
706 _this.database_DBNAME.el.grab_focus();
715 // user defined functions
718 public class Xcls_Label23 : Object
721 private Xcls_ProjectSettings _this;
727 public Xcls_Label23(Xcls_ProjectSettings _owner )
730 this.el = new Gtk.Label( "Name" );
734 // set gobject values
738 // user defined functions
741 public class Xcls_database_DBNAME : Object
744 private Xcls_ProjectSettings _this;
750 public Xcls_database_DBNAME(Xcls_ProjectSettings _owner )
753 _this.database_DBNAME = this;
754 this.el = new Gtk.Entry();
758 // set gobject values
761 this.el.key_press_event.connect( (ev) => {
763 if (ev.keyval == Gdk.Key.Tab) {
764 _this.database_DBUSERNAME.el.grab_focus();
773 // user defined functions
776 public class Xcls_Label25 : Object
779 private Xcls_ProjectSettings _this;
785 public Xcls_Label25(Xcls_ProjectSettings _owner )
788 this.el = new Gtk.Label( "Username" );
792 // set gobject values
796 // user defined functions
799 public class Xcls_database_DBUSERNAME : Object
802 private Xcls_ProjectSettings _this;
808 public Xcls_database_DBUSERNAME(Xcls_ProjectSettings _owner )
811 _this.database_DBUSERNAME = this;
812 this.el = new Gtk.Entry();
816 // set gobject values
819 this.el.key_press_event.connect( (ev) => {
821 if (ev.keyval == Gdk.Key.Tab) {
822 _this.database_DBPASSWORD.el.grab_focus();
831 // user defined functions
834 public class Xcls_Label27 : Object
837 private Xcls_ProjectSettings _this;
843 public Xcls_Label27(Xcls_ProjectSettings _owner )
846 this.el = new Gtk.Label( "Password" );
850 // set gobject values
854 // user defined functions
857 public class Xcls_database_DBPASSWORD : Object
860 private Xcls_ProjectSettings _this;
866 public Xcls_database_DBPASSWORD(Xcls_ProjectSettings _owner )
869 _this.database_DBPASSWORD = this;
870 this.el = new Gtk.Entry();
874 // set gobject values
877 // user defined functions
880 public class Xcls_Button29 : Object
882 public Gtk.Button el;
883 private Xcls_ProjectSettings _this;
889 public Xcls_Button29(Xcls_ProjectSettings _owner )
892 this.el = new Gtk.Button();
896 // set gobject values
897 this.el.label = "Check Connection";
900 this.el.clicked.connect( () => {
903 _this.database_ERROR.el.label = "";
906 // assumes localhost...
907 cnc = Gda.Connection.open_from_string (
908 _this.database_DBTYPE.el.get_text(),
909 "DB_NAME=" + _this.database_DBNAME.el.get_text(),
910 "USERNAME=" + _this.database_DBUSERNAME.el.get_text() +
911 ";PASSWORD=" + _this.database_DBPASSWORD.el.get_text(),
912 Gda.ConnectionOptions.NONE
914 //} catch (Gda.ConnectionError ce) {
915 // _this.database_ERROR.el.label = ce.message;
916 } catch(Gda.ConnectionError ue) {
917 _this.database_ERROR.el.label = ue.message;
919 } catch(Gda.ConfigError ue) {
920 _this.database_ERROR.el.label = ue.message;
923 _this.database_ERROR.el.label = "Connection Succeeded";
928 // user defined functions
931 public class Xcls_database_ERROR : Object
934 private Xcls_ProjectSettings _this;
940 public Xcls_database_ERROR(Xcls_ProjectSettings _owner )
943 _this.database_ERROR = this;
944 this.el = new Gtk.Label( " " );
948 // set gobject values
953 // user defined functions