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@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();