]> 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 342cee246bf91cae6891673a037d89ee42e48674..8f3b94c9000a8af843aae7b7c8fbe477f2464dd2 100644 (file)
@@ -7,7 +7,8 @@ qx.Class.define("org.argeo.security.ria.components.SimpleUserNatureImpl", {
        statics : {\r
                NATURE_TYPE : "org.argeo.security.nature.SimpleUserNature",\r
                NATURE_LABEL : "Simple User",\r
-               NATURE_ICON : ""\r
+               NATURE_ICON : "",\r
+               NATURE_RANK     : 0             \r
        },\r
        properties : {\r
                valid : {\r
@@ -20,11 +21,18 @@ qx.Class.define("org.argeo.security.ria.components.SimpleUserNatureImpl", {
                        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
@@ -41,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
@@ -62,7 +72,8 @@ qx.Class.define("org.argeo.security.ria.components.SimpleUserNatureImpl", {
                \r
                _applyEditMode : function(value){\r
                        for(var key in this.fields){\r
-                               this.fields[key].setEnabled(value);\r
+                               if(value && this.fields[key].getReadOnly && this.fields[key].getReadOnly()) continue;\r
+                               this.fields[key].setEnabled(value);                             \r
                        }\r
                },\r
                \r
@@ -72,15 +83,22 @@ qx.Class.define("org.argeo.security.ria.components.SimpleUserNatureImpl", {
                setData    : function(dataMap, format){\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