modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java | 36 ++++++++-- 1 file changed, 31 insertions(+), 5 deletions(-)
New commits: commit 6768323d174b88a5ef9f60ec5a5b54da527750af Author: John Mazzitelli mazz@redhat.com Date: Mon Nov 29 18:11:40 2010 -0500
ensure that the Type column for the Resource tables show the resource type NAME and not the type ID
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java index d2593a5..9abe462 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java @@ -25,7 +25,9 @@ import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceD import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.PLUGIN; import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.TYPE;
+import java.util.HashSet; import java.util.List; +import java.util.Map;
import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.data.DSRequest; @@ -42,11 +44,14 @@ import org.rhq.core.domain.criteria.ResourceCriteria; import org.rhq.core.domain.measurement.AvailabilityType; import org.rhq.core.domain.resource.Resource; import org.rhq.core.domain.resource.ResourceCategory; +import org.rhq.core.domain.resource.ResourceType; 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.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGWTServiceAsync; +import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository; +import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository.TypesLoadedCallback; import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
/** @@ -125,11 +130,32 @@ public class ResourceDatasource extends RPCDataSource<Resource> { }); }
- protected void dataRetrieved(PageList<Resource> result, DSResponse response, DSRequest request) { - Record[] records = buildRecords(result); - response.setData(records); - response.setTotalRows(result.getTotalSize()); // for paging to work we have to specify size of full result set - processResponse(request.getRequestId(), response); + protected void dataRetrieved(final PageList<Resource> result, final DSResponse response, final DSRequest request) { + HashSet<Integer> typesSet = new HashSet<Integer>(); + for (Resource resource : result) { + ResourceType type = resource.getResourceType(); + if (type != null) { + typesSet.add(type.getId()); + } + } + + ResourceTypeRepository typeRepo = ResourceTypeRepository.Cache.getInstance(); + typeRepo.getResourceTypes(typesSet.toArray(new Integer[typesSet.size()]), new TypesLoadedCallback() { + @Override + public void onTypesLoaded(Map<Integer, ResourceType> types) { + Record[] records = buildRecords(result); + for (Record record : records) { + Integer typeId = record.getAttributeAsInt(TYPE.propertyName()); + ResourceType type = types.get(typeId); + if (type != null) { + record.setAttribute(TYPE.propertyName(), type.getName()); + } + } + response.setData(records); + response.setTotalRows(result.getTotalSize()); // for paging to work we have to specify size of full result set + processResponse(request.getRequestId(), response); + } + }); }
protected ResourceCriteria getFetchCriteria(final DSRequest request) {
rhq-commits@lists.fedorahosted.org