]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/components/SimpleUserNatureImpl.js
Start preparing 0.3.0
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.ria / src / argeo-ria-lib / security / class / org / argeo / security / ria / components / SimpleUserNatureImpl.js
index 4b5e4c84b3f1687f8e71c1f92a401c3214f26782..8f3b94c9000a8af843aae7b7c8fbe477f2464dd2 100644 (file)
@@ -4,27 +4,40 @@ 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
+               NATURE_RANK     : 0             \r
+       },\r
        properties : {\r
                valid : {\r
                        init : false\r
                },\r
-               natureUuid : {\r
-                       init : ""\r
-               },\r
-               natureType : {\r
-                       init : "SimpleUser"\r
-               },\r
                dataMap : {\r
                        \r
-               }\r
+               },\r
+               editMode : {\r
+                       init : true,\r
+                       apply : "_applyEditMode",\r
+                       event : "changeEditMode"\r
+               },\r
+               isNew   : {\r
+                       init : false,\r
+                       check : "Boolean"\r
+               }               \r
        },\r
        \r
        construct : function(){\r
                this.base(arguments);   \r
+               this.setDataMap({\r
+                       type:"org.argeo.security.nature.SimpleUserNature"\r
+               });\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
@@ -36,12 +49,14 @@ qx.Class.define("org.argeo.security.ria.components.SimpleUserNatureImpl", {
                        this.mailField = new qx.ui.form.TextField();\r
                        this.fNameField = new qx.ui.form.TextField();\r
                        this.nameField = new qx.ui.form.TextField();\r
+                       this.descriptionField = new qx.ui.form.TextArea();\r
                        \r
-                       var labels = ["Email", "First Name", "Last Name"]; \r
+                       var labels = ["Email", "First Name", "Last Name", "Description"]; \r
                        this.fields = {\r
                                "email" : this.mailField, \r
                                "firstName": this.fNameField, \r
-                               "lastName" : this.nameField\r
+                               "lastName" : this.nameField,\r
+                               "description" : this.descriptionField\r
                        };\r
                        \r
                        for(var i=0;i<labels.length;i++){\r
@@ -52,28 +67,38 @@ qx.Class.define("org.argeo.security.ria.components.SimpleUserNatureImpl", {
                                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
+               \r
+               _applyEditMode : function(value){\r
+                       for(var key in this.fields){\r
+                               if(value && this.fields[key].getReadOnly && this.fields[key].getReadOnly()) continue;\r
+                               this.fields[key].setEnabled(value);                             \r
+                       }\r
                },\r
+               \r
                getContainer  : function(){\r
                        return this;\r
                },\r
-               getNatureLabel : function(){\r
-                       return "Simple User";\r
-               },\r
                setData    : function(dataMap, format){\r
-                       this.setNatureUuid(dataMap["uuid"]);\r
-                       this.setNatureType(dataMap["type"]);\r
                        for(var key in this.fields){\r
                                if(dataMap[key]){\r
-                                       this.fields[key].setValue(dataMap[key]);\r
+                                       if(qx.Class.hasInterface(qx.Class.getByName(this.fields[key].classname), qx.ui.form.IModelSelection)){\r
+                                               this.fields[key].setModelSelection([dataMap[key]]);\r
+                                       }else{\r
+                                               this.fields[key].setValue(dataMap[key]);\r
+                                       }\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
+                       for(var key in this.fields){\r
+                               if(qx.Class.hasInterface(qx.Class.getByName(this.fields[key].classname), qx.ui.form.IModelSelection)){\r
+                                       var sel = this.fields[key].getModelSelection();\r
+                                       if(sel && qx.lang.Type.isArray(sel)) dataMap[key] = sel[0];                                     \r
+                               }else{\r
                                        dataMap[key] = this.fields[key].getValue();\r
                                }\r
                        }\r