modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/composite/ResourceGroupComposite.java
| 9
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java
| 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupCompositeDataSource.java
| 161 ++++++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
| 31 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
| 4
6 files changed, 185 insertions(+), 27 deletions(-)
New commits:
commit 769d8fe3e1c2edfce9f0f41a25a50ecc77c302ba
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Oct 11 11:51:59 2010 -0400
add children/descendent availability columns to the group inventory view
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/composite/ResourceGroupComposite.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/composite/ResourceGroupComposite.java
index 583fe36..cae33a9 100644
---
a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/composite/ResourceGroupComposite.java
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/composite/ResourceGroupComposite.java
@@ -61,6 +61,15 @@ public class ResourceGroupComposite implements Serializable {
public ResourceGroupComposite() {
}
+ public ResourceGroupComposite(Long explicitUp, Long explicitDown, Long implicitUp,
Long implicitDown,
+ ResourceGroup resourceGroup) {
+ this(explicitUp + explicitDown, //
+ (double) explicitUp / (explicitUp + explicitDown), //
+ implicitUp + implicitDown, //
+ (double) implicitUp / (implicitUp + implicitDown), //
+ resourceGroup, null);
+ }
+
public ResourceGroupComposite(Long explicitCount, Double explicitAvailability, Long
implicitCount,
Double implicitAvailability, ResourceGroup resourceGroup) {
this(explicitCount, explicitAvailability, implicitCount, implicitAvailability,
resourceGroup, null);
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
new file mode 100644
index 0000000..0da1963
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupCompositeDataSource.java
@@ -0,0 +1,161 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.inventory.groups;
+
+import static
org.rhq.enterprise.gui.coregui.client.inventory.groups.ResourceGroupDataSourceField.CATEGORY;
+import static
org.rhq.enterprise.gui.coregui.client.inventory.groups.ResourceGroupDataSourceField.NAME;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.data.DSRequest;
+import com.smartgwt.client.data.DSResponse;
+import com.smartgwt.client.data.fields.DataSourceTextField;
+import com.smartgwt.client.rpc.RPCResponse;
+import com.smartgwt.client.widgets.grid.ListGridRecord;
+
+import org.rhq.core.domain.criteria.ResourceGroupCriteria;
+import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.domain.resource.group.GroupCategory;
+import org.rhq.core.domain.resource.group.ResourceGroup;
+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.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGroupGWTServiceAsync;
+import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
+
+/**
+ * @author Joseph Marques
+ */
+public class ResourceGroupCompositeDataSource extends
RPCDataSource<ResourceGroupComposite> {
+
+ ResourceGroupGWTServiceAsync groupService =
GWTServiceLookup.getResourceGroupService();
+
+ private static ResourceGroupCompositeDataSource INSTANCE;
+
+ public static ResourceGroupCompositeDataSource getInstance() {
+ if (INSTANCE == null) {
+ INSTANCE = new ResourceGroupCompositeDataSource();
+ }
+ return INSTANCE;
+ }
+
+ public ResourceGroupCompositeDataSource() {
+ super();
+
+ DataSourceTextField nameDataField = new DataSourceTextField("name",
"Name", 200);
+ nameDataField.setCanEdit(false);
+
+ DataSourceTextField descriptionDataField = new
DataSourceTextField("description", "Description");
+ descriptionDataField.setCanEdit(false);
+
+ DataSourceTextField typeNameDataField = new
DataSourceTextField("typeName", "Type");
+ DataSourceTextField pluginNameDataField = new
DataSourceTextField("pluginName", "Plugin");
+ DataSourceTextField categoryDataField = new
DataSourceTextField("category", "Category");
+
+ setFields(nameDataField, descriptionDataField, typeNameDataField,
pluginNameDataField, categoryDataField);
+ }
+
+ public void executeFetch(final DSRequest request, final DSResponse response) {
+ ResourceGroupCriteria criteria = getFetchCriteria(request);
+
+ groupService.findResourceGroupCompositesByCriteria(criteria,
+ new AsyncCallback<PageList<ResourceGroupComposite>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to fetch group
composite data", caught);
+ response.setStatus(RPCResponse.STATUS_FAILURE);
+ processResponse(request.getRequestId(), response);
+ }
+
+ public void onSuccess(PageList<ResourceGroupComposite> result) {
+ response.setData(buildRecords(result));
+ response.setTotalRows(result.getTotalSize()); // for paging to work
we have to specify size of full result set
+ processResponse(request.getRequestId(), response);
+ }
+ });
+ }
+
+ protected ResourceGroupCriteria getFetchCriteria(final DSRequest request) {
+ ResourceGroupCriteria criteria = new ResourceGroupCriteria();
+ criteria.setPageControl(getPageControl(request));
+
+ criteria.addFilterName(getFilter(request, NAME.propertyName(), String.class));
+ criteria.addFilterGroupCategory(getFilter(request, CATEGORY.propertyName(),
GroupCategory.class));
+ criteria.addFilterDownMemberCount(getFilter(request, "downMemberCount",
Integer.class));
+ criteria.addFilterExplicitResourceIds(getFilter(request,
"explicitResourceId", Integer.class));
+ criteria.addFilterGroupDefinitionId(getFilter(request,
"groupDefinitionId", Integer.class));
+
+ return criteria;
+ }
+
+ @Override
+ public ResourceGroupComposite copyValues(ListGridRecord from) {
+ Integer idAttrib = from.getAttributeAsInt("id");
+ String nameAttrib = from.getAttribute("name");
+ String descriptionAttrib = from.getAttribute("description");
+ String typeNameAttrib = from.getAttribute("typeName");
+ String pluginNameAttrib = from.getAttribute("pluginName");
+ ResourceType rt = null;
+
+ ResourceGroup rg = new ResourceGroup(nameAttrib);
+ rg.setId(idAttrib);
+ rg.setDescription(descriptionAttrib);
+ if (null != typeNameAttrib) {
+ rt = new ResourceType();
+ rt.setName(typeNameAttrib);
+ rt.setPlugin(pluginNameAttrib);
+ rg.setResourceType(rt);
+ }
+
+ Long explicitUp = Long.valueOf(from.getAttribute("explicitUp"));
+ Long explicitDown = Long.valueOf(from.getAttribute("explicitDown"));
+ Long implicitUp = Long.valueOf(from.getAttribute("implicitUp"));
+ Long implicitDown = Long.valueOf(from.getAttribute("implicitDown"));
+
+ ResourceGroupComposite composite = new ResourceGroupComposite(explicitUp,
explicitDown, implicitUp,
+ implicitDown, rg);
+
+ return composite;
+ }
+
+ @Override
+ public ListGridRecord copyValues(ResourceGroupComposite from) {
+ ListGridRecord record = new ListGridRecord();
+ record.setAttribute("group", from);
+ record.setAttribute("id", from.getResourceGroup().getId());
+ record.setAttribute("name", from.getResourceGroup().getName());
+ record.setAttribute("description",
from.getResourceGroup().getDescription());
+ record.setAttribute("category",
from.getResourceGroup().getGroupCategory().toString());
+
+ record.setAttribute("explicitUp",
String.valueOf(from.getExplicitUp()));
+ record.setAttribute("explicitDown",
String.valueOf(from.getExplicitDown()));
+ record.setAttribute("implicitUp",
String.valueOf(from.getImplicitUp()));
+ record.setAttribute("implicitDown",
String.valueOf(from.getImplicitDown()));
+
+ record.setAttribute("availabilityChildren",
from.getExplicitFormatted());
+ record.setAttribute("availabilityDescendents",
from.getImplicitFormatted());
+
+ if (from.getResourceGroup().getResourceType() != null) {
+ record.setAttribute("resourceType",
from.getResourceGroup().getResourceType());
+ record.setAttribute("typeName",
from.getResourceGroup().getResourceType().getName());
+ record.setAttribute("pluginName",
from.getResourceGroup().getResourceType().getPlugin());
+ }
+
+ return record;
+ }
+}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
index 6c64b16..6aa4e65 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
@@ -21,8 +21,6 @@ package org.rhq.enterprise.gui.coregui.client.inventory.groups;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.types.Alignment;
-import com.smartgwt.client.types.ListGridFieldType;
-import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
@@ -38,6 +36,7 @@ import
org.rhq.enterprise.gui.coregui.client.util.message.Message.Severity;
/**
* @author Greg Hinkle
+ * @author Joseph Marques
*/
public class ResourceGroupListView extends Table {
@@ -58,15 +57,13 @@ public class ResourceGroupListView extends Table {
addHeaderIcon(headerIcon);
}
- final ResourceGroupsDataSource datasource =
ResourceGroupsDataSource.getInstance();
+ final ResourceGroupCompositeDataSource datasource =
ResourceGroupCompositeDataSource.getInstance();
setDataSource(datasource);
}
@Override
protected void configureTable() {
- ListGridField idField = new ListGridField("id", "Id", 55);
- idField.setType(ListGridFieldType.INTEGER);
- ListGridField nameField = new ListGridField("name", "Name",
250);
+ ListGridField nameField = new ListGridField("name", "Name",
300);
nameField.setCellFormatter(new CellFormatter() {
public String format(Object o, ListGridRecord listGridRecord, int i, int i1)
{
return "<a href=\"#ResourceGroup/" +
listGridRecord.getAttribute("id") + "\">" + o +
"</a>";
@@ -76,13 +73,18 @@ public class ResourceGroupListView extends Table {
ListGridField descriptionField = new ListGridField("description",
"Description");
ListGridField typeNameField = new ListGridField("typeName",
"Type", 130);
ListGridField pluginNameField = new ListGridField("pluginName",
"Plugin", 100);
- ListGridField categoryField = new ListGridField("category",
"Category", 60);
+ ListGridField categoryField = new ListGridField("category",
"Category", 100);
- ListGridField availabilityField = new
ListGridField("currentAvailability", "Availability", 55);
+ ListGridField availabilityChildrenField = new
ListGridField("availabilityChildren", "Children", 100);
+ availabilityChildrenField.setWrap(false);
+ availabilityChildrenField.setAlign(Alignment.CENTER);
- availabilityField.setAlign(Alignment.CENTER);
- getListGrid().setFields(idField, nameField, descriptionField, typeNameField,
pluginNameField, categoryField,
- availabilityField);
+ ListGridField availabilityDescendentsField = new
ListGridField("availabilityDescendents", "Descendents", 100);
+ availabilityDescendentsField.setWrap(false);
+ availabilityDescendentsField.setAlign(Alignment.CENTER);
+
+ getListGrid().setFields(nameField, descriptionField, typeNameField,
pluginNameField, categoryField,
+ availabilityChildrenField, availabilityDescendentsField);
addTableAction(extendLocatorId("Delete"), "Delete",
Table.SelectionEnablement.ANY,
"Delete the selected resource groups?", new TableAction() {
commit 3124bc9233f13c9c3f239f0eb6ced1af86d1c26b
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Oct 11 11:51:12 2010 -0400
move listGrid.setSelectType(SelectionType.SIMPLE) to the Table component
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java
index d97ccf9..e14f383 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java
@@ -21,7 +21,6 @@ package org.rhq.enterprise.gui.coregui.client.bundle.list;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.types.ListGridFieldType;
-import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import org.rhq.core.domain.bundle.Bundle;
@@ -55,7 +54,6 @@ public class BundlesListView extends Table {
@Override
protected void configureTable() {
-
getListGrid().getField("id").setWidth("60");
getListGrid().getField("link").setWidth("25%");
getListGrid().getField("link").setType(ListGridFieldType.LINK);
@@ -71,9 +69,6 @@ public class BundlesListView extends Table {
getListGrid().getField("latestVersion").setWidth("25%");
getListGrid().getField("versionsCount").setWidth("*");
- getListGrid().setSelectionType(SelectionStyle.SIMPLE);
- // getListGrid().setSelectionAppearance(SelectionAppearance.CHECKBOX);
-
addTableAction(extendLocatorId("New"), "New",
Table.SelectionEnablement.ALWAYS, null, new TableAction() {
public void executeAction(ListGridRecord[] selection) {
new BundleCreateWizard().startBundleWizard();
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
index 917946a..c573007 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
@@ -25,6 +25,7 @@ import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.data.SortSpecifier;
import com.smartgwt.client.types.Autofit;
import com.smartgwt.client.types.Overflow;
+import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.types.VerticalAlignment;
import com.smartgwt.client.util.BooleanCallback;
import com.smartgwt.client.util.SC;
@@ -194,6 +195,7 @@ public class Table extends LocatableHLayout implements RefreshableView
{
listGrid.setHeight100();
listGrid.setAlternateRecordStyles(true);
listGrid.setResizeFieldsInRealTime(false);
+ listGrid.setSelectionType(SelectionStyle.SIMPLE);
if (flexRowDisplay) {
listGrid.setAutoFitData(Autofit.HORIZONTAL);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
index 7053f7c..6c64b16 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
@@ -64,13 +64,6 @@ public class ResourceGroupListView extends Table {
@Override
protected void configureTable() {
-
- // setHeaderIcon("?_24.png");
-
- getListGrid().setSelectionType(SelectionStyle.SIMPLE);
- //table.getListGrid().setSelectionAppearance(SelectionAppearance.CHECKBOX);
- getListGrid().setResizeFieldsInRealTime(true);
-
ListGridField idField = new ListGridField("id", "Id", 55);
idField.setType(ListGridFieldType.INTEGER);
ListGridField nameField = new ListGridField("name", "Name",
250);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
index 6382fcb..eb7175b 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
@@ -33,7 +33,6 @@ import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.data.SortSpecifier;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.ListGridFieldType;
-import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
@@ -104,9 +103,6 @@ public class ResourceSearchView extends Table {
@Override
protected void configureTable() {
-
- getListGrid().setSelectionType(SelectionStyle.SIMPLE);
-
ListGridField idField = new ListGridField("id", "Id", 55);
idField.setType(ListGridFieldType.INTEGER);
ListGridField iconField = new ListGridField("icon", "", 40);