extend : qx.core.Object,\r
properties : {\r
detectedNatures : {\r
- check : "Map"\r
+ check : "Map" \r
+ },\r
+ nonAssignedNatures : {\r
+ check : "Map", \r
+ event : "changeNonAssignedNatures"\r
}\r
},\r
construct : function(){\r
members : {\r
detectNatures : function(){ \r
var natures = {};\r
+ var sortedNatures = {};\r
+ var ranks = {};\r
for (var key in qx.Bootstrap.$$registry) {\r
if (qx.Class.hasInterface(qx.Bootstrap.$$registry[key], org.argeo.security.ria.components.INaturePane)) {\r
// FILTER BY ROLE HERE!\r
var klass = qx.Bootstrap.$$registry[key];\r
natures[klass.NATURE_TYPE] = klass;\r
+ ranks[klass.NATURE_TYPE] = klass.NATURE_RANK;\r
}\r
}\r
- this.setDetectedNatures(natures);\r
+ org.argeo.ria.util.Utils.asort(ranks);\r
+ for(var key in ranks){\r
+ sortedNatures[key] = natures[key];\r
+ }\r
+ this.setDetectedNatures(sortedNatures);\r
+ this.setNonAssignedNatures(sortedNatures);\r
},\r
detectNaturesInData : function(userNaturesList){\r
var detected = this.getDetectedNatures();\r
var userDetected = [];\r
+ var nonAssigned = qx.lang.Object.clone(detected);\r
for(var i = 0;i<userNaturesList.length;i++){\r
var type = userNaturesList[i].type;\r
if(detected[type]){\r
NATURE_CLASS : detected[type],\r
NATURE_DATA : userNaturesList[i]\r
});\r
- }\r
+ delete(nonAssigned[type]);\r
+ } \r
}\r
+ this.setNonAssignedNatures(nonAssigned);\r
return userDetected;\r
}\r
}\r