820e0d894555f9b63d2a873c31aa3db7a9bb68ec
[app.Builder.js] / src / Builder4 / PopoverFileDetails.bjs
1 {
2  "name" : "PopoverFileDetails",
3  "parent" : "",
4  "title" : "",
5  "path" : "/home/alan/gitlive/app.Builder.js/src/Builder4/PopoverFileDetails.bjs",
6  "permname" : "",
7  "modOrder" : "",
8  "build_module" : "builder",
9  "items" : [
10   {
11    "listeners" : {
12     "closed" : "() => {\n  if (!this.done) {\n    _this.el.show();\n  \n  }\n}"
13    },
14    "|   void updateFileFromEntry" : "() {\n\n        _this.file.title = _this.title.el.get_text();\n        _this.file.region = _this.region.el.get_text();            \n        _this.file.parent = _this.parent.el.get_text();                        \n        _this.file.permname = _this.permname.el.get_text();                                    \n        _this.file.modOrder = _this.modOrder.el.get_text();\n        \n        if (_this.file.name.length  > 0 && _this.file.name != _this.name.el.get_text()) {\n            _this.file.renameTo(_this.name.el.get_text());\n        }\n        // store the module...\n        _this.file.build_module = \"\";        \n         Gtk.TreeIter iter; \n        if (_this.build_module.el.get_active_iter (out iter)) {\n             Value vfname;\n             this.dbmodel.el.get_value (iter, 0, out vfname);\n             if (((string)vfname).length > 0) {\n                 _this.file.build_module = (string)vfname;\n             }\n    \n        }\n        \n        \n\n                                                    \n}    ",
15    "id" : "PopoverFileDetails",
16    "@ void success" : "(Project.Project pr, JsRender.JsRender file)",
17    "| void show" : "(JsRender.JsRender c, Gtk.Widget btn) \n{\n    this.project = c.project;\n    this.done = false;\n    \n    \n    //if (!this.el) {\n        //this.init();\n     //}\n    \n    _this.name.el.set_text(c.name);\n    _this.title.el.set_text(c.title);\n    _this.parent.el.set_text(c.parent);    \n    _this.region.el.set_text(c.region);\n    _this.modOrder.el.set_text(c.modOrder);\n     _this.permname.el.set_text(c.permname);\n    \n    if (c.path.length > 0) {\n    \n        this.save_btn.el.set_label(\"Save\");\n    } else {\n        this.save_btn.el.set_label(\"Create\");\n    }\n    \n     var ar = new Gee.ArrayList<string>();\n     _this.dbmodel.loadData(ar,\"\");\n    // load the modules... if relivant..\n    if (this.project.xtype == \"Gtk\") {\n        var p = (Project.Gtk)c.project;\n          var cg = p.compilegroups;\n\n        var iter = cg.map_iterator();\n       while(iter.next()) {\n            var key = iter.get_key();\n            if (key == \"_default_\") {\n                continue;\n            }\n            ar.add(key);\n        };\n        _this.dbmodel.loadData(ar, c.build_module);\n\n    }\n    \n     \n    _this.file = c;\n    //console.log('show all');\n   this.el.set_modal(true);\n    this.el.set_relative_to(btn);\n\n    this.el.set_position(Gtk.PositionType.RIGHT);\n    \n    // window + header?\n     print(\"SHOWALL - POPIP\\n\");\n    this.el.show_all();\n    this.name.el.grab_focus();\n    \n    //this.success = c.success;\n    \n    \n}",
18    "bool done" : false,
19    "# Project.Project project" : "",
20    "xtype" : "Popover",
21    "Gtk.PositionType position" : "Gtk.PositionType.RIGHT",
22    "# JsRender.JsRender file" : "null",
23    "$ xns" : "Gtk",
24    "Xcls_MainWindow mainwindow" : "null",
25    "bool modal" : true,
26    "uint border_width" : 0,
27    "items" : [
28     {
29      "bool homogeneous" : false,
30      "$ pack" : "add",
31      "xtype" : "VBox",
32      "$ xns" : "Gtk",
33      "items" : [
34       {
35        "* pack" : "pack_start,false,true,0",
36        "xtype" : "HeaderBar",
37        "$ xns" : "Gtk",
38        "string title" : "Add / Edit File"
39       },
40       {
41        "* pack" : "pack_start,false,false,4",
42        "xtype" : "Table",
43        "n_columns" : 2,
44        "$ xns" : "Gtk",
45        "n_rows" : 3,
46        "$ homogeneous" : true,
47        "items" : [
48         {
49          "label" : "Component Name",
50          "xalign" : 0.90000000000000002,
51          "* pack" : "attach_defaults,0,1,0,1",
52          "xtype" : "Label",
53          "$ justify" : "Gtk.Justification.RIGHT",
54          "x_options" : 4,
55          "$ xns" : "Gtk"
56         },
57         {
58          "id" : "name",
59          "$ visible" : true,
60          "xtype" : "Entry",
61          "* pack" : "attach_defaults,1,2,0,1",
62          "$ xns" : "Gtk"
63         },
64         {
65          "label" : "Title",
66          "$ visible" : true,
67          "xalign" : 0.90000000000000002,
68          "* pack" : "attach_defaults,0,1,1,2",
69          "xtype" : "Label",
70          "$ justify" : "Gtk.Justification.RIGHT",
71          "x_options" : 4,
72          "$ xns" : "Gtk"
73         },
74         {
75          "id" : "title",
76          "$ visible" : true,
77          "xtype" : "Entry",
78          "* pack" : "attach_defaults,1,2,1,2",
79          "$ xns" : "Gtk"
80         },
81         {
82          "label" : "Region",
83          "tooltip_text" : "center, north, south, east, west",
84          "$ visible" : true,
85          "xalign" : 0.90000000000000002,
86          "* pack" : "attach_defaults,0,1,2,3",
87          "xtype" : "Label",
88          "$ justify" : "Gtk.Justification.RIGHT",
89          "x_options" : 4,
90          "$ xns" : "Gtk"
91         },
92         {
93          "id" : "region",
94          "$ visible" : true,
95          "xtype" : "Entry",
96          "* pack" : "attach_defaults,1,2,2,3",
97          "$ xns" : "Gtk"
98         },
99         {
100          "label" : "Parent Name",
101          "$ visible" : true,
102          "xalign" : 0.90000000000000002,
103          "* pack" : "attach_defaults,0,1,3,4",
104          "xtype" : "Label",
105          "$ justify" : "Gtk.Justification.RIGHT",
106          "x_options" : 4,
107          "$ xns" : "Gtk"
108         },
109         {
110          "id" : "parent",
111          "$ visible" : true,
112          "xtype" : "Entry",
113          "* pack" : "attach_defaults,1,2,3,4",
114          "$ xns" : "Gtk"
115         },
116         {
117          "label" : "Permission Name",
118          "$ visible" : true,
119          "xalign" : 0.90000000000000002,
120          "* pack" : "attach_defaults,0,1,4,5",
121          "xtype" : "Label",
122          "$ justify" : "Gtk.Justification.RIGHT",
123          "x_options" : 4,
124          "$ xns" : "Gtk"
125         },
126         {
127          "id" : "permname",
128          "$ visible" : true,
129          "xtype" : "Entry",
130          "* pack" : "attach_defaults,1,2,4,5",
131          "$ xns" : "Gtk"
132         },
133         {
134          "label" : "Order (for tabs)",
135          "$ visible" : true,
136          "xalign" : 0.90000000000000002,
137          "* pack" : "attach_defaults,0,1,5,6",
138          "xtype" : "Label",
139          "$ justify" : "Gtk.Justification.RIGHT",
140          "x_options" : 4,
141          "$ xns" : "Gtk"
142         },
143         {
144          "id" : "modOrder",
145          "$ visible" : true,
146          "xtype" : "Entry",
147          "* pack" : "attach_defaults,1,2,5,6",
148          "$ xns" : "Gtk"
149         },
150         {
151          "label" : "Module to build (Vala only)",
152          "$ visible" : true,
153          "xalign" : 0.90000000000000002,
154          "* pack" : "attach_defaults,0,1,6,7",
155          "xtype" : "Label",
156          "$ justify" : "Gtk.Justification.RIGHT",
157          "x_options" : 4,
158          "$ xns" : "Gtk"
159         },
160         {
161          "id" : "build_module",
162          "* init" : "this.el.add_attribute(_this.dbcellrenderer.el , \"markup\", 1 );",
163          "* pack" : "attach_defaults,1,2,6,7",
164          "xtype" : "ComboBox",
165          "$ xns" : "Gtk",
166          "items" : [
167           {
168            "id" : "dbcellrenderer",
169            "* pack" : "pack_start,true",
170            "xtype" : "CellRendererText",
171            "$ xns" : "Gtk"
172           },
173           {
174            "id" : "dbmodel",
175            "* pack" : "set_model",
176            "xtype" : "ListStore",
177            "$ columns" : "typeof(string),typeof(string)",
178            "n_columns" : 2,
179            "$ xns" : "Gtk",
180            "| void loadData" : "  (Gee.ArrayList<string> data, string cur) {\n    this.el.clear();                                    \n    Gtk.TreeIter iter;\n    var el = this.el;\n    \n   /// el.append(out iter);\n    \n     \n   // el.set_value(iter, 0, \"\");\n   // el.set_value(iter, 1, \"aaa  - Just add Element - aaa\");\n\n    el.append(out iter);\n\n    \n    el.set_value(iter, 0, \"\");\n    el.set_value(iter, 1, \"-- select a module --\");\n    _this.build_module.el.set_active_iter(iter);\n    \n    for (var i = 0; i < data.size;i++) {\n    \n\n        el.append(out iter);\n        \n        el.set_value(iter, 0, data.get(i));\n        el.set_value(iter, 1, data.get(i));\n        \n        if (data.get(i) == cur) {\n            _this.build_module.el.set_active_iter(iter);\n        }\n        \n    }\n     this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          \n                                     \n}\n"
181           }
182          ]
183         }
184        ]
185       },
186       {
187        "* pack" : "pack_end,false,true,0",
188        "xtype" : "HButtonBox",
189        "$ xns" : "Gtk",
190        "items" : [
191         {
192          "listeners" : {
193           "clicked" : "() => { \n\n  _this.done = true;\n    _this.el.hide(); \n}"
194          },
195          "string label" : "Cancel",
196          "* pack" : "add",
197          "xtype" : "Button",
198          "$ xns" : "Gtk"
199         },
200         {
201          "listeners" : {
202           "clicked" : " ( ) =>  { \n  \n\t \n\n\n        if (_this.name.el.get_text().length  < 1) {\n            StandardErrorDialog.show(\n                _this.mainwindow.el,\n                \"You have to set Component name \"\n            );\n             \n            return;\n        }\n        // what does this do?\n        \n        var isNew = _this.file.name.length  > 0 ? false : true;\n        /*\n        if (!isNew && this.file.name != _this.name.el.get_text()) {\n            Xcls_StandardErrorDialog.singleton().show(\n                this.el,\n                \"Sorry changing names does not work yet. \"\n            );\n             \n            return;\n        }\n        */\n         \n        \n      \n        // FIXME - this may be more complicated...\n        //for (var i in this.def) {\n        //    this.file[i] =  this.get(i).el.get_text();\n        //}\n\n        if (!isNew) {\n            try {\n                 _this.updateFileFromEntry();\n             } catch( JsRender.Error.RENAME_FILE_EXISTS er) {\n                  Xcls_StandardErrorDialog.singleton().show(\n                    _this.mainwindow.el,\n                    \"The name you used already exists \"\n                );\n                return;\n                 \n             }\n                                                        \n              _this.done = true;\n            _this.file.save();\n            _this.el.hide();\n            return;\n        }\n        var fn = _this.name.el.get_text();\n        var dir = _this.project.firstPath();\n       \n        if (GLib.FileUtils.test(dir + \"/\" + fn + \".bjs\", GLib.FileTest.EXISTS)) {\n            Xcls_StandardErrorDialog.singleton().show(\n                _this.mainwindow.el,\n                \"That file already exists\"\n            ); \n            return;\n        }\n       \n       var f =  JsRender.JsRender.factory(\n                _this.file.project.xtype,  \n                _this.file.project, \n                dir + \"/\" + fn + \".bjs\");\n\n        _this.file = f;\n        \n\n        \n        _this.updateFileFromEntry();\n        _this.file.save();\n        _this.file.project.addFile(_this.file);\n        \n\t \n        // what about .js ?\n       _this.done = true;\n        _this.el.hide();\n \n        \n        \n        _this.success(_this.project, _this.file);\n       \n}"
203          },
204          "id" : "save_btn",
205          "* pack" : "add",
206          "xtype" : "Button",
207          "string label" : "Save",
208          "$ xns" : "Gtk"
209         }
210        ]
211       }
212      ]
213     }
214    ]
215   }
216  ]
217 }