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
