Noam Slomianko has uploaded a new change for review.

Change subject: webadmin: Cleanup of AdElementListModel constructor
......................................................................

webadmin: Cleanup of AdElementListModel constructor

Cleanup part of the bugfix patch

Nested async call moved to be parallel as it was not dependent
of its parent

Async calls logic encapsulated from mid method anonymous class
to its own method

Improved variable names for readability

Change-Id: Iacc5878f32f5b5395dd5a87a0614b4c3a21bf88d
Bug-Url: https://bugzilla.redhat.com/909897
Signed-off-by: Noam Slomianko <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java
1 file changed, 48 insertions(+), 49 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/67/12667/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java
index ff4af53..6545362 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java
@@ -3,6 +3,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.DbUser;
 import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
@@ -170,57 +171,55 @@
 
         setIsTimerDisabled(true);
 
-        AsyncQuery _asyncQuery = new AsyncQuery();
-        _asyncQuery.setModel(this);
-        _asyncQuery.asyncCallback = new INewAsyncCallback() {
+
+        AsyncDataProvider.GetDomainList(new AsyncQuery(this, new 
INewAsyncCallback() {
+
             @Override
-            public void OnSuccess(Object model, Object result)
-            {
-                AdElementListModel adElementListModel = (AdElementListModel) 
model;
-                ArrayList<String> domains = (ArrayList<String>) result;
-                adElementListModel.getDomain().setItems(domains);
-                
adElementListModel.getDomain().setSelectedItem(Linq.FirstOrDefault(domains));
-                AsyncQuery _asyncQuery1 = new AsyncQuery();
-                _asyncQuery1.setModel(adElementListModel);
-                _asyncQuery1.asyncCallback = new INewAsyncCallback() {
-                    @Override
-                    public void OnSuccess(Object model1, Object result1)
-                    {
-                        AdElementListModel adElementListModel1 = 
(AdElementListModel) model1;
-                        Role roleValue = null;
-                        boolean first = true;
-                        ArrayList<Role> roles = (ArrayList<Role>) result1;
-                        ArrayList<Role> newRoles = new ArrayList<Role>();
-                        for (Role r : roles) {
-                            // ignore CONSUME_QUOTA_ROLE in UI
-                            if 
(!r.getId().equals(ApplicationGuids.quotaConsumer.asGuid())) {
-                                newRoles.add(r);
-                            }
-                        }
-                        for (Role r : roles)
-                        {
-                            if (r.getId() != null && 
r.getId().equals(ApplicationGuids.engineUser.asGuid())) //$NON-NLS-1$
-                            {
-                                roleValue = r;
-                                break;
-                            }
-                        }
-
-                        Collections.sort(newRoles, new 
Linq.RoleNameComparer());
-
-                        adElementListModel1.getRole().setItems(newRoles);
-                        if (roleValue != null) {
-                            
adElementListModel1.getRole().setSelectedItem(roleValue);
-                        } else if (newRoles.size() > 0){
-                            
adElementListModel1.getRole().setSelectedItem(newRoles.get(0));
-                        }
-
-                    }
-                };
-                AsyncDataProvider.GetRoleList(_asyncQuery1);
+            public void OnSuccess(Object model, Object result) {
+                populateDomains((List<String>) result);
             }
-        };
-        AsyncDataProvider.GetDomainList(_asyncQuery, false);
+        }), false);
+
+
+        AsyncDataProvider.GetRoleList(new AsyncQuery(this, new 
INewAsyncCallback() {
+
+            @Override
+            public void OnSuccess(Object model, Object result) {
+                populateRoles((List<Role>) result);
+
+            }
+        }));
+    }
+
+    protected void populateDomains(List<String> domains){
+        getDomain().setItems(domains);
+        getDomain().setSelectedItem(Linq.FirstOrDefault(domains));
+    }
+
+    protected void populateRoles(List<Role> roles){
+        Role selectedRole = null;
+        for (Role role : roles) {
+            if (role.getId() != null) {
+             // ignore CONSUME_QUOTA_ROLE in UI
+                if 
(role.getId().equals(ApplicationGuids.quotaConsumer.asGuid())) {
+                    roles.remove(role);
+                }
+                //select engine user if it exists
+                if (role.getId().equals(ApplicationGuids.engineUser.asGuid())) 
{
+                    selectedRole = role;
+                }
+            }
+        }
+
+        Collections.sort(roles, new Linq.RoleNameComparer());
+
+        getRole().setItems(roles);
+        if (selectedRole != null) {
+            getRole().setSelectedItem(selectedRole);
+        } else if (roles.size() > 0){
+            //if engine user does not exist, pick the first on the list
+            getRole().setSelectedItem(roles.get(0));
+        }
     }
 
     @Override


--
To view, visit http://gerrit.ovirt.org/12667
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iacc5878f32f5b5395dd5a87a0614b4c3a21bf88d
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Noam Slomianko <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to