[rhq] Branch 'release/jon3.1.x' - modules/enterprise

John Sanda jsanda at fedoraproject.org
Tue Aug 21 14:22:09 UTC 2012


 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupCompositeDataSource.java |   21 +++++++---
 1 file changed, 15 insertions(+), 6 deletions(-)

New commits:
commit 1031361a379cfc4490da70063c1eb83516684603
Author: John Sanda <jsanda at redhat.com>
Date:   Mon Aug 20 11:39:51 2012 -0400

    [BZ 850229] Only hide empty groups for availability queries/searches
    
    This regression was introduced during the work for BZ 826493. While
    testing the changes for this commit, I came across another, related
    issue where an empty compatible group does not show up in the compatible
    groups view. It does however show up in the mixed groups view. An empty
    mixed group appears in the mixed group view. This issue is already
    logged under BZ 708929.
    
    Conflicts:
    
    	modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupCompositeDataSource.java

diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupCompositeDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupCompositeDataSource.java
index 45c5103..b05643f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupCompositeDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupCompositeDataSource.java
@@ -26,7 +26,6 @@ import static org.rhq.enterprise.gui.coregui.client.inventory.groups.ResourceGro
 import static org.rhq.enterprise.gui.coregui.client.inventory.groups.ResourceGroupDataSourceField.PLUGIN;
 import static org.rhq.enterprise.gui.coregui.client.inventory.groups.ResourceGroupDataSourceField.TYPE;
 
-import java.util.ArrayList;
 import java.util.List;
 
 import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -48,6 +47,7 @@ import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
 import org.rhq.core.domain.util.PageList;
 import org.rhq.enterprise.gui.coregui.client.CoreGUI;
 import org.rhq.enterprise.gui.coregui.client.ImageManager;
+import org.rhq.enterprise.gui.coregui.client.Messages;
 import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
 import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGroupGWTServiceAsync;
 import org.rhq.enterprise.gui.coregui.client.util.Log;
@@ -59,6 +59,8 @@ import org.rhq.enterprise.gui.coregui.client.util.message.Message;
  */
 public class ResourceGroupCompositeDataSource extends RPCDataSource<ResourceGroupComposite, ResourceGroupCriteria> {
 
+    private static final Messages MSG = CoreGUI.getMessages();
+
     public static final String FILTER_GROUP_IDS = "resourceGroupIds";
 
     ResourceGroupGWTServiceAsync groupService = GWTServiceLookup.getResourceGroupService();
@@ -114,7 +116,7 @@ public class ResourceGroupCompositeDataSource extends RPCDataSource<ResourceGrou
             new AsyncCallback<PageList<ResourceGroupComposite>>() {
                 public void onFailure(Throwable caught) {
                     if (caught.getMessage().contains("SearchExpressionException")) {
-                        Message message = new Message("Invalid search expression.", Message.Severity.Error);
+                        Message message = new Message(MSG.search_invalid_search_expression(), Message.Severity.Error);
                         CoreGUI.getMessageCenter().notify(message);
                     } else {
                         CoreGUI.getErrorHandler().handleError(MSG.view_inventory_groups_loadFailed(), caught);
@@ -123,13 +125,16 @@ public class ResourceGroupCompositeDataSource extends RPCDataSource<ResourceGrou
                     processResponse(request.getRequestId(), response);
                 }
                 
-                private PageList<ResourceGroupComposite> filterEmptyMemberGroups(ResourceGroupCriteria groupCriteria,
-                                                                                 PageList<ResourceGroupComposite> result){
+                private PageList<ResourceGroupComposite> applyAvailabilitySearchFilter(
+                    PageList<ResourceGroupComposite> result){
 
+                    if (!isAvailabilitySearch(criteria)) {
+                        return result;
+                    }
                     PageList<ResourceGroupComposite> pageList = new PageList<ResourceGroupComposite>(result.getPageControl());
 
                     for (ResourceGroupComposite rgc : result) {
-                        if (rgc.getExplicitCount() > 0 ){
+                        if (rgc.getExplicitCount() > 0) {
                             pageList.add(rgc);
                         }
                     }
@@ -138,7 +143,7 @@ public class ResourceGroupCompositeDataSource extends RPCDataSource<ResourceGrou
                 }
 
                 public void onSuccess(PageList<ResourceGroupComposite> result) {
-                    PageList<ResourceGroupComposite> filteredResult =    filterEmptyMemberGroups(criteria,result);
+                    PageList<ResourceGroupComposite> filteredResult = applyAvailabilitySearchFilter(result);
                     response.setData(buildRecords(filteredResult));
                     response.setTotalRows(filteredResult.getTotalSize()); // for paging to work we have to specify size of full result set
                     processResponse(request.getRequestId(), response);
@@ -146,6 +151,10 @@ public class ResourceGroupCompositeDataSource extends RPCDataSource<ResourceGrou
             });
     }
 
+    private boolean isAvailabilitySearch(ResourceGroupCriteria criteria) {
+        return criteria.getSearchExpression() != null && criteria.getSearchExpression().startsWith("availability");
+    }
+
     @Override
     protected ResourceGroupCriteria getFetchCriteria(final DSRequest request) {
         ResourceGroupCriteria criteria = new ResourceGroupCriteria();




More information about the rhq-commits mailing list