modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceBundleDeploymentCriteria.java
| 55 ++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/summary/AbstractActivityView.java
| 118 ++++++++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/summary/ActivityView2.java
| 18 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ActivityView.java
| 84 ++++++-
modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/content/Package_16.png
|binary
modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/content/Package_24.png
|binary
6 files changed, 248 insertions(+), 27 deletions(-)
New commits:
commit f1f4426c3e1ec3cc1c0cb86e753f3141817e90be
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Tue Mar 1 08:40:05 2011 -0500
change images for package history items to be different from Bundle images an fix for
bundle display region separator.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/summary/AbstractActivityView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/summary/AbstractActivityView.java
index af79008..ba1333e 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/summary/AbstractActivityView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/summary/AbstractActivityView.java
@@ -112,13 +112,13 @@ public abstract class AbstractActivityView extends LocatableHLayout
implements R
HTMLFlow divider3 = new HTMLFlow("<hr/>");
HTMLFlow divider4 = new HTMLFlow("<hr/>");
HTMLFlow divider5 = new HTMLFlow("<hr/>");
- HTMLFlow divider6 = new HTMLFlow("<hr/>");
+ // HTMLFlow divider6 = new HTMLFlow("<hr/>");
divider1.setWidth("50%");
divider2.setWidth("50%");
divider3.setWidth("50%");
divider4.setWidth("50%");
divider5.setWidth("50%");
- divider6.setWidth("50%");
+ // divider6.setWidth("50%");
//leftPane
leftPane.setWidth("50%");
@@ -185,7 +185,7 @@ public abstract class AbstractActivityView extends LocatableHLayout
implements R
rightPane.addMember(recentEventsContent);
recentEventsContent.setHeight(20);
//recentPackageHistory.xhtml
- HLayout recentPkgHistoryTitle = new
TitleWithIcon("subsystems/inventory/Inventory_24.png", RECENT_PKG_HISTORY);
+ HLayout recentPkgHistoryTitle = new
TitleWithIcon("subsystems/content/Package_24.png", RECENT_PKG_HISTORY);
recentPkgHistoryContent.setHeight(20);
if ((resource != null) || ((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {//resource,CompatibleGroup
rightPane.addMember(divider5);
@@ -200,6 +200,7 @@ public abstract class AbstractActivityView extends LocatableHLayout
implements R
addMember(leftPane);
addMember(rightPane);
+
}
private void deployBundleViewIfApplicable(Resource resource, ResourceGroup group) {
@@ -291,6 +292,7 @@ public abstract class AbstractActivityView extends LocatableHLayout
implements R
rightPane.addMember(divider6);
rightPane.addMember(recentBundleDeployTitle);
rightPane.addMember(recentBundleDeployContent);
+ rightPane.markForRedraw();
}
/**Creates the section top titles with icon for regions of Activity page.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/summary/ActivityView2.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/summary/ActivityView2.java
index 021a93b..14cd2b3 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/summary/ActivityView2.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/summary/ActivityView2.java
@@ -458,7 +458,7 @@ public class ActivityView2 extends AbstractActivityView {
+ history.getPackageVersion().getVersion()));
row.setNumCols(3);
- StaticTextItem iconItem =
newTextItemIcon("subsystems/inventory/Inventory_grey_16.png", null);
+ StaticTextItem iconItem =
newTextItemIcon("subsystems/content/Package_16.png", null);
String title = history.getPackageVersion().getFileName() +
":";
String destination =
"/rhq/resource/content/audit-trail-item.xhtml?id=" + groupId
+ "&selectedHistoryId=" + history.getId();
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ActivityView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ActivityView.java
index 27ebb8c..07f0821 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ActivityView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ActivityView.java
@@ -433,8 +433,7 @@ public class ActivityView extends AbstractActivityView {
+ history.getPackageVersion().getVersion()));
row.setNumCols(3);
- StaticTextItem iconItem =
newTextItemIcon("subsystems/inventory/Inventory_grey_16.png",
- null);
+ StaticTextItem iconItem =
newTextItemIcon("subsystems/content/Package_16.png", null);
String title = history.getPackageVersion().getFileName() +
":";
String destination =
"/rhq/resource/content/audit-trail-item.xhtml?id=" + resourceId
+ "&selectedHistoryId=" + history.getId();
diff --git
a/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/content/Package_16.png
b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/content/Package_16.png
new file mode 100644
index 0000000..4034663
Binary files /dev/null and
b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/content/Package_16.png
differ
diff --git
a/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/content/Package_24.png
b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/content/Package_24.png
new file mode 100644
index 0000000..2cf069c
Binary files /dev/null and
b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/content/Package_24.png
differ
commit bb2e6a68809730f3bf215fcb6a7244244baeca70
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Mon Feb 28 20:39:07 2011 -0500
i)conditionally display recently deployed bundles for groups/resources of platforms.
ii)change icon for Pkg History to be different from Bundle icon.
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceBundleDeploymentCriteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceBundleDeploymentCriteria.java
new file mode 100644
index 0000000..9414672
--- /dev/null
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceBundleDeploymentCriteria.java
@@ -0,0 +1,55 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2009 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.core.domain.criteria;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * @author Simeon Pinder
+ */
+@XmlRootElement
+(a)XmlAccessorType(XmlAccessType.FIELD)
+@SuppressWarnings("unused")
+public class ResourceBundleDeploymentCriteria extends BundleDeploymentCriteria {
+ private static final long serialVersionUID = 1L;
+
+ private List<Integer> filterResourceIds; // requires overrides
+
+ public ResourceBundleDeploymentCriteria() {
+ filterOverrides.put("resourceIds", "id IN " //
+ + "( SELECT ibd.id " //
+ + " FROM BundleDeployment ibd " //
+ + " JOIN ibd.resourceDeployments resourceDeployment " //
+ + " WHERE resourceDeployment.resource.id IN ( ? ) )");
+ }
+
+ public void addFilterResourceIds(Integer... filterResourceGroupIds) {
+ this.filterResourceIds = Arrays.asList(filterResourceGroupIds);
+ }
+
+ public List<Integer> getFilterIds() {
+ return filterResourceIds;
+ }
+}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/summary/AbstractActivityView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/summary/AbstractActivityView.java
index 13abdd5..af79008 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/summary/AbstractActivityView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/summary/AbstractActivityView.java
@@ -18,6 +18,10 @@
*/
package org.rhq.enterprise.gui.coregui.client.inventory.common.detail.summary;
+import java.util.Set;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.widgets.HTMLFlow;
import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.form.fields.FormItemIcon;
@@ -26,12 +30,17 @@ import com.smartgwt.client.widgets.form.fields.StaticTextItem;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
+import org.rhq.core.domain.criteria.ResourceGroupCriteria;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.ResourceCategory;
+import org.rhq.core.domain.resource.composite.ResourceComposite;
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.RefreshableView;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.util.BrowserUtility;
import org.rhq.enterprise.gui.coregui.client.util.measurement.GwtMonitorUtils;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableCanvas;
@@ -77,12 +86,18 @@ public abstract class AbstractActivityView extends LocatableHLayout
implements R
protected String SEE_MORE = MSG.common_msg_see_more();
private ResourceGroupComposite groupComposite = null;
+ private ResourceComposite resourceComposite = null;
+ private HLayout recentBundleDeployTitle;
- public AbstractActivityView(String locatorId, ResourceGroupComposite groupComposite)
{
+ public AbstractActivityView(String locatorId, ResourceGroupComposite groupComposite,
+ ResourceComposite resourceComposite) {
super(locatorId);
if (groupComposite != null) {
this.groupComposite = groupComposite;
}
+ if (resourceComposite != null) {
+ this.resourceComposite = resourceComposite;
+ }
initializeUi();
}
@@ -116,10 +131,13 @@ public abstract class AbstractActivityView extends LocatableHLayout
implements R
if (groupComposite != null) {
group = groupComposite.getResourceGroup();
}
+ if (resourceComposite != null) {
+ resource = resourceComposite.getResource();
+ }
//recentMetrics.xhtml
HLayout recentMetricsTitle = new
TitleWithIcon("subsystems/monitor/Monitor_24.png", RECENT_MEASUREMENTS);
- if ((group == null) || ((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {//resource,CompatibleGroup
+ if ((resource != null) || ((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {//resource,CompatibleGroup
leftPane.addMember(recentMetricsTitle);
leftPane.addMember(recentMeasurementsContent);
recentMeasurementsContent.setHeight(20);
@@ -133,7 +151,7 @@ public abstract class AbstractActivityView extends LocatableHLayout
implements R
//recentOOBs.xhtml
HLayout recentOobsTitle = new
TitleWithIcon("subsystems/monitor/Monitor_failed_24.png", RECENT_OOB);
- if ((group == null) || ((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {//resource,CompatibleGroup
+ if ((resource != null) || ((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {//resource,CompatibleGroup
leftPane.addMember(divider2);
leftPane.addMember(recentOobsTitle);
leftPane.addMember(recentOobContent);
@@ -147,7 +165,7 @@ public abstract class AbstractActivityView extends LocatableHLayout
implements R
//recentConfigUpdates.xhtml
HLayout recentConfigUpdatesTitle = new
TitleWithIcon("subsystems/configure/Configure_24.png",
RECENT_CONFIGURATIONS);
- if ((group == null) || ((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {//resource,CompatibleGroup
+ if ((resource != null) || ((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {//resource,CompatibleGroup
rightPane.addMember(recentConfigUpdatesTitle);
rightPane.addMember(recentConfigurationContent);
recentConfigurationContent.setHeight(20);
@@ -155,7 +173,7 @@ public abstract class AbstractActivityView extends LocatableHLayout
implements R
}
//recentOperations.xhtml
HLayout recentOperationsTitle = new
TitleWithIcon("subsystems/control/Operation_24.png", RECENT_OPERATIONS);
- if ((group == null) || ((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {//resource,CompatibleGroup
+ if ((resource != null) || ((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {//resource,CompatibleGroup
rightPane.addMember(recentOperationsTitle);
rightPane.addMember(recentOperationsContent);
recentOperationsContent.setHeight(20);
@@ -167,32 +185,83 @@ public abstract class AbstractActivityView extends LocatableHLayout
implements R
rightPane.addMember(recentEventsContent);
recentEventsContent.setHeight(20);
//recentPackageHistory.xhtml
- HLayout recentPkgHistoryTitle = new
TitleWithIcon("subsystems/content/Content_24.png", RECENT_PKG_HISTORY);
- if ((group == null) || ((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {//resource,CompatibleGroup
+ HLayout recentPkgHistoryTitle = new
TitleWithIcon("subsystems/inventory/Inventory_24.png", RECENT_PKG_HISTORY);
+ recentPkgHistoryContent.setHeight(20);
+ if ((resource != null) || ((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {//resource,CompatibleGroup
rightPane.addMember(divider5);
rightPane.addMember(recentPkgHistoryTitle);
rightPane.addMember(recentPkgHistoryContent);
- recentPkgHistoryContent.setHeight(20);
}
- HLayout recentBundleDeployTitle = new
TitleWithIcon("subsystems/content/Content_24.png", RECENT_BUNDLE_DEPLOY);
- // if (resource.type==Platform) || (Group(Mixed/Compat) of Platforms)
- // if ((group == null)&&())||((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {
- if (((group != null) &&
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)))) {
- rightPane.addMember(divider6);
- rightPane.addMember(recentBundleDeployTitle);
- rightPane.addMember(recentBundleDeployContent);
- recentBundleDeployTitle.setHeight(20);
- }
+ //recent bundle deployments
+ recentBundleDeployTitle = new
TitleWithIcon("subsystems/content/Content_24.png", RECENT_BUNDLE_DEPLOY);
+ recentBundleDeployTitle.setHeight(20);
+ deployBundleViewIfApplicable(resource, group);
addMember(leftPane);
addMember(rightPane);
}
+ private void deployBundleViewIfApplicable(Resource resource, ResourceGroup group) {
+ if (displayBundlesForResource(resource)) {
+ enableBundleArea();
+ } else {//necessarily need to check group membership for platforms
+ if (group != null) {
+ //displays bundles region if group is compatible and contains platform
resources
+ displayBundleDeploymentsForPlatformGroups(group);
+ }
+ }
+
+ }
+
+ protected boolean displayBundlesForResource(Resource resource) {
+ boolean display = false;
+ if ((resource != null) &&
(resource.getResourceType().getCategory().equals(ResourceCategory.PLATFORM))) {
+ display = true;
+ }
+ return display;
+ }
+
+ protected void displayBundleDeploymentsForPlatformGroups(final ResourceGroup group)
{
+ if (group != null) {
+ ResourceGroupCriteria criteria = new ResourceGroupCriteria();
+ criteria.addFilterId(group.getId());
+ criteria.fetchExplicitResources(true);
+
GWTServiceLookup.getResourceGroupService().findResourceGroupsByCriteria(criteria,
+ new AsyncCallback<PageList<ResourceGroup>>() {
+ @Override
+ public void onSuccess(PageList<ResourceGroup> results) {
+ if (!results.isEmpty()) {
+ ResourceGroup gp = results.get(0);
+ Set<Resource> explicitMembers =
gp.getExplicitResources();
+ Resource[] currentResources = new
Resource[explicitMembers.size()];
+ explicitMembers.toArray(currentResources);
+ if
(group.getGroupCategory().equals(GroupCategory.COMPATIBLE)) {
+ if
(currentResources[0].getResourceType().getCategory().equals(
+ ResourceCategory.PLATFORM)) {
+ enableBundleArea();
+ getRecentBundleDeployments();
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Log.debug("Error retrieving information for group [" +
group.getId() + "]:"
+ + caught.getMessage());
+ }
+ });
+
+ }
+ }
+
/** Implement to define calls to asynchronous calls out to UI display data.
*/
protected abstract void loadData();
+ protected abstract void getRecentBundleDeployments();
+
@Override
protected void onDraw() {
super.onDraw();
@@ -215,6 +284,15 @@ public abstract class AbstractActivityView extends LocatableHLayout
implements R
BrowserUtility.graphSparkLines();
}
+ private void enableBundleArea() {
+ HTMLFlow divider6 = new HTMLFlow("<hr/>");
+ divider6.setWidth("50%");
+
+ rightPane.addMember(divider6);
+ rightPane.addMember(recentBundleDeployTitle);
+ rightPane.addMember(recentBundleDeployContent);
+ }
+
/**Creates the section top titles with icon for regions of Activity page.
*/
public class TitleWithIcon extends HLayout {
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/summary/ActivityView2.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/summary/ActivityView2.java
index 98176d6..021a93b 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/summary/ActivityView2.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/summary/ActivityView2.java
@@ -52,6 +52,7 @@ import
org.rhq.core.domain.measurement.composite.MeasurementOOBComposite;
import org.rhq.core.domain.operation.GroupOperationHistory;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
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.PageControl;
import org.rhq.core.domain.util.PageList;
@@ -75,7 +76,7 @@ public class ActivityView2 extends AbstractActivityView {
private ResourceGroupComposite groupComposite;
public ActivityView2(String locatorId, ResourceGroupComposite groupComposite) {
- super(locatorId, groupComposite);
+ super(locatorId, groupComposite, null);
this.groupComposite = groupComposite;
}
@@ -98,7 +99,14 @@ public class ActivityView2 extends AbstractActivityView {
getRecentOobs();
getRecentPkgHistory();
getRecentMetrics();
- getRecentBundleDeployments();
+ }
+ //conditionally display Bundle deployments for groups of platforms only
+ ResourceGroup group = null;
+ if (groupComposite != null) {
+ group = groupComposite.getResourceGroup();
+ }
+ if (group != null) {
+ displayBundleDeploymentsForPlatformGroups(group);
}
}
@@ -450,7 +458,7 @@ public class ActivityView2 extends AbstractActivityView {
+ history.getPackageVersion().getVersion()));
row.setNumCols(3);
- StaticTextItem iconItem =
newTextItemIcon("subsystems/content/Content_16.png", null);
+ StaticTextItem iconItem =
newTextItemIcon("subsystems/inventory/Inventory_grey_16.png", null);
String title = history.getPackageVersion().getFileName() +
":";
String destination =
"/rhq/resource/content/audit-trail-item.xhtml?id=" + groupId
+ "&selectedHistoryId=" + history.getId();
@@ -627,7 +635,7 @@ public class ActivityView2 extends AbstractActivityView {
/** Fetches recent bundle deployment information and updates the DynamicForm instance
with details.
*/
- private void getRecentBundleDeployments() {
+ protected void getRecentBundleDeployments() {
final int groupId = this.groupComposite.getResourceGroup().getId();
GroupBundleDeploymentCriteria criteria = new GroupBundleDeploymentCriteria();
PageControl pageControl = new PageControl(0, 5);
@@ -670,7 +678,7 @@ public class ActivityView2 extends AbstractActivityView {
column.addMember(row);
}
//insert see more link
- //TODO: spinder(add this later) no current view for seeing all
bundle deployments
+ //TODO: spinder:2/25/11 (add this later) no current view for
seeing all bundle deployments
// LocatableDynamicForm row = new
LocatableDynamicForm(recentBundleDeployContent.extendLocatorId("RecentBundleContentSeeMore"));
// addSeeMoreLink(row,
LinkManager.getResourceGroupLink(groupId) + "/Events/History/", column);
} else {
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ActivityView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ActivityView.java
index 37b34f1..27ebb8c 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ActivityView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ActivityView.java
@@ -36,15 +36,18 @@ import com.smartgwt.client.widgets.form.fields.StaticTextItem;
import com.smartgwt.client.widgets.layout.VLayout;
import org.rhq.core.domain.alert.Alert;
+import org.rhq.core.domain.bundle.BundleDeployment;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
import org.rhq.core.domain.content.InstalledPackageHistory;
import org.rhq.core.domain.criteria.AlertCriteria;
import org.rhq.core.domain.criteria.InstalledPackageCriteria;
+import org.rhq.core.domain.criteria.ResourceBundleDeploymentCriteria;
import org.rhq.core.domain.event.EventSeverity;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowComposite;
import org.rhq.core.domain.measurement.composite.MeasurementOOBComposite;
import org.rhq.core.domain.operation.composite.ResourceOperationLastCompletedComposite;
+import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.ResourceComposite;
import org.rhq.core.domain.util.PageControl;
@@ -70,7 +73,7 @@ public class ActivityView extends AbstractActivityView {
private ResourceComposite resourceComposite;
public ActivityView(String locatorId, ResourceComposite resourceComposite) {
- super(locatorId, null);
+ super(locatorId, null, resourceComposite);
this.resourceComposite = resourceComposite;
}
@@ -90,6 +93,17 @@ public class ActivityView extends AbstractActivityView {
getRecentOobs();
getRecentPkgHistory();
getRecentMetrics();
+
+ //conditionally display Bundle Deployments region.
+ Resource resource = null;
+ // ResourceGroup group = null;
+ if (resourceComposite != null) {
+ resource = resourceComposite.getResource();
+ }
+ // if (deployBundleViewIfApplicable(resource, group)) {
+ if ((resource != null) && (displayBundlesForResource(resource))) {
+ getRecentBundleDeployments();
+ }
}
/** Fetches alerts and updates the DynamicForm instance with the latest
@@ -116,7 +130,6 @@ public class ActivityView extends AbstractActivityView {
LocatableDynamicForm row = new
LocatableDynamicForm(recentAlertsContent.extendLocatorId(String
.valueOf(rowNum++)));
row.setNumCols(3);
-
StaticTextItem iconItem =
newTextItemIcon(ImageManager.getAlertIcon(alert.getAlertDefinition()
.getPriority()),
alert.getAlertDefinition().getPriority().getDisplayName());
LinkItem link = newLinkItem(alert.getAlertDefinition().getName()
+ ": ",
@@ -420,7 +433,8 @@ public class ActivityView extends AbstractActivityView {
+ history.getPackageVersion().getVersion()));
row.setNumCols(3);
- StaticTextItem iconItem =
newTextItemIcon("subsystems/content/Content_16.png", null);
+ StaticTextItem iconItem =
newTextItemIcon("subsystems/inventory/Inventory_grey_16.png",
+ null);
String title = history.getPackageVersion().getFileName() +
":";
String destination =
"/rhq/resource/content/audit-trail-item.xhtml?id=" + resourceId
+ "&selectedHistoryId=" + history.getId();
@@ -594,4 +608,69 @@ public class ActivityView extends AbstractActivityView {
recentMeasurementsContent.addChild(column);
recentMeasurementsContent.markForRedraw();
}
+
+ /** Fetches recent bundle deployment information and updates the DynamicForm instance
with details.
+ */
+ protected void getRecentBundleDeployments() {
+ final int resourceId = this.resourceComposite.getResource().getId();
+ ResourceBundleDeploymentCriteria criteria = new
ResourceBundleDeploymentCriteria();
+ PageControl pageControl = new PageControl(0, 5);
+ criteria.setPageControl(pageControl);
+ criteria.addFilterResourceIds(resourceId);
+ criteria.addSortStatus(PageOrdering.DESC);
+ criteria.fetchDestination(true);
+ criteria.fetchBundleVersion(true);
+ criteria.fetchResourceDeployments(true);
+
+ GWTServiceLookup.getBundleService().findBundleDeploymentsByCriteria(criteria,
+ new AsyncCallback<PageList<BundleDeployment>>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ Log.debug("Error retrieving installed bundle deployments for
resource [" + resourceId + "]:"
+ + caught.getMessage());
+ }
+
+ @Override
+ public void onSuccess(PageList<BundleDeployment> result) {
+ VLayout column = new VLayout();
+ column.setHeight(10);
+ if (!result.isEmpty()) {
+ for (BundleDeployment deployment : result) {
+ LocatableDynamicForm row = new
LocatableDynamicForm(recentBundleDeployContent
+ .extendLocatorId(deployment.getBundleVersion().getName()
+ + deployment.getBundleVersion().getVersion()));
+ row.setNumCols(3);
+
+ StaticTextItem iconItem =
newTextItemIcon("subsystems/content/Content_16.png", null);
+ String title = deployment.getBundleVersion().getName() +
"["
+ + deployment.getBundleVersion().getVersion() +
"]:";
+
+ String destination = ReportDecorator.GWT_BUNDLE_URL
+ + deployment.getBundleVersion().getBundle().getId() +
"/destinations/"
+ + deployment.getDestination().getId();
+ LinkItem link = newLinkItem(title, destination);
+ StaticTextItem time =
newTextItem(GwtRelativeDurationConverter
+ .format(deployment.getCtime()));
+
+ row.setItems(iconItem, link, time);
+ column.addMember(row);
+ }
+ //insert see more link
+ //TODO: spinder:2/25/11 (add this later) no current view for
seeing all bundle deployments
+ // LocatableDynamicForm row = new
LocatableDynamicForm(recentBundleDeployContent.extendLocatorId("RecentBundleContentSeeMore"));
+ // addSeeMoreLink(row,
LinkManager.getResourceGroupLink(groupId) + "/Events/History/", column);
+ } else {
+ LocatableDynamicForm row =
createEmptyDisplayRow(recentBundleDeployContent
+ .extendLocatorId("None"),
RECENT_BUNDLE_DEPLOY_NONE);
+ column.addMember(row);
+ }
+ //cleanup
+ for (Canvas child : recentBundleDeployContent.getChildren()) {
+ child.destroy();
+ }
+ recentBundleDeployContent.addChild(column);
+ recentBundleDeployContent.markForRedraw();
+ }
+ });
+ }
}