+
+ saveUser : function(){
+ var user = this.getCurrentUser();
+ user.setName(this.usernameField.getValue());
+ user.setRoles((this.rolesField.getValue()||"").split(","));
+ // GO TO AND RETURN FROM SERVER
+ user.setNatures([
+ {
+ "email" : "",
+ "firstName" : "",
+ "lastName" : "",
+ "type" : "org.argeo.security.nature.SimpleUserNature"
+ }]
+ );
+ this.partialRefreshUser(user, ["details","natures"]);
+ this.setModified(false);
+ },
+
+ _addNatureTab : function(natureClass, natureData, select){
+ var crtTabs = this.getCurrentNatureTabs();
+ if(qx.lang.Array.contains(crtTabs, natureClass.NATURE_TYPE)){
+ this.error("There can only be one instance of a given nature type!");
+ return null;
+ }
+ if(!this.naturesTab.isVisible()){
+ if(this.fakePane) this.fakePane.setVisibility("excluded");
+ this.naturesTab.setVisibility("visible");
+ }
+ var page = new qx.ui.tabview.Page("Nature : " + natureClass.NATURE_LABEL);
+ page.setLayout(new qx.ui.layout.Dock());
+ page.setUserData("NATURE_CLASS", natureClass);
+ var newClass = new natureClass();
+ page.add(newClass.getContainer(), {edge:"center"});
+
+ buttons = new qx.ui.container.Composite(new qx.ui.layout.HBox(5, "center"));
+ var editB = new qx.ui.form.Button("Edit this Nature", "org.argeo.security.ria/document-properties-22.png");
+ var saveB = new qx.ui.form.Button("Save", "org.argeo.security.ria/dialog-apply.png");
+ var cancelB = new qx.ui.form.Button("Cancel", "org.argeo.security.ria/dialog-cancel.png");
+ buttons.add(editB);
+ buttons.add(saveB);
+ buttons.add(cancelB);
+ page.add(buttons, {edge:"south"});
+ editB.addListener("execute", function(){
+ newClass.setEditMode(true);
+ editB.setVisibility("excluded");
+ saveB.setVisibility("visible");
+ cancelB.setVisibility("visible");
+ });
+ cancelB.addListener("execute", function(){
+ newClass.setEditMode(false);
+ editB.setVisibility("visible");
+ saveB.setVisibility("excluded");
+ cancelB.setVisibility("excluded");
+ });
+ saveB.addListener("execute", function(){
+ // SAVE CURRENT NATURE
+ this.setNaturesModified(false);
+ newClass.setEditMode(false);
+ editB.setVisibility("visible");
+ saveB.setVisibility("excluded");
+ cancelB.setVisibility("excluded");
+ }, this);
+ if(natureData){
+ newClass.setData(natureData);
+ cancelB.execute();
+ }else{
+ editB.execute();
+ }
+ this.naturesTab.add(page);
+ crtTabs.push(natureClass.NATURE_TYPE);
+ this.getViewSelection().triggerEvent();
+ newClass.addListener("modified", function(){
+ this.setNaturesModified(true);
+ }, this);
+ if(select){
+ this.naturesTab.setSelected(page);
+ }
+ return page;
+ },
+
+ _removeNatureTab : function(natureClass){
+ this.naturesTab.getChildren().forEach(function(el){
+ if(el.getUserData("NATURE_CLASS") == natureClass){
+ this.naturesTab.remove(el);
+ qx.lang.Array.remove(this.getCurrentNatureTabs(), natureClass.NATURE_TYPE);
+ this.getViewSelection().triggerEvent();
+ }
+ }, this);
+ if(this.naturesTab.getChildren().length == 0){
+ this.naturesTab.setVisibility("excluded");
+ this.fakePane.setVisibility("visible");
+ }
+ },
+
+ removeSelectedTab : function(){
+ var selected = this.naturesTab.getSelected();
+ this._removeNatureTab(selected.getUserData("NATURE_CLASS"));
+ },
+
+ removeAllTabs : function(){
+ while(this.naturesTab.getSelected()){
+ this._removeNatureTab(this.naturesTab.getSelected().getUserData("NATURE_CLASS"));
+ }
+ },