src/Builder4/DialogNewComponent.bjs
[app.Builder.js] / src / Builder4 / DialogNewComponent.bjs
1 {
2  "name" : "DialogNewComponent",
3  "parent" : "",
4  "title" : "",
5  "path" : "/home/alan/gitlive/app.Builder.js/src/Builder4/DialogNewComponent.bjs",
6  "permname" : "",
7  "modOrder" : "",
8  "items" : [
9   {
10    "listeners" : {
11     "delete_event" : "(self, event) => {\n    this.el.hide();\n    return true; \n    //test  \n}\n ",
12     "response" : " (self, response_id) =>  { \n  \n\tif (response_id < 1) { // cancel!\n            this.el.hide();\n            return;\n        }\n\n\n\n        if (_this.name.el.get_text().length  < 1) {\n            StandardErrorDialog.show(\n                this.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.el,\n                    \"The name you used already exists \"\n                );\n                return;\n                 \n             }\n                                                        \n        \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.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       \n        this.el.hide();\n        \n        \n        //var tmpl = this.project.loadFileOnly(DialogNewComponent.get('template').getValue());\n         \n        //var nf = _this.project.create(dir + \"/\" + _this.file.name + \".bjs\");\n        //for (var i in this.file) {\n        //    nf[i] = this.file[i];\n        //}\n        _this.success(_this.project, _this.file);\n        /*\n\n        -- fixme -- needs to be a signal..\n        if (DialogNewComponent.success != null) {\n            DialogNewComponent.success(_this.project, nf);\n        }\n        */\n}",
13     "show" : "(self)  => {\n  this.el.show_all();\n  //test\n}"
14    },
15    "|   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}    ",
16    "id" : "DialogNewComponent",
17    "@ void success" : "(Project.Project pr, JsRender.JsRender file)",
18    "default_width" : 500,
19    "$ deletable" : true,
20    "# Project.Project project" : "",
21    "title" : "New Component",
22    "xtype" : "Dialog",
23    "|   void show" : "(JsRender.JsRender c) \n{\n    this.project = c.project;\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        this.el.set_title(\"Edit File Details - \" + c.name);\n    } else {\n        this.el.set_title(\"Create New File\");\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);\n\n    }\n    \n     \n    _this.file = c;\n    //console.log('show all');\n    this.el.show_all();\n    \n    //this.success = c.success;\n    \n    \n}",
24    "# JsRender.JsRender file" : "null",
25    "default_height" : 200,
26    "$ modal" : true,
27    "$ xns" : "Gtk",
28    "items" : [
29     {
30      "xtype" : "VBox",
31      "$ pack" : "get_content_area().add",
32      "$ xns" : "Gtk",
33      "items" : [
34       {
35        "* pack" : "pack_start,false,false,0",
36        "xtype" : "Table",
37        "n_columns" : 2,
38        "$ xns" : "Gtk",
39        "n_rows" : 3,
40        "$ homogeneous" : true,
41        "items" : [
42         {
43          "label" : "Component Name",
44          "xalign" : 0.90000000000000002,
45          "* pack" : "attach_defaults,0,1,0,1",
46          "xtype" : "Label",
47          "$ justify" : "Gtk.Justification.RIGHT",
48          "x_options" : 4,
49          "$ xns" : "Gtk"
50         },
51         {
52          "id" : "name",
53          "$ visible" : true,
54          "xtype" : "Entry",
55          "* pack" : "attach_defaults,1,2,0,1",
56          "$ xns" : "Gtk"
57         },
58         {
59          "label" : "Title",
60          "$ visible" : true,
61          "xalign" : 0.90000000000000002,
62          "* pack" : "attach_defaults,0,1,1,2",
63          "xtype" : "Label",
64          "$ justify" : "Gtk.Justification.RIGHT",
65          "x_options" : 4,
66          "$ xns" : "Gtk"
67         },
68         {
69          "id" : "title",
70          "$ visible" : true,
71          "xtype" : "Entry",
72          "* pack" : "attach_defaults,1,2,1,2",
73          "$ xns" : "Gtk"
74         },
75         {
76          "label" : "Region",
77          "$ visible" : true,
78          "tooltip_text" : "center, north, south, east, west",
79          "xalign" : 0.90000000000000002,
80          "* pack" : "attach_defaults,0,1,2,3",
81          "xtype" : "Label",
82          "$ justify" : "Gtk.Justification.RIGHT",
83          "x_options" : 4,
84          "$ xns" : "Gtk"
85         },
86         {
87          "id" : "region",
88          "$ visible" : true,
89          "xtype" : "Entry",
90          "* pack" : "attach_defaults,1,2,2,3",
91          "$ xns" : "Gtk"
92         },
93         {
94          "label" : "Parent Name",
95          "$ visible" : true,
96          "xalign" : 0.90000000000000002,
97          "* pack" : "attach_defaults,0,1,3,4",
98          "xtype" : "Label",
99          "$ justify" : "Gtk.Justification.RIGHT",
100          "x_options" : 4,
101          "$ xns" : "Gtk"
102         },
103         {
104          "id" : "parent",
105          "$ visible" : true,
106          "xtype" : "Entry",
107          "* pack" : "attach_defaults,1,2,3,4",
108          "$ xns" : "Gtk"
109         },
110         {
111          "label" : "Permission Name",
112          "$ visible" : true,
113          "xalign" : 0.90000000000000002,
114          "* pack" : "attach_defaults,0,1,4,5",
115          "xtype" : "Label",
116          "$ justify" : "Gtk.Justification.RIGHT",
117          "x_options" : 4,
118          "$ xns" : "Gtk"
119         },
120         {
121          "id" : "permname",
122          "$ visible" : true,
123          "xtype" : "Entry",
124          "* pack" : "attach_defaults,1,2,4,5",
125          "$ xns" : "Gtk"
126         },
127         {
128          "label" : "Order (for tabs)",
129          "$ visible" : true,
130          "xalign" : 0.90000000000000002,
131          "* pack" : "attach_defaults,0,1,5,6",
132          "xtype" : "Label",
133          "$ justify" : "Gtk.Justification.RIGHT",
134          "x_options" : 4,
135          "$ xns" : "Gtk"
136         },
137         {
138          "id" : "modOrder",
139          "$ visible" : true,
140          "xtype" : "Entry",
141          "* pack" : "attach_defaults,1,2,5,6",
142          "$ xns" : "Gtk"
143         },
144         {
145          "label" : "Module to build (Vala only)",
146          "$ visible" : true,
147          "xalign" : 0.90000000000000002,
148          "* pack" : "attach_defaults,0,1,6,7",
149          "xtype" : "Label",
150          "$ justify" : "Gtk.Justification.RIGHT",
151          "x_options" : 4,
152          "$ xns" : "Gtk"
153         },
154         {
155          "id" : "build_module",
156          "* init" : "this.el.add_attribute(_this.dbcellrenderer.el , \"markup\", 1 );",
157          "* pack" : "attach_defaults,1,2,6,7",
158          "xtype" : "ComboBox",
159          "$ xns" : "Gtk",
160          "items" : [
161           {
162            "id" : "dbcellrenderer",
163            "xtype" : "CellRendererText",
164            "* pack" : "pack_start,true",
165            "$ xns" : "Gtk"
166           },
167           {
168            "id" : "dbmodel",
169            "xtype" : "ListStore",
170            "* pack" : "set_model",
171            "$ columns" : "typeof(string),typeof(string)",
172            "n_columns" : 2,
173            "$ xns" : "Gtk",
174            "| void loadData" : "  (Gee.ArrayList<string> data) {\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    \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    }\n     this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          \n                                     \n}\n"
175           }
176          ]
177         }
178        ]
179       }
180      ]
181     },
182     {
183      "label" : "Cancel",
184      "xtype" : "Button",
185      "* pack" : "add_action_widget,0",
186      "$ xns" : "Gtk"
187     },
188     {
189      "label" : "OK",
190      "xtype" : "Button",
191      "* pack" : "add_action_widget,1",
192      "$ xns" : "Gtk"
193     }
194    ]
195   }
196  ]
197 }