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
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
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