Lot of changes in the user editor
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.ria / src / argeo-ria-lib / security / class / org / argeo / security / ria / components / SimpleUserNatureImpl.js
index c76ec1ad24e1458ed37e4722238b62697e74d96a..342cee246bf91cae6891673a037d89ee42e48674 100644 (file)
@@ -4,21 +4,89 @@ qx.Class.define("org.argeo.security.ria.components.SimpleUserNatureImpl", {
        events : {\r
                "modified" : "qx.event.type.Event"              \r
        },\r
+       statics : {\r
+               NATURE_TYPE : "org.argeo.security.nature.SimpleUserNature",\r
+               NATURE_LABEL : "Simple User",\r
+               NATURE_ICON : ""\r
+       },\r
+       properties : {\r
+               valid : {\r
+                       init : false\r
+               },\r
+               dataMap : {\r
+                       \r
+               },\r
+               editMode : {\r
+                       init : true,\r
+                       apply : "_applyEditMode",\r
+                       event : "changeEditMode"\r
+               }               \r
+       },\r
        \r
        construct : function(){\r
-               this.base(arguments);\r
-               this.setLayout(new qx.ui.layout.Grid());\r
+               this.base(arguments);   \r
+               this._createGui();\r
+               this.setEditMode(false);                \r
        },\r
                \r
-       members : {\r
+       members : {             \r
+               \r
+               _createGui : function(){\r
+                       var grid = new qx.ui.layout.Grid(5,5);\r
+                       this.setLayout(grid);\r
+                       grid.setColumnFlex(0,1);\r
+                       grid.setColumnAlign(0,"right", "middle");\r
+                       grid.setColumnFlex(1,3);\r
+                                       \r
+                       this.mailField = new qx.ui.form.TextField();\r
+                       this.fNameField = new qx.ui.form.TextField();\r
+                       this.nameField = new qx.ui.form.TextField();\r
+                       \r
+                       var labels = ["Email", "First Name", "Last Name"]; \r
+                       this.fields = {\r
+                               "email" : this.mailField, \r
+                               "firstName": this.fNameField, \r
+                               "lastName" : this.nameField\r
+                       };\r
+                       \r
+                       for(var i=0;i<labels.length;i++){\r
+                               this.add(new qx.ui.basic.Label(labels[i]), {row:i,column:0});\r
+                       }\r
+                       var j=0;\r
+                       for(var key in this.fields){                    \r
+                               this.fields[key].addListener("changeValue", function(e){this.fireEvent("modified");}, this);\r
+                               this.add(this.fields[key], {row:j,column:1});\r
+                               j++;\r
+                       }       \r
+               },\r
+               \r
+               _applyEditMode : function(value){\r
+                       for(var key in this.fields){\r
+                               this.fields[key].setEnabled(value);\r
+                       }\r
+               },\r
+               \r
                getContainer  : function(){\r
                        return this;\r
                },\r
-               getNatureLabel : function(){\r
-                       return "Basic User";\r
+               setData    : function(dataMap, format){\r
+                       for(var key in this.fields){\r
+                               if(dataMap[key]){\r
+                                       this.fields[key].setValue(dataMap[key]);\r
+                               }\r
+                       }\r
+                       this.setDataMap(dataMap);\r
+               },\r
+               getData    : function(format){\r
+                       var dataMap = this.getDataMap();\r
+                       for(var key in dataMap){\r
+                               if(this.fields[key]){\r
+                                       dataMap[key] = this.fields[key].getValue();\r
+                               }\r
+                       }\r
+                       this.setDataMap(dataMap);\r
+                       return dataMap;\r
                },\r
-               setData    : function(dataMap, format){return true;},\r
-               getData    : function(format){return true;},\r
                validate : function(){return true;}\r
        }\r
 });
\ No newline at end of file