src/Builder4/PopoverProperty.bjs
authorAlan Knowles <alan@roojs.com>
Fri, 29 May 2015 09:34:33 +0000 (17:34 +0800)
committerAlan Knowles <alan@roojs.com>
Fri, 29 May 2015 09:34:33 +0000 (17:34 +0800)
src/Builder4/PopoverProperty.vala

src/Builder4/PopoverProperty.bjs
src/Builder4/PopoverProperty.vala [new file with mode: 0644]

index 3e58a0e..e6cfb9e 100644 (file)
@@ -7,5 +7,218 @@
  "modOrder" : "",
  "build_module" : "",
  "items" : [
+  {
+   "listeners" : {
+    "closed" : "() => {\n  if (!this.done) {\n    _this.el.show();\n  \n  }\n} "
+   },
+   "|   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}    ",
+   "@ void success" : "(Project.Project pr, JsRender.JsRender file)",
+   "id" : "PopoverFileDetails",
+   "| 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}",
+   "bool done" : false,
+   "# Project.Project project" : "",
+   "xtype" : "Popover",
+   "Gtk.PositionType position" : "Gtk.PositionType.RIGHT",
+   "# JsRender.JsRender file" : "null",
+   "$ xns" : "Gtk",
+   "Xcls_MainWindow mainwindow" : "null",
+   "bool modal" : true,
+   "uint border_width" : 0,
+   "items" : [
+    {
+     "bool homogeneous" : false,
+     "xtype" : "Box",
+     "$ pack" : "add",
+     "$ xns" : "Gtk",
+     "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
+     "items" : [
+      {
+       "* pack" : "pack_start,false,true,0",
+       "xtype" : "HeaderBar",
+       "$ xns" : "Gtk",
+       "string title" : "Add / Edit File"
+      },
+      {
+       "int margin_right" : 4,
+       "xtype" : "Table",
+       "* pack" : "pack_start,false,false,4",
+       "uint row_spacing" : 2,
+       "n_columns" : 2,
+       "$ xns" : "Gtk",
+       "n_rows" : 3,
+       "$ homogeneous" : true,
+       "int margin_left" : 4,
+       "items" : [
+        {
+         "label" : "Component Name",
+         "xalign" : 0.90000000000000002,
+         "* pack" : "attach_defaults,0,1,0,1",
+         "xtype" : "Label",
+         "$ justify" : "Gtk.Justification.RIGHT",
+         "x_options" : 4,
+         "$ xns" : "Gtk"
+        },
+        {
+         "id" : "name",
+         "$ visible" : true,
+         "xtype" : "Entry",
+         "* pack" : "attach_defaults,1,2,0,1",
+         "$ xns" : "Gtk"
+        },
+        {
+         "label" : "Title",
+         "$ visible" : true,
+         "xalign" : 0.90000000000000002,
+         "* pack" : "attach_defaults,0,1,1,2",
+         "xtype" : "Label",
+         "$ justify" : "Gtk.Justification.RIGHT",
+         "x_options" : 4,
+         "$ xns" : "Gtk"
+        },
+        {
+         "id" : "title",
+         "$ visible" : true,
+         "xtype" : "Entry",
+         "* pack" : "attach_defaults,1,2,1,2",
+         "$ xns" : "Gtk"
+        },
+        {
+         "label" : "Region",
+         "$ visible" : true,
+         "tooltip_text" : "center, north, south, east, west",
+         "xalign" : 0.90000000000000002,
+         "* pack" : "attach_defaults,0,1,2,3",
+         "xtype" : "Label",
+         "$ justify" : "Gtk.Justification.RIGHT",
+         "x_options" : 4,
+         "$ xns" : "Gtk"
+        },
+        {
+         "id" : "region",
+         "$ visible" : true,
+         "xtype" : "Entry",
+         "* pack" : "attach_defaults,1,2,2,3",
+         "$ xns" : "Gtk"
+        },
+        {
+         "label" : "Parent Name",
+         "$ visible" : true,
+         "xalign" : 0.90000000000000002,
+         "* pack" : "attach_defaults,0,1,3,4",
+         "xtype" : "Label",
+         "$ justify" : "Gtk.Justification.RIGHT",
+         "x_options" : 4,
+         "$ xns" : "Gtk"
+        },
+        {
+         "id" : "parent",
+         "$ visible" : true,
+         "xtype" : "Entry",
+         "* pack" : "attach_defaults,1,2,3,4",
+         "$ xns" : "Gtk"
+        },
+        {
+         "label" : "Permission Name",
+         "$ visible" : true,
+         "xalign" : 0.90000000000000002,
+         "* pack" : "attach_defaults,0,1,4,5",
+         "xtype" : "Label",
+         "$ justify" : "Gtk.Justification.RIGHT",
+         "x_options" : 4,
+         "$ xns" : "Gtk"
+        },
+        {
+         "id" : "permname",
+         "$ visible" : true,
+         "xtype" : "Entry",
+         "* pack" : "attach_defaults,1,2,4,5",
+         "$ xns" : "Gtk"
+        },
+        {
+         "label" : "Order (for tabs)",
+         "$ visible" : true,
+         "xalign" : 0.90000000000000002,
+         "* pack" : "attach_defaults,0,1,5,6",
+         "xtype" : "Label",
+         "$ justify" : "Gtk.Justification.RIGHT",
+         "x_options" : 4,
+         "$ xns" : "Gtk"
+        },
+        {
+         "id" : "modOrder",
+         "$ visible" : true,
+         "xtype" : "Entry",
+         "* pack" : "attach_defaults,1,2,5,6",
+         "$ xns" : "Gtk"
+        },
+        {
+         "label" : "Module to build (Vala only)",
+         "$ visible" : true,
+         "xalign" : 0.90000000000000002,
+         "* pack" : "attach_defaults,0,1,6,7",
+         "xtype" : "Label",
+         "$ justify" : "Gtk.Justification.RIGHT",
+         "x_options" : 4,
+         "$ xns" : "Gtk"
+        },
+        {
+         "id" : "build_module",
+         "* init" : "this.el.add_attribute(_this.dbcellrenderer.el , \"markup\", 1 );",
+         "* pack" : "attach_defaults,1,2,6,7",
+         "xtype" : "ComboBox",
+         "$ xns" : "Gtk",
+         "items" : [
+          {
+           "id" : "dbcellrenderer",
+           "xtype" : "CellRendererText",
+           "* pack" : "pack_start,true",
+           "$ xns" : "Gtk"
+          },
+          {
+           "id" : "dbmodel",
+           "xtype" : "ListStore",
+           "* pack" : "set_model",
+           "$ columns" : "typeof(string),typeof(string)",
+           "n_columns" : 2,
+           "$ xns" : "Gtk",
+           "| 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"
+          }
+         ]
+        }
+       ]
+      },
+      {
+       "int margin_bottom" : 4,
+       "int margin_right" : 4,
+       "* pack" : "pack_end,false,true,0",
+       "xtype" : "HButtonBox",
+       "$ xns" : "Gtk",
+       "int margin_left" : 4,
+       "items" : [
+        {
+         "listeners" : {
+          "clicked" : "() => { \n\n  _this.done = true;\n    _this.el.hide(); \n}"
+         },
+         "string label" : "Cancel",
+         "* pack" : "add",
+         "xtype" : "Button",
+         "$ xns" : "Gtk"
+        },
+        {
+         "listeners" : {
+          "clicked" : "( ) =>  { \n\n \n\n\n\tif (_this.name.el.get_text().length  < 1) {\n\t    StandardErrorDialog.show(\n\t        _this.mainwindow.el,\n\t        \"You have to set Component name \"\n\t    );\n\t     \n\t    return;\n\t}\n\t// what does this do?\n\t\n\tvar isNew = _this.file.name.length  > 0 ? false : true;\n\t/*\n\tif (!isNew && this.file.name != _this.name.el.get_text()) {\n\t    Xcls_StandardErrorDialog.singleton().show(\n\t        this.el,\n\t        \"Sorry changing names does not work yet. \"\n\t    );\n\t     \n\t    return;\n\t}\n\t*/\n\t \n\t\n  \n\t// FIXME - this may be more complicated...\n\t//for (var i in this.def) {\n\t//    this.file[i] =  this.get(i).el.get_text();\n\t//}\n\n\tif (!isNew) {\n\t    try {\n\t         _this.updateFileFromEntry();\n\t     } catch( JsRender.Error.RENAME_FILE_EXISTS er) {\n\t          Xcls_StandardErrorDialog.singleton().show(\n\t            _this.mainwindow.el,\n\t            \"The name you used already exists \"\n\t        );\n\t        return;\n\t         \n\t     }\n\n\t      _this.done = true;\n\t    _this.file.save();\n\t    _this.el.hide();\n\t    return;\n\t}\n\tvar fn = _this.name.el.get_text();\n\tvar dir = _this.project.firstPath();\n   \n\tif (GLib.FileUtils.test(dir + \"/\" + fn + \".bjs\", GLib.FileTest.EXISTS)) {\n\t    Xcls_StandardErrorDialog.singleton().show(\n\t        _this.mainwindow.el,\n\t        \"That file already exists\"\n\t    ); \n\t    return;\n\t}\n   \n   var f =  JsRender.JsRender.factory(\n\t\t_this.file.project.xtype,  \n\t\t_this.file.project, \n\t\tdir + \"/\" + fn + \".bjs\");\n\n\t_this.file = f;\n\t\n\n\t\n\t_this.updateFileFromEntry();\n\t_this.file.loaded = true;\n\t_this.file.save();\n\t_this.file.project.addFile(_this.file);\n\t\n \n\t// what about .js ?\n   _this.done = true;\n\t_this.el.hide();\n\n\t\n\t\n\t_this.success(_this.project, _this.file);\n   \n}"
+         },
+         "id" : "save_btn",
+         "xtype" : "Button",
+         "* pack" : "add",
+         "string label" : "Save",
+         "$ xns" : "Gtk"
+        }
+       ]
+      }
+     ]
+    }
+   ]
+  }
  ]
 }
