package org.rhq.enterprise.gui.inventory.browse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.rhq.core.domain.auth.Subject; import org.rhq.core.domain.resource.InventorySummary; import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility; import org.rhq.enterprise.server.resource.ResourceBossLocal; import org.rhq.enterprise.server.util.LookupUtil; public class InventorySummaryUIBean { protected final Log log = LogFactory.getLog(InventorySummaryUIBean.class); private boolean showCounts = false; private int platformCount; private int serverCount; private int serviceCount; private int compatibleCount; private int mixedCount; private int groupDefinitionCount; private Subject subject; public InventorySummaryUIBean() { try { subject = EnterpriseFacesContextUtility.getSubject(); load(); } catch (Throwable t) { log.error("InventorySummaryUIBean constructor experienced an error: " + t.getMessage()); } } private void load() { try { ResourceBossLocal resourceBoss = LookupUtil.getResourceBoss(); InventorySummary summary = resourceBoss.getInventorySummary(subject); loadFromSummary(summary); showCounts = true; } catch (Throwable t) { log.error("InventorySummaryUIBean loader experienced an error: " + t.getMessage()); showCounts = false; } } private void loadFromSummary(InventorySummary summary) { this.platformCount = summary.getPlatformCount(); this.serverCount = summary.getServerCount(); this.serviceCount = summary.getServiceCount(); this.compatibleCount = summary.getCompatibleGroupCount(); this.mixedCount = summary.getMixedGroupCount(); this.groupDefinitionCount = summary.getGroupDefinitionCount(); } public String getResourceCount() { return format(platformCount + serverCount + serviceCount); } public String getPlatformCount() { return format(platformCount); } public String getServerCount() { return format(serverCount); } public String getServiceCount() { return format(serviceCount); } public String getGroupCount() { return format(compatibleCount + mixedCount); } public String getCompatibleCount() { return format(compatibleCount); } public String getMixedCount() { return format(mixedCount); } public String getGroupDefinitionCount() { return format(groupDefinitionCount); } private String format(int count) { if (showCounts) { return "(" + count + ")"; } return ""; } }