src/Builder4/RooProjectSettings.bjs
[roobuilder] / src / Builder4 / RooProjectSettings.bjs
1 {
2  "name" : "RooProjectSettings",
3  "parent" : "",
4  "title" : "",
5  "path" : "/home/alan/gitlive/roobuilder/src/Builder4/RooProjectSettings.bjs",
6  "permname" : "",
7  "modOrder" : "",
8  "build_module" : "builder",
9  "items" : [
10   {
11    "@ void buttonPressed" : "(string btn)",
12    "id" : "ProjectSettings",
13    "| void show" : " (Project.Project project) {\n    _this.project = project;\n    _this.path.el.label = project.firstPath();\n    // get the active project.\n     var lm = Gtk.SourceLanguageManager.get_default();\n                \n    ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(\n    \n        lm.get_language(\"html\"));\n  \n    //print (project.fn);\n    //project.runhtml = project.runhtml || '';\n    _this.view.el.get_buffer().set_text(project.runhtml);\n    \n       \n    _this.rootURL.el.set_text( _this.project.rootURL );\n    _this.base_template.el.set_text(_this.project.base_template);    \n     var js = _this.project;\n    _this.database_DBTYPE.el.set_text(     js.get_string_member(\"DBTYPE\") );\n    _this.database_DBNAME.el.set_text(    js.get_string_member(\"DBNAME\") );\n    _this.database_DBUSERNAME.el.set_text(    js.get_string_member(\"DBUSERNAME\") );\n    _this.database_DBPASSWORD.el.set_text(    js.get_string_member(\"DBPASSWORD\") );\n    //this.el.show_all();\n}\n",
14    "xtype" : "Popover",
15    "| void save" : "() {\n   var buf =    _this.view.el.get_buffer();\n   Gtk.TextIter s;\n     Gtk.TextIter e;\n    buf.get_start_iter(out s);\n    buf.get_end_iter(out e);\n      _this.project.runhtml = buf.get_text(s,e,true);\n      \n    _this.project.rootURL = _this.rootURL.el.get_text();\n    _this.project.base_template = _this.base_template.el.get_text();    \n    \n    var js = _this.project.json_project_data;\n    js.set_string_member(\"DBTYPE\", _this.database_DBTYPE.el.get_text());\n   js.set_string_member(\"DBNAME\", _this.database_DBNAME.el.get_text());\n    js.set_string_member(\"DBUSERNAME\", _this.database_DBUSERNAME.el.get_text());\n    js.set_string_member(\"DBPASSWORD\", _this.database_DBPASSWORD.el.get_text());\n//    _this.project.set_string_member(\"DBHOST\", _this.DBTYPE.el.get_text());    \n    \n    // need to re-init the database \n    \n    _this.project.initRooDatabase();\n     \n    \n}",
16    "$ xns" : "Gtk",
17    "Project.Project project" : "",
18    "items" : [
19     {
20      "@ void buttonPressed" : "(string btn)",
21      "id" : "ProjectSettings",
22      "| void show" : " (Project.Project project) {\n    _this.project = project;\n    _this.path.el.label = project.firstPath();\n    // get the active project.\n     var lm = Gtk.SourceLanguageManager.get_default();\n                \n    ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(\n    \n        lm.get_language(\"html\"));\n  \n    //print (project.fn);\n    //project.runhtml = project.runhtml || '';\n    _this.view.el.get_buffer().set_text(project.runhtml);\n    \n       \n    _this.rootURL.el.set_text( _this.project.rootURL );\n    _this.base_template.el.set_text(_this.project.base_template);    \n     var js = _this.project;\n    _this.database_DBTYPE.el.set_text(     js.get_string_member(\"DBTYPE\") );\n    _this.database_DBNAME.el.set_text(    js.get_string_member(\"DBNAME\") );\n    _this.database_DBUSERNAME.el.set_text(    js.get_string_member(\"DBUSERNAME\") );\n    _this.database_DBPASSWORD.el.set_text(    js.get_string_member(\"DBPASSWORD\") );\n    //this.el.show_all();\n}\n",
23      "# Project.Project project" : "",
24      "xtype" : "Box",
25      "| void save" : "() {\n   var buf =    _this.view.el.get_buffer();\n   Gtk.TextIter s;\n     Gtk.TextIter e;\n    buf.get_start_iter(out s);\n    buf.get_end_iter(out e);\n      _this.project.runhtml = buf.get_text(s,e,true);\n      \n    _this.project.rootURL = _this.rootURL.el.get_text();\n    _this.project.base_template = _this.base_template.el.get_text();    \n    \n    var js = _this.project.json_project_data;\n    js.set_string_member(\"DBTYPE\", _this.database_DBTYPE.el.get_text());\n   js.set_string_member(\"DBNAME\", _this.database_DBNAME.el.get_text());\n    js.set_string_member(\"DBUSERNAME\", _this.database_DBUSERNAME.el.get_text());\n    js.set_string_member(\"DBPASSWORD\", _this.database_DBPASSWORD.el.get_text());\n//    _this.project.set_string_member(\"DBHOST\", _this.DBTYPE.el.get_text());    \n    \n    // need to re-init the database \n    \n    _this.project.initRooDatabase();\n     \n    \n}",
26      "$ xns" : "Gtk",
27      "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
28      "border_width" : 5,
29      "$ homogeneous" : false,
30      "items" : [
31       {
32        "* pack" : "pack_start,false,false,0",
33        "xtype" : "Box",
34        "gboolean expand" : false,
35        "$ xns" : "Gtk",
36        "Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL",
37        "$ homogeneous" : true,
38        "gboolean vexpand" : false,
39        "items" : [
40         {
41          "listeners" : {
42           "button_press_event" : "() => {\n    _this.save();\n          \n    _this.buttonPressed(\"apply\");\n        return false;\n}"
43          },
44          "label" : "Apply",
45          "* pack" : "add",
46          "xtype" : "Button",
47          "$ xns" : "Gtk"
48         },
49         {
50          "listeners" : {
51           "button_press_event" : "() => {\n       _this.save();\n          \n    _this.buttonPressed(\"save\");\n        return false;\n}"
52          },
53          "label" : "Save",
54          "* pack" : "add",
55          "xtype" : "Button",
56          "$ xns" : "Gtk"
57         }
58        ]
59       },
60       {
61        "* pack" : "pack_end,true,true,0",
62        "xtype" : "Notebook",
63        "$ xns" : "Gtk",
64        "items" : [
65         {
66          "id" : "label_global",
67          "xtype" : "Label",
68          "* pack" : false,
69          "$ xns" : "Gtk",
70          "utf8 label" : "Global"
71         },
72         {
73          "id" : "label_database",
74          "* pack" : false,
75          "xtype" : "Label",
76          "$ xns" : "Gtk",
77          "utf8 label" : "Database"
78         },
79         {
80          "* pack" : "append_page,_this.label_global.el",
81          "xtype" : "Box",
82          "gboolean homogeneous" : false,
83          "$ xns" : "Gtk",
84          "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
85          "items" : [
86           {
87            "label" : "filename",
88            "id" : "path",
89            "xalign" : 0,
90            "* pack" : "pack_start,false,false,0",
91            "xtype" : "Label",
92            "gint margin" : 3,
93            "$ xns" : "Gtk"
94           },
95           {
96            "* pack" : "pack_start,false,false,0",
97            "xtype" : "Box",
98            "gboolean expand" : false,
99            "$ xns" : "Gtk",
100            "Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL",
101            "$ homogeneous" : false,
102            "items" : [
103             {
104              "label" : "HTML template file",
105              "xtype" : "Label",
106              "* pack" : "pack_start,false,false,0",
107              "gint margin" : 3,
108              "$ xns" : "Gtk"
109             },
110             {
111              "id" : "base_template",
112              "xtype" : "Entry",
113              "* pack" : "add",
114              "$ xns" : "Gtk"
115             }
116            ]
117           },
118           {
119            "* pack" : "pack_start,false,false,0",
120            "xtype" : "Box",
121            "gboolean expand" : false,
122            "$ xns" : "Gtk",
123            "Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL",
124            "$ homogeneous" : false,
125            "items" : [
126             {
127              "label" : "root URL",
128              "xtype" : "Label",
129              "* pack" : "pack_start,false,false,0",
130              "gint margin" : 3,
131              "$ xns" : "Gtk"
132             },
133             {
134              "id" : "rootURL",
135              "xtype" : "Entry",
136              "* pack" : "add",
137              "$ xns" : "Gtk"
138             }
139            ]
140           },
141           {
142            "label" : "HTML To insert at end of <HEAD>",
143            "xtype" : "Label",
144            "* pack" : "pack_start,false,false,0",
145            "$ xns" : "Gtk"
146           },
147           {
148            "* pack" : "pack_start,true,true,0",
149            "xtype" : "ScrolledWindow",
150            "$ xns" : "Gtk",
151            "items" : [
152             {
153              "listeners" : {
154               "key_release_event" : " ( event) =>{\n    if (event.keyval != 115) {\n        return false;\n         \n    }\n    if   ( (event.state & Gdk.ModifierType.CONTROL_MASK ) < 1 ) {\n        return false;\n    }\n     var buf =    this.el.get_buffer();\n    Gtk.TextIter s;\n    Gtk.TextIter e;\n    buf.get_start_iter(out s);\n    buf.get_end_iter(out e);\n    _this.project.runhtml = buf.get_text(s,e,true);\n    \n          \n    _this.buttonPressed(\"save\");\n     \n    return false;\n         \n}"
155              },
156              "id" : "view",
157              "* init" : " \n    var description =   Pango.FontDescription.from_string(\"monospace\");\n    description.set_size(9000);\n    this.el.override_font(description);",
158              "xtype" : "View",
159              "* pack" : "add",
160              "$ xns" : "GtkSource"
161             }
162            ]
163           }
164          ]
165         },
166         {
167          "* pack" : "append_page,_this.label_database.el",
168          "xtype" : "Box",
169          "gboolean homogeneous" : false,
170          "$ xns" : "Gtk",
171          "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
172          "items" : [
173           {
174            "label" : "Type (eg. MySQL or PostgreSQL)",
175            "xalign" : 0,
176            "* pack" : "pack_start,false,false,0",
177            "xtype" : "Label",
178            "$ xns" : "Gtk"
179           },
180           {
181            "listeners" : {
182             "key_press_event" : "(ev) => {\n\n    if (ev.keyval == Gdk.Key.Tab) {\n        _this.database_DBNAME.el.grab_focus();\n        return true;\n    }\n\n\n    return false;\n}\n"
183            },
184            "id" : "database_DBTYPE",
185            "* pack" : "pack_start,false,false,0",
186            "xtype" : "Entry",
187            "$ xns" : "Gtk"
188           },
189           {
190            "label" : "Name",
191            "xalign" : 0,
192            "* pack" : "pack_start,false,false,0",
193            "xtype" : "Label",
194            "$ xns" : "Gtk"
195           },
196           {
197            "listeners" : {
198             "key_press_event" : "(ev) => {\n\n    if (ev.keyval == Gdk.Key.Tab) {\n        _this.database_DBUSERNAME.el.grab_focus();\n        return true;\n    }\n\n\n    return false;\n}\n"
199            },
200            "id" : "database_DBNAME",
201            "xtype" : "Entry",
202            "* pack" : "pack_start,false,false,0",
203            "$ xns" : "Gtk"
204           },
205           {
206            "label" : "Username",
207            "xalign" : 0,
208            "* pack" : "pack_start,false,false,0",
209            "xtype" : "Label",
210            "$ xns" : "Gtk"
211           },
212           {
213            "listeners" : {
214             "key_press_event" : "(ev) => {\n\n    if (ev.keyval == Gdk.Key.Tab) {\n        _this.database_DBPASSWORD.el.grab_focus();\n        return true;\n    }\n\n\n    return false;\n}\n"
215            },
216            "id" : "database_DBUSERNAME",
217            "* pack" : "pack_start,false,false,0",
218            "xtype" : "Entry",
219            "$ xns" : "Gtk"
220           },
221           {
222            "label" : "Password",
223            "xalign" : 0,
224            "* pack" : "pack_start,false,false,0",
225            "xtype" : "Label",
226            "$ xns" : "Gtk"
227           },
228           {
229            "id" : "database_DBPASSWORD",
230            "xtype" : "Entry",
231            "* pack" : "pack_start,false,false,0",
232            "$ xns" : "Gtk"
233           },
234           {
235            "listeners" : {
236             "clicked" : "() => {\n\n\n  _this.database_ERROR.el.label    = \"\";\n    Gda.Connection cnc;\n    try {\n        // assumes localhost...\n         cnc = Gda.Connection.open_from_string (\n\t\t\t_this.database_DBTYPE.el.get_text(),\n\t\t\t\"DB_NAME=\" + _this.database_DBNAME.el.get_text(), \n\t\t\t\"USERNAME=\" + _this.database_DBUSERNAME.el.get_text() + \n\t\t\t\";PASSWORD=\" + _this.database_DBPASSWORD.el.get_text(),\n\t\t\tGda.ConnectionOptions.NONE\n\t\t);\n   //} catch (Gda.ConnectionError ce) { \n   //   _this.database_ERROR.el.label = ce.message;        \n   } catch(Gda.ConnectionError ue) {\n      _this.database_ERROR.el.label = ue.message;\n        return;\n   }  catch(Gda.ConfigError ue) {\n      _this.database_ERROR.el.label = ue.message;\n        return;\n   }\n  _this.database_ERROR.el.label = \"Connection Succeeded\";\n   cnc.close();\n}"
237            },
238            "* pack" : "pack_start,false,false,0",
239            "xtype" : "Button",
240            "$ xns" : "Gtk",
241            "utf8 label" : "Check Connection"
242           },
243           {
244            "label" : " ",
245            "id" : "database_ERROR",
246            "xalign" : 0,
247            "* pack" : "pack_start,false,false,0",
248            "xtype" : "Label",
249            "gint margin" : 3,
250            "$ xns" : "Gtk"
251           }
252          ]
253         }
254        ]
255       }
256      ]
257     }
258    ]
259   }
260  ]
261 }