\ No newline at end of file
diff --git a/src/Builder4/PopoverProperty.vala b/src/Builder4/PopoverProperty.vala
new file mode 100644 (file)
index 0000000..dc34441
--- /dev/null
@@ -0,0 +1,876 @@
+static Xcls_PopoverFileDetails  _PopoverFileDetails;
+
+public class Xcls_PopoverFileDetails : Object
+{
+    public Gtk.Popover el;
+    private Xcls_PopoverFileDetails  _this;
+
+    public static Xcls_PopoverFileDetails singleton()
+    {
+        if (_PopoverFileDetails == null) {
+            _PopoverFileDetails= new Xcls_PopoverFileDetails();
+        }
+        return _PopoverFileDetails;
+    }
+    public Xcls_name name;
+    public Xcls_title title;
+    public Xcls_region region;
+    public Xcls_parent parent;
+    public Xcls_permname permname;
+    public Xcls_modOrder modOrder;
+    public Xcls_build_module build_module;
+    public Xcls_dbcellrenderer dbcellrenderer;
+    public Xcls_dbmodel dbmodel;
+    public Xcls_save_btn save_btn;
+
+        // my vars (def)
+    public signal void success (Project.Project pr, JsRender.JsRender file);
+    public bool done;
+    public Project.Project project;
+    public JsRender.JsRender file;
+    public Xcls_MainWindow mainwindow;
+
+    // ctor
+    public Xcls_PopoverFileDetails()
+    {
+        _this = this;
+        this.el = new Gtk.Popover( null );
+
+        // my vars (dec)
+        this.done = false;
+        this.file = null;
+        this.mainwindow = null;
+
+        // set gobject values
+        this.el.border_width = 0;
+        this.el.modal = true;
+        this.el.position = Gtk.PositionType.RIGHT;
+        var child_0 = new Xcls_Box2( _this );
+        child_0.ref();
+        this.el.add (  child_0.el  );
+
+        //listeners
+        this.el.closed.connect( () => {
+          if (!this.done) {
+            _this.el.show();
+          
+          }
+        });
+    }
+
+    // user defined functions
+    public   void updateFileFromEntry () {
+    
+            _this.file.title = _this.title.el.get_text();
+            _this.file.region = _this.region.el.get_text();            
+            _this.file.parent = _this.parent.el.get_text();                        
+            _this.file.permname = _this.permname.el.get_text();                                    
+            _this.file.modOrder = _this.modOrder.el.get_text();
+            
+            if (_this.file.name.length  > 0 && _this.file.name != _this.name.el.get_text()) {
+                _this.file.renameTo(_this.name.el.get_text());
+            }
+            // store the module...
+            _this.file.build_module = "";        
+             Gtk.TreeIter iter; 
+            if (_this.build_module.el.get_active_iter (out iter)) {
+                 Value vfname;
+                 this.dbmodel.el.get_value (iter, 0, out vfname);
+                 if (((string)vfname).length > 0) {
+                     _this.file.build_module = (string)vfname;
+                 }
+        
+            }
+            
+            
+    
+                                                        
+    }
+    public void show (JsRender.JsRender c, Gtk.Widget btn) 
+    {
+        this.project = c.project;
+        this.done = false;
+        
+        
+        //if (!this.el) {
+            //this.init();
+         //}
+        
+        _this.name.el.set_text(c.name);
+        _this.title.el.set_text(c.title);
+        _this.parent.el.set_text(c.parent);    
+        _this.region.el.set_text(c.region);
+        _this.modOrder.el.set_text(c.modOrder);
+         _this.permname.el.set_text(c.permname);
+        
+        if (c.path.length > 0) {
+        
+            this.save_btn.el.set_label("Save");
+        } else {
+            this.save_btn.el.set_label("Create");
+        }
+        
+         var ar = new Gee.ArrayList<string>();
+         _this.dbmodel.loadData(ar,"");
+        // load the modules... if relivant..
+        if (this.project.xtype == "Gtk") {
+            var p = (Project.Gtk)c.project;
+              var cg = p.compilegroups;
+    
+            var iter = cg.map_iterator();
+           while(iter.next()) {
+                var key = iter.get_key();
+                if (key == "_default_") {
+                    continue;
+                }
+                ar.add(key);
+            };
+            _this.dbmodel.loadData(ar, c.build_module);
+    
+        }
+        
+         
+        _this.file = c;
+        //console.log('show all');
+       this.el.set_modal(true);
+        this.el.set_relative_to(btn);
+    
+        this.el.set_position(Gtk.PositionType.RIGHT);
+        
+        // window + header?
+         print("SHOWALL - POPIP\n");
+        this.el.show_all();
+        this.name.el.grab_focus();
+        
+        //this.success = c.success;
+        
+        
+    }
+    public class Xcls_Box2 : Object
+    {
+        public Gtk.Box el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Box2(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.homogeneous = false;
+            var child_0 = new Xcls_HeaderBar3( _this );
+            child_0.ref();
+            this.el.pack_start (  child_0.el , false,true,0 );
+            var child_1 = new Xcls_Table4( _this );
+            child_1.ref();
+            this.el.pack_start (  child_1.el , false,false,4 );
+            var child_2 = new Xcls_HButtonBox21( _this );
+            child_2.ref();
+            this.el.pack_end (  child_2.el , false,true,0 );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_HeaderBar3 : Object
+    {
+        public Gtk.HeaderBar el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_HeaderBar3(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.HeaderBar();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.title = "Add / Edit File";
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_Table4 : Object
+    {
+        public Gtk.Table el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Table4(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Table( 3, 2, true );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.margin_right = 4;
+            this.el.margin_left = 4;
+            this.el.row_spacing = 2;
+            var child_0 = new Xcls_Label5( _this );
+            child_0.ref();
+            this.el.attach_defaults (  child_0.el , 0,1,0,1 );
+            var child_1 = new Xcls_name( _this );
+            child_1.ref();
+            this.el.attach_defaults (  child_1.el , 1,2,0,1 );
+            var child_2 = new Xcls_Label7( _this );
+            child_2.ref();
+            this.el.attach_defaults (  child_2.el , 0,1,1,2 );
+            var child_3 = new Xcls_title( _this );
+            child_3.ref();
+            this.el.attach_defaults (  child_3.el , 1,2,1,2 );
+            var child_4 = new Xcls_Label9( _this );
+            child_4.ref();
+            this.el.attach_defaults (  child_4.el , 0,1,2,3 );
+            var child_5 = new Xcls_region( _this );
+            child_5.ref();
+            this.el.attach_defaults (  child_5.el , 1,2,2,3 );
+            var child_6 = new Xcls_Label11( _this );
+            child_6.ref();
+            this.el.attach_defaults (  child_6.el , 0,1,3,4 );
+            var child_7 = new Xcls_parent( _this );
+            child_7.ref();
+            this.el.attach_defaults (  child_7.el , 1,2,3,4 );
+            var child_8 = new Xcls_Label13( _this );
+            child_8.ref();
+            this.el.attach_defaults (  child_8.el , 0,1,4,5 );
+            var child_9 = new Xcls_permname( _this );
+            child_9.ref();
+            this.el.attach_defaults (  child_9.el , 1,2,4,5 );
+            var child_10 = new Xcls_Label15( _this );
+            child_10.ref();
+            this.el.attach_defaults (  child_10.el , 0,1,5,6 );
+            var child_11 = new Xcls_modOrder( _this );
+            child_11.ref();
+            this.el.attach_defaults (  child_11.el , 1,2,5,6 );
+            var child_12 = new Xcls_Label17( _this );
+            child_12.ref();
+            this.el.attach_defaults (  child_12.el , 0,1,6,7 );
+            var child_13 = new Xcls_build_module( _this );
+            child_13.ref();
+            this.el.attach_defaults (  child_13.el , 1,2,6,7 );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_Label5 : Object
+    {
+        public Gtk.Label el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Label5(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Label( "Component Name" );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.justify = Gtk.Justification.RIGHT;
+            this.el.xalign = 0.900000f;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_name : Object
+    {
+        public Gtk.Entry el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_name(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            _this.name = this;
+            this.el = new Gtk.Entry();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.visible = true;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_Label7 : Object
+    {
+        public Gtk.Label el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Label7(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Label( "Title" );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.justify = Gtk.Justification.RIGHT;
+            this.el.xalign = 0.900000f;
+            this.el.visible = true;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_title : Object
+    {
+        public Gtk.Entry el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_title(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            _this.title = this;
+            this.el = new Gtk.Entry();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.visible = true;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_Label9 : Object
+    {
+        public Gtk.Label el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Label9(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Label( "Region" );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.justify = Gtk.Justification.RIGHT;
+            this.el.xalign = 0.900000f;
+            this.el.tooltip_text = "center, north, south, east, west";
+            this.el.visible = true;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_region : Object
+    {
+        public Gtk.Entry el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_region(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            _this.region = this;
+            this.el = new Gtk.Entry();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.visible = true;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_Label11 : Object
+    {
+        public Gtk.Label el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Label11(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Label( "Parent Name" );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.justify = Gtk.Justification.RIGHT;
+            this.el.xalign = 0.900000f;
+            this.el.visible = true;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_parent : Object
+    {
+        public Gtk.Entry el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_parent(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            _this.parent = this;
+            this.el = new Gtk.Entry();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.visible = true;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_Label13 : Object
+    {
+        public Gtk.Label el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Label13(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Label( "Permission Name" );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.justify = Gtk.Justification.RIGHT;
+            this.el.xalign = 0.900000f;
+            this.el.visible = true;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_permname : Object
+    {
+        public Gtk.Entry el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_permname(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            _this.permname = this;
+            this.el = new Gtk.Entry();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.visible = true;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_Label15 : Object
+    {
+        public Gtk.Label el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Label15(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Label( "Order (for tabs)" );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.justify = Gtk.Justification.RIGHT;
+            this.el.xalign = 0.900000f;
+            this.el.visible = true;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_modOrder : Object
+    {
+        public Gtk.Entry el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_modOrder(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            _this.modOrder = this;
+            this.el = new Gtk.Entry();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.visible = true;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_Label17 : Object
+    {
+        public Gtk.Label el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Label17(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Label( "Module to build (Vala only)" );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.justify = Gtk.Justification.RIGHT;
+            this.el.xalign = 0.900000f;
+            this.el.visible = true;
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_build_module : Object
+    {
+        public Gtk.ComboBox el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_build_module(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            _this.build_module = this;
+            this.el = new Gtk.ComboBox();
+
+            // my vars (dec)
+
+            // set gobject values
+            var child_0 = new Xcls_dbcellrenderer( _this );
+            child_0.ref();
+            this.el.pack_start (  child_0.el , true );
+            var child_1 = new Xcls_dbmodel( _this );
+            child_1.ref();
+            this.el.set_model (  child_1.el  );
+
+            // init method
+
+            this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_dbcellrenderer : Object
+    {
+        public Gtk.CellRendererText el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_dbcellrenderer(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            _this.dbcellrenderer = this;
+            this.el = new Gtk.CellRendererText();
+
+            // my vars (dec)
+
+            // set gobject values
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_dbmodel : Object
+    {
+        public Gtk.ListStore el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_dbmodel(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            _this.dbmodel = this;
+            this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
+
+            // my vars (dec)
+
+            // set gobject values
+        }
+
+        // user defined functions
+        public void loadData (Gee.ArrayList<string> data, string cur) {
+            this.el.clear();                                    
+            Gtk.TreeIter iter;
+            var el = this.el;
+            
+           /// el.append(out iter);
+            
+             
+           // el.set_value(iter, 0, "");
+           // el.set_value(iter, 1, "aaa  - Just add Element - aaa");
+        
+            el.append(out iter);
+        
+            
+            el.set_value(iter, 0, "");
+            el.set_value(iter, 1, "-- select a module --");
+            _this.build_module.el.set_active_iter(iter);
+            
+            for (var i = 0; i < data.size;i++) {
+            
+        
+                el.append(out iter);
+                
+                el.set_value(iter, 0, data.get(i));
+                el.set_value(iter, 1, data.get(i));
+                
+                if (data.get(i) == cur) {
+                    _this.build_module.el.set_active_iter(iter);
+                }
+                
+            }
+             this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
+                                             
+        }
+    }
+
+
+
+    public class Xcls_HButtonBox21 : Object
+    {
+        public Gtk.HButtonBox el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_HButtonBox21(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.HButtonBox();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.margin_right = 4;
+            this.el.margin_left = 4;
+            this.el.margin_bottom = 4;
+            var child_0 = new Xcls_Button22( _this );
+            child_0.ref();
+            this.el.add (  child_0.el  );
+            var child_1 = new Xcls_save_btn( _this );
+            child_1.ref();
+            this.el.add (  child_1.el  );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_Button22 : Object
+    {
+        public Gtk.Button el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Button22(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Button();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.label = "Cancel";
+
+            //listeners
+            this.el.clicked.connect( () => { 
+            
+              _this.done = true;
+                _this.el.hide(); 
+            });
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_save_btn : Object
+    {
+        public Gtk.Button el;
+        private Xcls_PopoverFileDetails  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_save_btn(Xcls_PopoverFileDetails _owner )
+        {
+            _this = _owner;
+            _this.save_btn = this;
+            this.el = new Gtk.Button();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.label = "Save";
+
+            //listeners
+            this.el.clicked.connect( ( ) =>  { 
+            
+             
+            
+            
+               if (_this.name.el.get_text().length  < 1) {
+                   StandardErrorDialog.show(
+                       _this.mainwindow.el,
+                       "You have to set Component name "
+                   );
+                    
+                   return;
+               }
+               // what does this do?
+               
+               var isNew = _this.file.name.length  > 0 ? false : true;
+               /*
+               if (!isNew && this.file.name != _this.name.el.get_text()) {
+                   Xcls_StandardErrorDialog.singleton().show(
+                       this.el,
+                       "Sorry changing names does not work yet. "
+                   );
+                    
+                   return;
+               }
+               */
+                
+               
+              
+               // FIXME - this may be more complicated...
+               //for (var i in this.def) {
+               //    this.file[i] =  this.get(i).el.get_text();
+               //}
+            
+               if (!isNew) {
+                   try {
+                        _this.updateFileFromEntry();
+                    } catch( JsRender.Error.RENAME_FILE_EXISTS er) {
+                         Xcls_StandardErrorDialog.singleton().show(
+                           _this.mainwindow.el,
+                           "The name you used already exists "
+                       );
+                       return;
+                        
+                    }
+            
+                     _this.done = true;
+                   _this.file.save();
+                   _this.el.hide();
+                   return;
+               }
+               var fn = _this.name.el.get_text();
+               var dir = _this.project.firstPath();
+               
+               if (GLib.FileUtils.test(dir + "/" + fn + ".bjs", GLib.FileTest.EXISTS)) {
+                   Xcls_StandardErrorDialog.singleton().show(
+                       _this.mainwindow.el,
+                       "That file already exists"
+                   ); 
+                   return;
+               }
+               
+               var f =  JsRender.JsRender.factory(
+                       _this.file.project.xtype,  
+                       _this.file.project, 
+                       dir + "/" + fn + ".bjs");
+            
+               _this.file = f;
+               
+            
+               
+               _this.updateFileFromEntry();
+               _this.file.loaded = true;
+               _this.file.save();
+               _this.file.project.addFile(_this.file);
+               
+             
+               // what about .js ?
+               _this.done = true;
+               _this.el.hide();
+            
+               
+               
+               _this.success(_this.project, _this.file);
+               
+            });
+        }
+
+        // user defined functions
+    }
+
+
+
+}