[rhq] Changes to 'ec2'
by John Sanda
New branch 'ec2' available with the following commits:
commit 6372cc4d683d74f06c481e78ebc6b547a7ba2990
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Sep 14 16:09:47 2010 -0400
Adding logic to check for and skip initialization if it has already run
The initialization function only needs to run the first time an agent
runs so that the server endpoint url can be specified. That url will be
supplied in the AMI's user-defined data. Also adding logic to force
initialization to run when specifying the <init> cmd line arg.
commit a528859af5227b9e97c95bf51cc49d2e23b61d6d
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Sep 14 15:03:27 2010 -0400
Initial commit for rhq-agent-wrapper-ec2 script
This is a wrapper script for rhq-agent-wrapper.sh that additionally configures
the server endpoint url and will also set up the agent to run as a service.
commit 33e7a898859c456a723c8fd08f11dbdf0b273c13
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Sep 13 11:07:21 2010 -0400
Adding new operation to rhq-agent plugin to update the server endpoint url
Invoking the switchToServer operation will result in the operation switching
over to the specified server. In an EC2 deployment, the server can invoke this
operation whenever its IP address has changed. Then the agent will have a valid
server endpoint url from which it can download its failover list.
13 years, 9 months
[rhq] modules/enterprise
by mazz
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java | 172 +++++++---
1 file changed, 133 insertions(+), 39 deletions(-)
New commits:
commit b8d27202c55b4ebc0285562df1c7ce7b1adb32fc
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Sep 15 15:59:15 2010 -0400
try to clean up the utility that formats the alert condition strings.
make sure its more easily i18n'able for later
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java
index 2554746..098e92a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java
@@ -26,31 +26,134 @@ import org.rhq.core.domain.alert.Alert;
import org.rhq.core.domain.alert.AlertCondition;
import org.rhq.core.domain.alert.AlertConditionCategory;
import org.rhq.core.domain.alert.AlertDefinition;
-import org.rhq.core.domain.measurement.MeasurementBaseline;
import org.rhq.core.domain.measurement.MeasurementConverterClient;
-import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.MeasurementUnits;
-import org.rhq.core.domain.measurement.util.MeasurementConversionException;
-
-import java.util.ArrayList;
-import java.util.List;
/**
* The methods in this class are ported from AlertDefUtil from portal-war and MeasurementFormatter from
* server-jar.
*
* @author Ian Springer
+ * @author John Mazzitelli
*/
public class AlertFormatUtility {
- private static final String BASELINE_OPT_MEAN = "mean";
- private static final String BASELINE_OPT_MIN = "min";
- private static final String BASELINE_OPT_MAX = "max";
+ private AlertFormatUtility() {
+ }
+
+ public static String formatAlertConditionForDisplay(AlertCondition condition) {
+ StringBuilder str = new StringBuilder();
+
+ AlertConditionCategory category = condition.getCategory();
+ switch (category) {
+ case AVAILABILITY: {
+ str.append("Availability Change");
+ str.append(" [");
+ str.append("Going").append(' '); // to reinforce this is on the state transition
+ str.append(condition.getOption());
+ str.append("]");
+ break;
+ }
+ case THRESHOLD: {
+ str.append("Metric Value Exceeds Threshold");
+ str.append(" [");
+ str.append(condition.getName());
+ str.append(" ");
+ str.append(condition.getComparator());
+ str.append(" ");
+ double value = condition.getThreshold();
+ MeasurementUnits units = condition.getMeasurementDefinition().getUnits();
+ String formatted = MeasurementConverterClient.format(value, units, true);
+ str.append(formatted);
+ str.append("]");
+ break;
+ }
+ case BASELINE: {
+ str.append("Metric Value Exceeds Baseline");
+ str.append(" [");
+ str.append(condition.getName());
+ str.append(" ");
+ str.append(condition.getComparator());
+ str.append(" ");
+
+ double value = condition.getThreshold();
+ MeasurementUnits units = MeasurementUnits.PERCENTAGE;
+ String formatted = MeasurementConverterClient.format(value, units, true);
+ str.append(formatted);
- private static final String MEASUREMENT_BASELINE_MIN_TEXT = "Min Value";
- private static final String MEASUREMENT_BASELINE_MEAN_TEXT = "Baseline Value";
- private static final String MEASUREMENT_BASELINE_MAX_TEXT = "Max Value";
+ str.append(" ").append("of").append(" ");
+ str.append(condition.getOption());
+ str.append("]");
+ break;
+ }
+ case CHANGE: {
+ str.append("Metric Value Change");
+ str.append(" [");
+ str.append(condition.getName());
+ str.append("]");
+ break;
+ }
+ case TRAIT: {
+ str.append("Trait Change");
+ str.append(" [");
+ str.append(condition.getName());
+ str.append("]");
+ break;
+ }
+ case CONTROL: {
+ str.append("Operation Execution");
+ str.append(" [");
+ str.append(condition.getName());
+ str.append("] ");
+ str.append("with result status");
+ str.append(" [");
+ str.append(condition.getOption());
+ str.append("]");
+ break;
+ }
+ case RESOURCE_CONFIG: {
+ str.append("Resource Configuration Change");
+ break;
+ }
+ case EVENT: {
+ str.append("Event Detection");
+ str.append(" [");
+ str.append(condition.getName());
+ str.append("]");
+ if (condition.getOption() != null && condition.getOption().length() > 0) {
+ str.append(" ");
+ str.append("matching");
+ str.append(" [");
+ str.append(condition.getOption());
+ str.append("]");
+ }
+ break;
+ }
+ default: {
+ str.append("BAD CATEGORY: ").append(category.name());
+ break;
+ }
+ }
+ return str.toString();
+ }
+
+ public static String getAlertRecoveryInfo(Alert alert) {
+ String recoveryInfo;
+ AlertDefinition recoveryAlertDefinition = alert.getRecoveryAlertDefinition();
+ if (recoveryAlertDefinition != null && recoveryAlertDefinition.getId() != 0) {
+ int resourceId = alert.getAlertDefinition().getResource().getId();
+ recoveryInfo = "Triggered '<a href=\"/alerts/Config.do?mode=viewRoles&id=" + resourceId + "&ad="
+ + recoveryAlertDefinition.getId() + "\">" + recoveryAlertDefinition.getName()
+ + "</a>' to be re-enabled.";
+ } else if (alert.getWillRecover()) {
+ recoveryInfo = "This alert caused its alert definition to be disabled.";
+ } else {
+ recoveryInfo = "N/A";
+ }
+ return recoveryInfo;
+ }
+
+ /* THIS IS THE OLD CODE - IT HAS LOTS OF TODOs AND DIDN'T FULLY WORK
- @SuppressWarnings("deprecation")
public static String formatAlertConditionForDisplay(AlertCondition condition) {
AlertConditionCategory category = condition.getCategory();
@@ -60,11 +163,11 @@ public class AlertFormatUtility {
if (category == AlertConditionCategory.CONTROL) {
try {
String operationName = condition.getName();
- /*Integer resourceTypeId = condition.getAlertDefinition().getResource().getResourceType().getId();
- OperationManagerLocal operationManager = LookupUtil.getOperationManager();
- OperationDefinition definition = operationManager.getOperationDefinitionByResourceTypeAndName(
- resourceTypeId, operationName, false);
- String operationDisplayName = definition.getDisplayName();*/
+ //Integer resourceTypeId = condition.getAlertDefinition().getResource().getResourceType().getId();
+ //OperationManagerLocal operationManager = LookupUtil.getOperationManager();
+ //OperationDefinition definition = operationManager.getOperationDefinitionByResourceTypeAndName(
+ // resourceTypeId, operationName, false);
+ //String operationDisplayName = definition.getDisplayName();
textValue.append(operationName).append(' ');
} catch (Exception e) {
textValue.append(condition.getName()).append(' ');
@@ -124,22 +227,15 @@ public class AlertFormatUtility {
return textValue.toString();
}
- public static String getAlertRecoveryInfo(Alert alert) {
- String recoveryInfo;
- AlertDefinition recoveryAlertDefinition = alert.getRecoveryAlertDefinition();
- if (recoveryAlertDefinition != null && recoveryAlertDefinition.getId() != 0) {
- int resourceId = alert.getAlertDefinition().getResource().getId();
- recoveryInfo = "Triggered '<a href=\"/alerts/Config.do?mode=viewRoles&id=" + resourceId + "&ad=" + recoveryAlertDefinition.getId()
- + "\">" + recoveryAlertDefinition.getName() + "</a>' to be re-enabled.";
- } else if (alert.getWillRecover()) {
- recoveryInfo = "This alert caused its alert definition to be disabled.";
- } else {
- recoveryInfo = "N/A";
- }
- return recoveryInfo;
- }
-
private static String getBaselineText(String baselineOption, MeasurementSchedule schedule) {
+ final String BASELINE_OPT_MEAN = "mean";
+ final String BASELINE_OPT_MIN = "min";
+ final String BASELINE_OPT_MAX = "max";
+
+ final String MEASUREMENT_BASELINE_MIN_TEXT = "Min Value";
+ final String MEASUREMENT_BASELINE_MEAN_TEXT = "Baseline Value";
+ final String MEASUREMENT_BASELINE_MAX_TEXT = "Max Value";
+
if ((null != schedule) && (null != schedule.getBaseline())) {
MeasurementBaseline baseline = schedule.getBaseline();
@@ -165,10 +261,9 @@ public class AlertFormatUtility {
return lookupText;
}
}
- /*
- * will need a fall-through here because the value was null; this can happen when the user requests to view
- * the formatted baseline before the first time it has been calculated
- */
+
+ // will need a fall-through here because the value was null; this can happen when the user requests to view
+ // the formatted baseline before the first time it has been calculated
}
// here is the fall-through
@@ -181,6 +276,5 @@ public class AlertFormatUtility {
}
}
- private AlertFormatUtility() {
- }
+ */
}
13 years, 9 months
[rhq] modules/enterprise
by ips
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java | 22 ++++++----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTopView.java | 16 +++----
2 files changed, 22 insertions(+), 16 deletions(-)
New commits:
commit 450baca8071b03cdc9ad9ed5bd0647554a3c53f3
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed Sep 15 15:14:14 2010 -0400
fix group bookmarking
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
index 8f0f711..aa2ee61 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
@@ -29,6 +29,7 @@ import java.util.Set;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.data.Record;
import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.widgets.grid.events.SelectionChangedHandler;
import com.smartgwt.client.widgets.grid.events.SelectionEvent;
@@ -100,13 +101,20 @@ public class ResourceGroupTreeView extends VLayout implements BookmarkableView {
@Override
public void onSelectionChanged(SelectionEvent selectionEvent) {
if (selectionEvent.getState()) {
- ClusterKey key = (ClusterKey) selectionEvent.getRecord().getAttributeAsObject("key");
+ Record selectedNode = selectionEvent.getRecord();
+ System.out.println("Node selected in tree: " + selectedNode);
+ ClusterKey key = (ClusterKey) selectedNode.getAttributeAsObject("key");
if (key == null) {
- // selected the root group
- History.newItem("ResourceGroup/" + selectionEvent.getRecord().getAttribute("id"));
+ // The root group was selected.
+ String groupId = selectedNode.getAttribute("id");
+ //System.out.println("Selecting group [" + groupId + "]...");
+ String viewPath = "ResourceGroup/" + groupId;
+ String currentViewPath = History.getToken();
+ if (!currentViewPath.startsWith(viewPath)) {
+ CoreGUI.goToView(viewPath);
+ }
} else {
- System.out.println("Select group: " + key);
-
+ //System.out.println("Selecting cluster group [" + key + "]...");
selectClusterGroup(key);
}
}
@@ -160,7 +168,6 @@ public class ResourceGroupTreeView extends VLayout implements BookmarkableView {
}
});
-
}
@@ -232,7 +239,8 @@ public class ResourceGroupTreeView extends VLayout implements BookmarkableView {
@Override
public void onSuccess(ResourceGroup result) {
- History.newItem("ResourceGroup/" + result.getId());
+ int groupId = result.getId();
+ History.newItem("ResourceGroup/" + groupId);
}
});
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTopView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTopView.java
index 7fae500..ec96874 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTopView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTopView.java
@@ -21,10 +21,7 @@ package org.rhq.enterprise.gui.coregui.client.inventory.resource.detail;
import com.smartgwt.client.widgets.Canvas;
import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
-import org.rhq.enterprise.gui.coregui.client.ViewId;
import org.rhq.enterprise.gui.coregui.client.ViewPath;
-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.util.selenium.LocatableHLayout;
/**
@@ -33,11 +30,9 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHLayout;
public class ResourceTopView extends LocatableHLayout implements BookmarkableView {
private Canvas contentCanvas;
-
private ResourceTreeView treeView;
private ResourceDetailView detailView = new ResourceDetailView(extendLocatorId("Detail"));
- private ResourceGWTServiceAsync resourceService = GWTServiceLookup.getResourceService();
public ResourceTopView(String locatorId) {
super(locatorId);
@@ -54,13 +49,16 @@ public class ResourceTopView extends LocatableHLayout implements BookmarkableVie
setContent(detailView);
}
+
public void setContent(Canvas newContent) {
- if (contentCanvas.getChildren().length > 0)
- contentCanvas.getChildren()[0].destroy();
- contentCanvas.addChild(newContent);
- contentCanvas.markForRedraw();
+ for (Canvas child : this.contentCanvas.getChildren()) {
+ child.destroy();
+ }
+ this.contentCanvas.addChild(newContent);
+ this.contentCanvas.markForRedraw();
}
+
public void renderView(ViewPath viewPath) {
this.treeView.renderView(viewPath);
this.detailView.renderView(viewPath);
13 years, 9 months
[rhq] 2 commits - modules/enterprise
by ips
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTopView.java | 9 +-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/InventoryView.java | 39 ++++------
2 files changed, 24 insertions(+), 24 deletions(-)
New commits:
commit fbbdb7e785d6acf996432c38cfeeab05db8f4236
Merge: bee88fc... d20fd07...
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed Sep 15 15:06:16 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit bee88fcb8d8ef26c881c1ba9f28149858d6cd7a6
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed Sep 15 15:00:30 2010 -0400
fix going to bookmark via browser for subviews of the Inventory view that have details (e.g. http://localhost:7080/coregui/CoreGUI.html?gwt.codesvr=127.0.0.1:9997#Inv...)
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTopView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTopView.java
index a205584..ac0281c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTopView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTopView.java
@@ -64,10 +64,11 @@ public class ResourceGroupTopView extends LocatableHLayout implements Bookmarkab
public void setContent(Canvas newContent) {
- if (contentCanvas.getChildren().length > 0)
- contentCanvas.getChildren()[0].destroy();
- contentCanvas.addChild(newContent);
- contentCanvas.markForRedraw();
+ for (Canvas child : this.contentCanvas.getChildren()) {
+ child.destroy();
+ }
+ this.contentCanvas.addChild(newContent);
+ this.contentCanvas.markForRedraw();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/InventoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/InventoryView.java
index c31881c..faa406e 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/InventoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/InventoryView.java
@@ -19,6 +19,7 @@
package org.rhq.enterprise.gui.coregui.client.inventory.resource;
import java.util.LinkedHashMap;
+import java.util.Map;
import com.google.gwt.user.client.History;
import com.smartgwt.client.data.Criteria;
@@ -77,7 +78,7 @@ public class InventoryView extends LocatableHLayout implements BookmarkableView
private Canvas contentCanvas;
private Canvas currentContent;
- private LinkedHashMap<String, TreeGrid> treeGrids = new LinkedHashMap<String, TreeGrid>();
+ private Map<String, TreeGrid> treeGrids = new LinkedHashMap<String, TreeGrid>();
private SectionStack sectionStack;
@@ -105,18 +106,23 @@ public class InventoryView extends LocatableHLayout implements BookmarkableView
buildResourcesSection();
buildGroupsSection();
- for (final String name : treeGrids.keySet()) {
- TreeGrid grid = treeGrids.get(name);
+ for (final String sectionName : treeGrids.keySet()) {
+ TreeGrid grid = treeGrids.get(sectionName);
grid.addSelectionChangedHandler(new SelectionChangedHandler() {
public void onSelectionChanged(SelectionEvent selectionEvent) {
if (selectionEvent.getState()) {
- CoreGUI.goToView("Inventory/" + name + "/" + selectionEvent.getRecord().getAttribute("name"));
+ String pageName = selectionEvent.getRecord().getAttribute("name");
+ String viewPath = "Inventory/" + sectionName + "/" + pageName;
+ String currentViewPath = History.getToken();
+ if (!currentViewPath.startsWith(viewPath)) {
+ CoreGUI.goToView(viewPath);
+ }
}
}
});
- SectionStackSection section = new SectionStackSection(name);
+ SectionStackSection section = new SectionStackSection(sectionName);
section.setExpanded(true);
section.addItem(grid);
@@ -196,15 +202,11 @@ public class InventoryView extends LocatableHLayout implements BookmarkableView
}
public void setContent(Canvas newContent) {
-
- if (contentCanvas.getChildren().length > 0) {
- for (Canvas child : contentCanvas.getChildren()) {
- child.destroy();
- }
+ for (Canvas child : this.contentCanvas.getChildren()) {
+ child.destroy();
}
-
- contentCanvas.addChild(newContent);
- contentCanvas.markForRedraw();
+ this.contentCanvas.addChild(newContent);
+ this.contentCanvas.markForRedraw();
this.currentContent = newContent;
}
@@ -288,22 +290,19 @@ public class InventoryView extends LocatableHLayout implements BookmarkableView
}
public void renderView(ViewPath viewPath) {
-
if (!viewPath.isCurrent(currentSectionViewId) || !viewPath.isNext(currentPageViewId)) {
-
if (viewPath.isEnd()) {
- // Display default view
- History.newItem("Inventory/Resources/Platforms");
+ // i.e. "Inventory" - display default view
+ History.newItem("Inventory/Resources/Platforms", false);
} else {
-
+ // e.g. Inventory/Administration"
renderContentView(viewPath);
}
} else {
if (this.currentContent instanceof BookmarkableView) {
((BookmarkableView) this.currentContent).renderView(viewPath.next().next());
}
-
}
-
}
+
}
13 years, 9 months
[rhq] 2 commits - modules/enterprise
by Joseph Marques
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java | 72 ++++++----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/FormUtility.java | 46 ++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java | 10 +
4 files changed, 103 insertions(+), 27 deletions(-)
New commits:
commit d20fd07a539d5e2d420144014c72a4cc826556d6
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Sep 15 15:05:20 2010 -0400
further work for creating new group definitions
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
index b2cbadb..c4a4bca 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
@@ -51,4 +51,6 @@ public interface ResourceGroupGWTService extends RemoteService {
void updateGroupDefinition(GroupDefinition groupDefinition);
void deleteGroupDefinitions(int[] groupDefinitionIds);
+
+ GroupDefinition createGroupDefinition(GroupDefinition groupDefinition);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java
index e5885f4..d96880d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java
@@ -22,12 +22,12 @@ import java.util.LinkedHashMap;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.Overflow;
-import com.smartgwt.client.widgets.form.fields.RadioGroupItem;
+import com.smartgwt.client.widgets.form.fields.ButtonItem;
+import com.smartgwt.client.widgets.form.fields.CheckboxItem;
import com.smartgwt.client.widgets.form.fields.ResetItem;
import com.smartgwt.client.widgets.form.fields.SelectItem;
import com.smartgwt.client.widgets.form.fields.SpinnerItem;
import com.smartgwt.client.widgets.form.fields.StaticTextItem;
-import com.smartgwt.client.widgets.form.fields.SubmitItem;
import com.smartgwt.client.widgets.form.fields.TextAreaItem;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
@@ -42,6 +42,7 @@ import org.rhq.enterprise.gui.coregui.client.LinkManager;
import org.rhq.enterprise.gui.coregui.client.ViewId;
import org.rhq.enterprise.gui.coregui.client.ViewPath;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.util.FormUtility;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
@@ -57,7 +58,7 @@ public class SingleGroupDefinitionView extends LocatableVLayout implements Bookm
private TextItem name;
private TextAreaItem description;
- private RadioGroupItem recursive;
+ private CheckboxItem recursive;
private SelectItem templateSelector;
private TextAreaItem expression;
private SpinnerItem recalculationInterval;
@@ -106,13 +107,12 @@ public class SingleGroupDefinitionView extends LocatableVLayout implements Bookm
expression.setValue(groupDefinition.getExpression());
expressionStatic.setValue(groupDefinition.getExpression());
- SubmitItem saveButton = new SubmitItem("save", "Save");
+ ButtonItem saveButton = new ButtonItem("save", "Save");
ResetItem resetButton = new ResetItem("reset", "Reset");
saveButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent clickEvent) {
- save();
- System.out.println("Save is done");
+ createOrUpdate();
}
});
@@ -168,28 +168,46 @@ public class SingleGroupDefinitionView extends LocatableVLayout implements Bookm
markForRedraw();
}
- public void save() {
- groupDefinition.setName(name.getValue().toString());
- groupDefinition.setDescription(description.getValue().toString());
+ public void createOrUpdate() {
+ groupDefinition.setName(FormUtility.getStringSafely(name));
+ groupDefinition.setDescription(FormUtility.getStringSafely(description));
groupDefinition.setRecursive("Yes".equals(recursive.getValue()));
- groupDefinition.setExpression(expression.getValue().toString());
- groupDefinition.setRecalculationInterval(Long.valueOf(recalculationInterval.getValue().toString()));
-
- GWTServiceLookup.getResourceGroupService().updateGroupDefinition(groupDefinition, new AsyncCallback<Void>() {
- @Override
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failure saving group definition[id=" + groupDefinitionId + "]",
- caught);
- }
+ groupDefinition.setExpression(FormUtility.getStringSafely(expression));
+ groupDefinition.setRecalculationInterval(Long.valueOf(FormUtility.getStringSafely(recalculationInterval, "0")));
- @Override
- public void onSuccess(Void result) {
- CoreGUI.getErrorHandler().handleError(
- "Successfully saved group definition[id=" + groupDefinitionId + "]");
- String listViewLink = LinkManager.getHubGroupDefinitionsLink();
- CoreGUI.goToView(listViewLink.substring(1));
- }
- });
+ final String name = groupDefinition.getName();
+ if (groupDefinitionId == 0) {
+ GWTServiceLookup.getResourceGroupService().createGroupDefinition(groupDefinition,
+ new AsyncCallback<GroupDefinition>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failure to create group definition '" + name + "'",
+ caught);
+ }
+
+ @Override
+ public void onSuccess(GroupDefinition result) {
+ CoreGUI.getErrorHandler().handleError("Successfully created group definition '" + name + "'");
+ String listViewLink = LinkManager.getHubGroupDefinitionsLink();
+ CoreGUI.goToView(listViewLink.substring(1));
+ }
+ });
+ } else {
+ GWTServiceLookup.getResourceGroupService().updateGroupDefinition(groupDefinition,
+ new AsyncCallback<Void>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failure saving group definition '" + name + "'", caught);
+ }
+
+ @Override
+ public void onSuccess(Void result) {
+ CoreGUI.getErrorHandler().handleError("Successfully saved group definition '" + name + "'");
+ String listViewLink = LinkManager.getHubGroupDefinitionsLink();
+ CoreGUI.goToView(listViewLink.substring(1));
+ }
+ });
+ }
}
public void clearFormValues() {
@@ -222,7 +240,7 @@ public class SingleGroupDefinitionView extends LocatableVLayout implements Bookm
description.setDefaultValue("");
descriptionStatic = new StaticTextItem("descriptionStatic", "Description");
- recursive = new RadioGroupItem("recursive", "Recursive");
+ recursive = new CheckboxItem("recursive", "Recursive");
recursive.setValueMap("Yes", "No");
recursive.setDefaultValue("Yes");
recursiveStatic = new StaticTextItem("recursiveStatic", "Recursive");
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
index ccb4db5..46c965c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
@@ -78,6 +78,16 @@ public class ResourceGroupGWTServiceImpl extends AbstractGWTServiceImpl implemen
groupManager.updateResourceGroup(getSessionSubject(), group);
}
+ public GroupDefinition createGroupDefinition(GroupDefinition groupDefinition) {
+ try {
+ GroupDefinition results = definitionManager.createGroupDefinition(getSessionSubject(), groupDefinition);
+
+ return SerialUtility.prepare(results, "ResourceGroupService.createGroupDefinition");
+ } catch (Throwable t) {
+ throw new RuntimeException(t.getMessage());
+ }
+ }
+
public void updateGroupDefinition(GroupDefinition groupDefinition) {
try {
definitionManager.updateGroupDefinition(getSessionSubject(), groupDefinition);
commit 733a2e6f9da1ae93ac22ea8e40ccce5ec26139b9
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Sep 15 15:04:22 2010 -0400
form utility class
* initial functions will safely get the string value of a form item
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/FormUtility.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/FormUtility.java
new file mode 100644
index 0000000..9f118a7
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/FormUtility.java
@@ -0,0 +1,46 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 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.util;
+
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.FormItem;
+
+/**
+ * A collection of utility methods for working with SmartGWT {@link DynamicForm}s.
+ *
+ * @author Joseph Marques
+ */
+public class FormUtility {
+ private FormUtility() {
+ // statuc utility class only
+ }
+
+ public static String getStringSafely(FormItem item) {
+ return getStringSafely(item, null);
+ }
+
+ public static String getStringSafely(FormItem item, String defaultValue) {
+ if (item.getValue() == null) {
+ return defaultValue;
+ } else {
+ return item.getValue().toString();
+ }
+ }
+
+}
13 years, 9 months
[rhq] 3 commits - modules/enterprise
by Joseph Marques
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java | 1
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java | 28 ++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java | 9 --
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/TableUtility.java | 44 ++++++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java | 10 ++
5 files changed, 86 insertions(+), 6 deletions(-)
New commits:
commit 96f824472b703f28a0c927af4fd06fce94d2b3db
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Sep 15 13:57:53 2010 -0400
add ability to remove existing group definitions from the list view
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
index d6a638a..b2cbadb 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
@@ -50,4 +50,5 @@ public interface ResourceGroupGWTService extends RemoteService {
void updateGroupDefinition(GroupDefinition groupDefinition);
+ void deleteGroupDefinitions(int[] groupDefinitionIds);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java
index 1a1d32f..ce31dd5 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java
@@ -18,14 +18,21 @@
*/
package org.rhq.enterprise.gui.coregui.client.inventory.groups.definitions;
+import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridRecord;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.components.table.Table;
import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
import org.rhq.enterprise.gui.coregui.client.components.table.TableSection;
+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.TableUtility;
+import org.rhq.enterprise.gui.coregui.client.util.message.Message;
+import org.rhq.enterprise.gui.coregui.client.util.message.Message.Severity;
/**
* @author Greg Hinkle
@@ -61,6 +68,27 @@ public class GroupDefinitionListView extends TableSection {
newDetails();
}
});
+
+ addTableAction(extendLocatorId("Delete"), "Delete", Table.SelectionEnablement.ANY, null, new TableAction() {
+ public void executeAction(ListGridRecord[] selection) {
+ final int[] groupDefinitionIds = TableUtility.getIds(selection);
+ ResourceGroupGWTServiceAsync groupManager = GWTServiceLookup.getResourceGroupService();
+ groupManager.deleteGroupDefinitions(groupDefinitionIds, new AsyncCallback<Void>() {
+ @Override
+ public void onSuccess(Void result) {
+ CoreGUI.getMessageCenter().notify(
+ new Message("Successfully deleted " + groupDefinitionIds.length + " group definitions",
+ Severity.Info));
+ GroupDefinitionListView.this.refresh();
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to delete selected group definitions", caught);
+ }
+ });
+ }
+ });
}
@Override
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
index 4b59caf..ccb4db5 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
@@ -86,4 +86,14 @@ public class ResourceGroupGWTServiceImpl extends AbstractGWTServiceImpl implemen
}
}
+ public void deleteGroupDefinitions(int[] groupDefinitionIds) {
+ try {
+ for (int nextGroupDefinitionId : groupDefinitionIds) {
+ definitionManager.removeGroupDefinition(getSessionSubject(), nextGroupDefinitionId);
+ }
+ } catch (Throwable t) {
+ throw new RuntimeException(t.getMessage());
+ }
+ }
+
}
\ No newline at end of file
commit af400930f6873b0e3d7ff6ec7fb8b1672e7cf580
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Sep 15 13:57:15 2010 -0400
update ResourceSearchView to use new TableUtility id extract method
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 a77a9d9..9817819 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
@@ -44,6 +44,7 @@ import org.rhq.enterprise.gui.coregui.client.components.table.Table;
import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
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.util.TableUtility;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
import org.rhq.enterprise.gui.coregui.client.util.message.Message.Severity;
@@ -130,12 +131,8 @@ public class ResourceSearchView extends Table {
addTableAction(extendLocatorId("Uninventory"), "Uninventory", Table.SelectionEnablement.ANY,
"Are you sure you want to uninventory # resources?", new TableAction() {
- public void executeAction(ListGridRecord[] selections) {
- int[] resourceIds = new int[selections.length];
- int index = 0;
- for (ListGridRecord selection : selections) {
- resourceIds[index++] = selection.getAttributeAsInt("id");
- }
+ public void executeAction(ListGridRecord[] selection) {
+ int[] resourceIds = TableUtility.getIds(selection);
ResourceGWTServiceAsync resourceManager = GWTServiceLookup.getResourceService();
resourceManager.uninventoryResources(resourceIds, new AsyncCallback<List<Integer>>() {
commit 64a808768f65ce9deab73407e25ed8dd4cb4f12a
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Sep 15 13:56:32 2010 -0400
add utility to extract primary keys of selected list grid records
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/TableUtility.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/TableUtility.java
new file mode 100644
index 0000000..1cb0b2c
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/TableUtility.java
@@ -0,0 +1,44 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 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.util;
+
+import com.smartgwt.client.widgets.grid.ListGridRecord;
+
+import org.rhq.enterprise.gui.coregui.client.components.table.Table;
+
+/**
+ * A collection of utility methods for working with {@link Table}s.
+ *
+ * @author Joseph Marques
+ */
+public class TableUtility {
+ private TableUtility() {
+ // statuc utility class only
+ }
+
+ public static int[] getIds(ListGridRecord[] selections) {
+ int[] ids = new int[selections.length];
+ int index = 0;
+ for (ListGridRecord selection : selections) {
+ ids[index++] = selection.getAttributeAsInt("id");
+ }
+ return ids;
+ }
+
+}
13 years, 9 months
[rhq] etc/eclipse-tools
by mazz
etc/eclipse-tools/maven/RHQ | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit fbe80740ce2ed5b6eb2e392fbc52baccd87b4c63
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Sep 15 13:50:58 2010 -0400
pass in empty param
diff --git a/etc/eclipse-tools/maven/RHQ Maven Build - Run GWT DevMode.launch b/etc/eclipse-tools/maven/RHQ Maven Build - Run GWT DevMode.launch
index f1b94d5..cd53875 100644
--- a/etc/eclipse-tools/maven/RHQ Maven Build - Run GWT DevMode.launch
+++ b/etc/eclipse-tools/maven/RHQ Maven Build - Run GWT DevMode.launch
@@ -6,6 +6,6 @@
<listEntry value="org.eclipse.ui.externaltools.launchGroup"/>
</listAttribute>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${env_var:M2_HOME}/bin/${MAVEN_EXE}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-o -Dmaven.test.skip=true gwt:run"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-o -Dmaven.test.skip=true gwt:run -DcoreGuiParams="/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/rhq/modules/enterprise/gui/coregui}"/>
</launchConfiguration>
13 years, 9 months
[rhq] etc/eclipse-tools
by mazz
etc/eclipse-tools/maven/RHQ | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit bf86450cb49576b96ec4065380e52f297eedcd24
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Sep 15 13:30:02 2010 -0400
pass in an empty params string prop
diff --git a/etc/eclipse-tools/maven/RHQ Maven Build - Run GWT DevMode-JPDA.launch b/etc/eclipse-tools/maven/RHQ Maven Build - Run GWT DevMode-JPDA.launch
index 6f5b7c2..a523723 100644
--- a/etc/eclipse-tools/maven/RHQ Maven Build - Run GWT DevMode-JPDA.launch
+++ b/etc/eclipse-tools/maven/RHQ Maven Build - Run GWT DevMode-JPDA.launch
@@ -6,6 +6,6 @@
<listEntry value="org.eclipse.ui.externaltools.launchGroup"/>
</listAttribute>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${env_var:M2_HOME}/bin/${MAVEN_EXE}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-o -Dmaven.test.skip=true gwt:debug"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-o -Dmaven.test.skip=true gwt:debug -DcoreGuiParams="/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/rhq/modules/enterprise/gui/coregui}"/>
</launchConfiguration>
13 years, 9 months
[rhq] 8 commits - modules/core modules/enterprise
by Joseph Marques
modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/GroupDefinition.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java | 12
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java | 25
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java | 26
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionDataSource.java | 40 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java | 42 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java | 333 ++++++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java | 14
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java | 24
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java | 8
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/tag/FunctionTagLibrary.java | 6
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java | 28
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourceLineageRenderer.java | 4
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/InventoryHierarchyTag.java | 14
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java | 13
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/group/ResourceGroupTreeContextMenuUIBean.java | 3
modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/report/resourceInstallReport-body.xhtml | 9
18 files changed, 450 insertions(+), 155 deletions(-)
New commits:
commit d818ed9126d252fcec040ef57388c03601c51e37
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Sep 15 13:16:59 2010 -0400
start of CRUD functionality for group definitions
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/GroupDefinition.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/GroupDefinition.java
index 48e35cd..42ff182 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/GroupDefinition.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/GroupDefinition.java
@@ -131,7 +131,7 @@ public class GroupDefinition implements Serializable {
private Set<ResourceGroup> managedResourceGroups;
/* no-arg constructor required by EJB spec */
- protected GroupDefinition() {
+ public GroupDefinition() {
}
public GroupDefinition(String name) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
index b648f57..0df613d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
@@ -132,7 +132,11 @@ public class LinkManager {
}
public static String getHubGroupDefinitionsLink() {
- return "/rhq/definition/group/list.xhtml";
+ if (GWT) {
+ return "#Inventory/Groups/DynaGroup Manager";
+ } else {
+ return "/rhq/definition/group/list.xhtml";
+ }
}
public static String getHubNewGroupLink() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
index ff3be5b..d6a638a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
@@ -48,4 +48,6 @@ public interface ResourceGroupGWTService extends RemoteService {
void updateResourceGroup(ResourceGroup group);
+ void updateGroupDefinition(GroupDefinition groupDefinition);
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionDataSource.java
index 308f5f5..8d9fba7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionDataSource.java
@@ -18,14 +18,6 @@
*/
package org.rhq.enterprise.gui.coregui.client.inventory.groups.definitions;
-import org.rhq.core.domain.criteria.ResourceGroupDefinitionCriteria;
-import org.rhq.core.domain.resource.group.GroupDefinition;
-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;
-
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.DSRequest;
import com.smartgwt.client.data.DSResponse;
@@ -35,15 +27,22 @@ 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.ResourceGroupDefinitionCriteria;
+import org.rhq.core.domain.resource.group.GroupDefinition;
+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 Greg Hinkle
+ * @author Joseph Marques
*/
public class GroupDefinitionDataSource extends RPCDataSource<GroupDefinition> {
-
private ResourceGroupGWTServiceAsync groupService = GWTServiceLookup.getResourceGroupService();
-
public GroupDefinitionDataSource() {
super();
@@ -54,16 +53,10 @@ public class GroupDefinitionDataSource extends RPCDataSource<GroupDefinition> {
DataSourceTextField nameField = new DataSourceTextField("name", "Name");
DataSourceTextField descriptionField = new DataSourceTextField("description", "Description");
DataSourceTextField expressionField = new DataSourceTextField("expression", "Expression");
- DataSourceTextField recalculationIntervalField = new DataSourceTextField("recalculationInterval", "Recalculation Interval");
- DataSourceTextField modifiedTimeField = new DataSourceTextField("modifiedTime", "Modified Time");
- DataSourceTextField createdTimeField = new DataSourceTextField("createdTime", "Created Time");
- DataSourceTextField lastCalculationTimeField = new DataSourceTextField("lastCalculationTime", "Last Calculation Time");
- DataSourceTextField nextCalculationTimeField = new DataSourceTextField("nextCalculationTime", "Next Calculation Time");
-// DataSourceTextField managedResourceGroupsField = new DataSourceTextField("managedResourceGroups", "Managed Resource Groups");
+ DataSourceTextField nextCalculationTimeField = new DataSourceTextField("nextCalculationTime",
+ "Next Calculation Time");
-
- setFields(idDataField, nameField, descriptionField, expressionField, recalculationIntervalField,
- modifiedTimeField, createdTimeField, lastCalculationTimeField, nextCalculationTimeField);
+ setFields(idDataField, nameField, descriptionField, expressionField, nextCalculationTimeField);
}
@@ -75,23 +68,22 @@ public class GroupDefinitionDataSource extends RPCDataSource<GroupDefinition> {
groupService.findGroupDefinitionsByCriteria(criteria, new AsyncCallback<PageList<GroupDefinition>>() {
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError("Failed to load group definitions", caught);
+ response.setStatus(RPCResponse.STATUS_FAILURE);
+ processResponse(request.getRequestId(), response);
}
public void onSuccess(PageList<GroupDefinition> result) {
-
-
response.setStatus(RPCResponse.STATUS_SUCCESS);
response.setData(buildRecords(result));
response.setTotalRows(result.getTotalSize());
processResponse(request.getRequestId(), response);
-
}
});
}
@Override
public GroupDefinition copyValues(ListGridRecord from) {
- return null; // TODO: Implement this method.
+ return null; // TODO: Implement this method.
}
@Override
@@ -106,7 +98,7 @@ public class GroupDefinitionDataSource extends RPCDataSource<GroupDefinition> {
record.setAttribute("createdTime", from.getCreatedTime());
record.setAttribute("lastCalculationTime", from.getLastCalculationTime());
record.setAttribute("nextCalculationTime", from.getNextCalculationTime());
-// record.setAttribute("managedResourceGroups", from.getManagedResourceGroups());
+ // record.setAttribute("managedResourceGroups", from.getManagedResourceGroups());
return record;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java
index dc81946..1a1d32f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java
@@ -18,44 +18,56 @@
*/
package org.rhq.enterprise.gui.coregui.client.inventory.groups.definitions;
-import com.smartgwt.client.types.ListGridFieldType;
-import com.smartgwt.client.types.SelectionAppearance;
-import com.smartgwt.client.types.SelectionStyle;
+import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.grid.CellFormatter;
-import com.smartgwt.client.widgets.grid.ListGridField;
+import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import org.rhq.enterprise.gui.coregui.client.components.table.Table;
+import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
+import org.rhq.enterprise.gui.coregui.client.components.table.TableSection;
/**
* @author Greg Hinkle
+ * @author Joseph Marques
*/
-public class GroupDefinitionListView extends Table {
+public class GroupDefinitionListView extends TableSection {
public GroupDefinitionListView(String locatorId, String headerIcon) {
super(locatorId, "Group Definitions");
setHeaderIcon(headerIcon);
- final GroupDefinitionDataSource datasource = new GroupDefinitionDataSource();
- setDataSource(datasource);
+ setDataSource(new GroupDefinitionDataSource());
}
@Override
protected void configureTable() {
super.configureTable();
- getListGrid().setSelectionType(SelectionStyle.SIMPLE);
- getListGrid().setSelectionAppearance(SelectionAppearance.CHECKBOX);
+ ListGrid grid = getListGrid();
- ListGridField idField = new ListGridField("id", "Id", 55);
- idField.setType(ListGridFieldType.INTEGER);
- ListGridField nameField = new ListGridField("name", "Name", 250);
- nameField.setCellFormatter(new CellFormatter() {
- public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
- return "<a href=\"#ResourceGroupDefinition/" + listGridRecord.getAttribute("id") + "\">" + o + "</a>";
+ grid.getField("nextCalculationTime").setCellFormatter(new CellFormatter() {
+ public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
+ if ("0".equals(value.toString())) {
+ return "N/A";
+ }
+ return value.toString();
}
});
+ addTableAction(extendLocatorId("New"), "New", Table.SelectionEnablement.ALWAYS, null, new TableAction() {
+ public void executeAction(ListGridRecord[] selection) {
+ newDetails();
+ }
+ });
+ }
+
+ @Override
+ public Canvas getDetailsView(int id) {
+ final SingleGroupDefinitionView singleGroupDefinitionView = new SingleGroupDefinitionView(this
+ .extendLocatorId("Empty"));
+ return singleGroupDefinitionView;
}
+
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java
new file mode 100644
index 0000000..e5885f4
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java
@@ -0,0 +1,333 @@
+/*
+ * 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.definitions;
+
+import java.util.LinkedHashMap;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.types.Overflow;
+import com.smartgwt.client.widgets.form.fields.RadioGroupItem;
+import com.smartgwt.client.widgets.form.fields.ResetItem;
+import com.smartgwt.client.widgets.form.fields.SelectItem;
+import com.smartgwt.client.widgets.form.fields.SpinnerItem;
+import com.smartgwt.client.widgets.form.fields.StaticTextItem;
+import com.smartgwt.client.widgets.form.fields.SubmitItem;
+import com.smartgwt.client.widgets.form.fields.TextAreaItem;
+import com.smartgwt.client.widgets.form.fields.TextItem;
+import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
+import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
+
+import org.rhq.core.domain.criteria.ResourceGroupDefinitionCriteria;
+import org.rhq.core.domain.resource.group.GroupDefinition;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.LinkManager;
+import org.rhq.enterprise.gui.coregui.client.ViewId;
+import org.rhq.enterprise.gui.coregui.client.ViewPath;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
+
+/**
+ * @author Joseph Marques
+ */
+public class SingleGroupDefinitionView extends LocatableVLayout implements BookmarkableView {
+
+ private int groupDefinitionId;
+ private GroupDefinition groupDefinition;
+
+ private ViewId viewId;
+
+ private TextItem name;
+ private TextAreaItem description;
+ private RadioGroupItem recursive;
+ private SelectItem templateSelector;
+ private TextAreaItem expression;
+ private SpinnerItem recalculationInterval;
+
+ private StaticTextItem nameStatic;
+ private StaticTextItem descriptionStatic;
+ private StaticTextItem recursiveStatic;
+ private StaticTextItem expressionStatic;
+ private StaticTextItem recalculationIntervalStatic;
+
+ private boolean formBuilt = false;
+
+ public SingleGroupDefinitionView(String locatorId) {
+ this(locatorId, null);
+ }
+
+ public SingleGroupDefinitionView(String locatorId, GroupDefinition groupDefinition) {
+ super(locatorId);
+
+ setPadding(10);
+ setOverflow(Overflow.AUTO);
+
+ buildForm();
+
+ this.groupDefinition = groupDefinition;
+ }
+
+ public void setGroupDefinition(GroupDefinition groupDefinition) {
+ this.groupDefinition = groupDefinition;
+
+ if (groupDefinition == null) {
+ clearFormValues();
+ } else {
+ name.setValue(groupDefinition.getName());
+ nameStatic.setValue(groupDefinition.getName());
+
+ recursive.setValue(groupDefinition.isRecursive() ? "Yes" : "No");
+ recursiveStatic.setValue(groupDefinition.isRecursive() ? "Yes" : "No");
+
+ description.setValue(groupDefinition.getDescription());
+ descriptionStatic.setValue(groupDefinition.getDescription());
+
+ recalculationInterval.setValue(groupDefinition.getRecalculationInterval());
+ recalculationIntervalStatic.setValue(groupDefinition.getRecalculationInterval());
+
+ expression.setValue(groupDefinition.getExpression());
+ expressionStatic.setValue(groupDefinition.getExpression());
+
+ SubmitItem saveButton = new SubmitItem("save", "Save");
+ ResetItem resetButton = new ResetItem("reset", "Reset");
+
+ saveButton.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ save();
+ System.out.println("Save is done");
+ }
+ });
+
+ LocatableDynamicForm form = new LocatableDynamicForm(extendLocatorId("GroupDefinitionForm"));
+ form.setFields(name, nameStatic, recursive, recursiveStatic, description, descriptionStatic,
+ recalculationInterval, recalculationIntervalStatic, expression, expressionStatic, saveButton,
+ resetButton);
+ form.setNumCols(4);
+
+ addMember(form);
+ formBuilt = true;
+ }
+
+ markForRedraw();
+ }
+
+ public void switchToEditMode() {
+ name.show();
+ description.show();
+ recursive.show();
+ expression.show();
+ recalculationInterval.show();
+
+ nameStatic.hide();
+ descriptionStatic.hide();
+ recursiveStatic.hide();
+ expressionStatic.hide();
+ recalculationIntervalStatic.hide();
+
+ if (groupDefinitionId == 0) {
+ viewId.getBreadcrumbs().get(0).setDisplayName("New Group Definition");
+ } else {
+ viewId.getBreadcrumbs().get(0).setDisplayName("Editing '" + nameStatic.getValue().toString() + "'");
+ }
+ CoreGUI.refreshBreadCrumbTrail();
+
+ markForRedraw();
+ }
+
+ public void switchToViewMode() {
+ name.hide();
+ description.hide();
+ recursive.hide();
+ expression.hide();
+ recalculationInterval.hide();
+
+ nameStatic.show();
+ descriptionStatic.show();
+ recursiveStatic.show();
+ expressionStatic.show();
+ recalculationIntervalStatic.show();
+
+ markForRedraw();
+ }
+
+ public void save() {
+ groupDefinition.setName(name.getValue().toString());
+ groupDefinition.setDescription(description.getValue().toString());
+ groupDefinition.setRecursive("Yes".equals(recursive.getValue()));
+ groupDefinition.setExpression(expression.getValue().toString());
+ groupDefinition.setRecalculationInterval(Long.valueOf(recalculationInterval.getValue().toString()));
+
+ GWTServiceLookup.getResourceGroupService().updateGroupDefinition(groupDefinition, new AsyncCallback<Void>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failure saving group definition[id=" + groupDefinitionId + "]",
+ caught);
+ }
+
+ @Override
+ public void onSuccess(Void result) {
+ CoreGUI.getErrorHandler().handleError(
+ "Successfully saved group definition[id=" + groupDefinitionId + "]");
+ String listViewLink = LinkManager.getHubGroupDefinitionsLink();
+ CoreGUI.goToView(listViewLink.substring(1));
+ }
+ });
+ }
+
+ public void clearFormValues() {
+ name.clearValue();
+ description.clearValue();
+ recursive.clearValue();
+ expression.clearValue();
+ recalculationInterval.clearValue();
+
+ nameStatic.clearValue();
+ descriptionStatic.clearValue();
+ recursiveStatic.clearValue();
+ expressionStatic.clearValue();
+ recalculationIntervalStatic.clearValue();
+
+ markForRedraw();
+ }
+
+ private void buildForm() {
+ if (!formBuilt) {
+
+ name = new TextItem("name", "Name");
+ name.setWidth(400);
+ name.setDefaultValue("");
+ nameStatic = new StaticTextItem("nameStatic", "Name");
+
+ description = new TextAreaItem("description", "Description");
+ description.setWidth(400);
+ description.setHeight(50);
+ description.setDefaultValue("");
+ descriptionStatic = new StaticTextItem("descriptionStatic", "Description");
+
+ recursive = new RadioGroupItem("recursive", "Recursive");
+ recursive.setValueMap("Yes", "No");
+ recursive.setDefaultValue("Yes");
+ recursiveStatic = new StaticTextItem("recursiveStatic", "Recursive");
+
+ expression = new TextAreaItem("expression", "Expression");
+ expression.setWidth(400);
+ expression.setHeight(150);
+ expression.setDefaultValue("");
+ expressionStatic = new StaticTextItem("expressionStatic", "Expression");
+
+ recalculationInterval = new SpinnerItem("recalculationInterval", "Recalculation Interval");
+ recalculationInterval.setWrapTitle(false);
+ recalculationInterval.setDefaultValue(0);
+ recalculationIntervalStatic = new StaticTextItem("recalculationInterval", "Recalculation Interval");
+
+ templateSelector = new SelectItem();
+ templateSelector.setValueMap(getTemplates());
+
+ formBuilt = true;
+ }
+ }
+
+ public static LinkedHashMap<String, String> getTemplates() {
+ LinkedHashMap<String, String> items = new LinkedHashMap<String, String>();
+
+ // grouped items
+ items.put("JBossAS clusters in the system", //
+ get("groupby resource.trait[partitionName]", //
+ "resource.type.plugin = JBossAS", //
+ "resource.type.name = JBossAS Server"));
+ items.put("Clustered enterprise application archive (EAR)", //
+ get("groupby resource.parent.trait[partitionName]", //
+ "groupby resource.name", //
+ "resource.type.plugin = JBossAS", //
+ "resource.type.name = Enterprise Application (EAR)"));
+ items.put("Unique JBossAS versions in inventory", //
+ get("groupby resource.trait[jboss.system:type=Server:VersionName]", //
+ "resource.type.plugin = JBossAS", //
+ "resource.type.name = JBossAS Server"));
+ items.put("Platform resource in inventory", //
+ get("resource.type.category = PLATFORM", //
+ "groupby resource.name"));
+ items.put("Unique resource type in inventory", //
+ get("groupby resource.type.plugin", //
+ "groupby resource.type.name"));
+
+ // simple items
+ items.put("All JBossAS hosting any version of 'my' app", //
+ get("resource.type.plugin = JBossAS", //
+ "resource.type.name = JBossAS Server", //
+ "resource.child.name.contains = my"));
+ items.put("All Non-secured JBossAS servers", //
+ get("empty resource.pluginConfiguration[principal]", //
+ "resource.type.plugin = JBossAS", //
+ "resource.type.name = JBossAS Server"));
+ items.put("All resources currently down", //
+ get("resource.availability = DOWN"));
+
+ return items;
+ }
+
+ private static String get(String... pieces) {
+ StringBuilder results = new StringBuilder();
+ boolean first = true;
+ for (String next : pieces) {
+ if (first) {
+ first = false;
+ } else {
+ results.append('\n');
+ }
+ results.append(next);
+ }
+ return results.toString();
+ }
+
+ private void lookupDetails(final int groupDefinitionId) {
+ ResourceGroupDefinitionCriteria criteria = new ResourceGroupDefinitionCriteria();
+ criteria.addFilterId(groupDefinitionId);
+
+ if (groupDefinitionId == 0) {
+ GroupDefinition newGroupDefinition = new GroupDefinition();
+ setGroupDefinition(newGroupDefinition);
+ switchToEditMode();
+ } else {
+ GWTServiceLookup.getResourceGroupService().findGroupDefinitionsByCriteria(criteria,
+ new AsyncCallback<PageList<GroupDefinition>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError(
+ "Failure loading group definition[id=" + groupDefinitionId + "]", caught);
+ }
+
+ public void onSuccess(PageList<GroupDefinition> result) {
+ GroupDefinition existingGroupDefinition = result.get(0);
+ setGroupDefinition(existingGroupDefinition);
+ switchToEditMode();
+ }
+ });
+ }
+ }
+
+ @Override
+ public void renderView(ViewPath viewPath) {
+ groupDefinitionId = viewPath.getCurrentAsInt();
+ viewId = viewPath.getCurrent();
+ lookupDetails(groupDefinitionId);
+ }
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
index e6b5936..4b59caf 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
@@ -78,4 +78,12 @@ public class ResourceGroupGWTServiceImpl extends AbstractGWTServiceImpl implemen
groupManager.updateResourceGroup(getSessionSubject(), group);
}
+ public void updateGroupDefinition(GroupDefinition groupDefinition) {
+ try {
+ definitionManager.updateGroupDefinition(getSessionSubject(), groupDefinition);
+ } catch (Throwable t) {
+ throw new RuntimeException(t.getMessage());
+ }
+ }
+
}
\ No newline at end of file
commit d46933a9d3b0fa0dd02a02500cad325a6118ffcf
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Sep 10 14:19:13 2010 -0400
do not link crumbs - many are broken links, nearly all don't change the view anyway
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java
index 44586b1..a153ee0 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java
@@ -106,12 +106,12 @@ public class BreadcrumbTrailPane extends ToolStrip {
private Label getCrumb(Breadcrumb crumb, String path) {
Label l = null;
- if (crumb.isHyperlink()) {
- String fullPath = path.toString() + crumb.getName();
- l = new LocatableLabel(fullPath, "<a href=\"#" + fullPath + "\">" + crumb.getDisplayName() + "</a>");
- } else {
- l = new Label(crumb.getDisplayName());
- }
+ String fullPath = path.toString() + crumb.getName();
+ //if (crumb.isHyperlink()) {
+ //l = new LocatableLabel(fullPath, "<a href=\"#" + fullPath + "\">" + crumb.getDisplayName() + "</a>");
+ //} else {
+ l = new LocatableLabel(fullPath, "<b>" + crumb.getDisplayName() + "</b>");
+ //}
if (crumb.getIcon() != null) {
l.setIcon(crumb.getIcon());
l.setIconSize(16);
commit 097a1774d76ff27a72b8a6f9fbff80c20e48956d
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Sep 10 14:10:53 2010 -0400
more tidy work for the reports view
* move 'platforms' report from inventory section to reports section
* rename 'platforms' to 'cpu & memory utilization'
* add icon for 'inventory summary' node
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java
index 2e8fae2..f5f7dce 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java
@@ -150,11 +150,9 @@ public class ReportTopView extends LocatableHLayout implements BookmarkableView
final TreeNode alertDefinitions = new TreeNode("Alert Definitions");
alertDefinitions.setIcon("subsystems/alert/Alerts_16.png");
- final TreeNode platforms = new TreeNode("Platforms");
- platforms.setIcon("types/Platform_up_16.png");
-
- tree.setRoot(new TreeNode(SECTION_INVENTORY, tagCloud, suspectMetrics, recentConfigurationChanges,
- recentOperations, recentAlerts, alertDefinitions, platforms));
+ TreeNode inventoryNode = new TreeNode(SECTION_INVENTORY, tagCloud, suspectMetrics, recentConfigurationChanges,
+ recentOperations, recentAlerts, alertDefinitions);
+ tree.setRoot(inventoryNode);
inventoryTreeGrid.setData(tree);
@@ -168,9 +166,13 @@ public class ReportTopView extends LocatableHLayout implements BookmarkableView
reportsTreeGrid.setShowHeader(false);
Tree tree = new Tree();
- final TreeNode inventorySummaryNode = new TreeNode("Inventory Summary");
+ final TreeNode inventorySummary = new TreeNode("Inventory Summary");
+ inventorySummary.setIcon("subsystems/inventory/Inventory_16.png");
+
+ final TreeNode platforms = new TreeNode("CPU & Memory Utilization");
+ platforms.setIcon("types/Platform_up_16.png");
- TreeNode reportsNode = new TreeNode(SECTION_REPORTS, inventorySummaryNode);
+ TreeNode reportsNode = new TreeNode(SECTION_REPORTS, inventorySummary, platforms);
tree.setRoot(reportsNode);
reportsTreeGrid.setData(tree);
@@ -216,13 +218,13 @@ public class ReportTopView extends LocatableHLayout implements BookmarkableView
content = new AlertsView(this.extendLocatorId("RecentAlerts"));
} else if ("Alert Definitions".equals(page)) {
//todo
- } else if ("Platforms".equals(page)) {
- content = new PlatformPortletView(this.extendLocatorId("Platforms"));
}
} else if (SECTION_REPORTS.equals(section)) {
if ("Inventory Summary".equals(page)) {
content = new FullHTMLPane("/rhq/admin/report/resourceInstallReport-body.xhtml");
+ } else if ("CPU & Memory Utilization".equals(page)) {
+ content = new PlatformPortletView(this.extendLocatorId("Platforms"));
}
}
for (String name : treeGrids.keySet()) {
commit b3d884c5ff04671d892a2efb5c8b98bc40cee60d
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Sep 10 13:57:40 2010 -0400
tidy up reports > inventory summary
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/report/resourceInstallReport-body.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/report/resourceInstallReport-body.xhtml
index 81ac667..cfcac68 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/report/resourceInstallReport-body.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/report/resourceInstallReport-body.xhtml
@@ -19,17 +19,11 @@
<ui:define name="body">
- <rich:panel>
- <f:facet name="header">
- <h:outputText value="Resource Version Inventory Report"/>
- </f:facet>
-
<h:panelGrid columns="1" width="100%">
<h:form>
<h:selectBooleanCheckbox id="groupByVersion" value="#{ResourceInstallReportUIBean.groupByVersion}"
label="gbvLabel">
- <a4j:support reRender="reportTable" event="onclick" status="commonStatus"/>
</h:selectBooleanCheckbox>
<h:outputText value="Group By Version" id="gbvLabel"/>
@@ -38,7 +32,6 @@
value="#{ResourceInstallReportUIBean.resourceInstallCounts}"
var="installReport"
width="100%"
- columnsWidth="15%, 15%, 10%, 10%, 10%"
headerClass="tableRowHeader"
footerClass="on-pager-footer"
onRowMouseOver="this.style.backgroundColor='#E7E7E7'"
@@ -86,8 +79,6 @@
</h:panelGrid>
- </rich:panel>
-
</ui:define>
</ui:composition>
commit 5e8ccd7d51df020575a8602227f9ed39cf0f754a
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Sep 10 13:51:58 2010 -0400
move the "Inventory Summary" report to the Reports top view (from Admin top view)
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
index df0f4b5..8715366 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
@@ -83,7 +83,6 @@ public class AdministrationView extends LocatableHLayout implements Bookmarkable
treeGrids.put("Security", buildSecuritySection());
treeGrids.put("Configuration", buildSystemConfigurationSection());
treeGrids.put("Cluster", buildManagementClusterSection());
- treeGrids.put("Reports", buildReportsSection());
for (final String name : treeGrids.keySet()) {
TreeGrid grid = treeGrids.get(name);
@@ -181,23 +180,6 @@ public class AdministrationView extends LocatableHLayout implements Bookmarkable
return systemConfigTreeGrid;
}
- private TreeGrid buildReportsSection() {
-
- final TreeGrid reportsTreeGrid = new LocatableTreeGrid("Reports");
- reportsTreeGrid.setLeaveScrollbarGap(false);
- reportsTreeGrid.setShowHeader(false);
-
- Tree tree = new Tree();
- final TreeNode inventorySummaryNode = new TreeNode("Inventory Summary");
-
- TreeNode reportsNode = new TreeNode("Reports", inventorySummaryNode);
- tree.setRoot(reportsNode);
-
- reportsTreeGrid.setData(tree);
-
- return reportsTreeGrid;
- }
-
public void setContent(Canvas newContent) {
if (contentCanvas.getChildren().length > 0) {
@@ -220,13 +202,7 @@ public class AdministrationView extends LocatableHLayout implements Bookmarkable
String page = currentPageViewId.getPath();
Canvas content = null;
- if ("Reports".equals(section)) {
-
- if ("Inventory Summary".equals(page)) {
- content = new FullHTMLPane("/rhq/admin/report/resourceInstallReport-body.xhtml");
- }
-
- } else if ("Security".equals(section)) {
+ if ("Security".equals(section)) {
if ("Manage Users".equals(page)) {
content = new UsersView(this.extendLocatorId("Users"));
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java
index c507395..2e8fae2 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java
@@ -42,6 +42,7 @@ import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.ViewId;
import org.rhq.enterprise.gui.coregui.client.ViewPath;
import org.rhq.enterprise.gui.coregui.client.alert.AlertsView;
+import org.rhq.enterprise.gui.coregui.client.components.FullHTMLPane;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.platform.PlatformPortletView;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.configuration.ConfigurationHistoryView;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.operation.OperationHistoryView;
@@ -221,8 +222,7 @@ public class ReportTopView extends LocatableHLayout implements BookmarkableView
} else if (SECTION_REPORTS.equals(section)) {
if ("Inventory Summary".equals(page)) {
- // TODO
- content = null;
+ content = new FullHTMLPane("/rhq/admin/report/resourceInstallReport-body.xhtml");
}
}
for (String name : treeGrids.keySet()) {
commit 2b9cbc4e7ebb975f22d480d168c400b80cb1f147
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Sep 10 11:42:16 2010 -0400
fix for "Run Operation" button being unnecessarily wide
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java
index 7ce66ae..212a5ae 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java
@@ -133,6 +133,7 @@ public class OperationHistoryView extends TableSection {
IMenuButton operationsButton = new LocatableIMenuButton(this.extendLocatorId("Run"), "Run Operation",
operationMenu);
operationsButton.setShowMenuBelow(false);
+ operationsButton.setAutoFit(true);
addExtraWidget(operationsButton);
}
commit b23dfc62b878474ac43b5ba894e9d716ccdd6453
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Sep 10 11:41:57 2010 -0400
fix resource links for pages still included via iframe
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
index 2ae4974..b648f57 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
@@ -29,17 +29,15 @@ public class LinkManager {
private static boolean GWT = true;
-
public static String getResourceLink(int resourceId) {
if (GWT) {
return "#Resource/" + resourceId + "/Summary/Overview";
} else {
- return "/rhq/resource/summary/summary.xhtml?id=" + resourceId;
+ return "/rhq/resource/summary/overview.xhtml?id=" + resourceId;
}
}
-
public static String getResourceGroupLink(int resouceGroupId) {
if (GWT) {
@@ -61,7 +59,6 @@ public class LinkManager {
return "/rhq/subsystem/operationHistory.xhtml";
}
-
public static String getSubsystemAlertHistoryLink() {
return "/rhq/subsystem/alertHistory.xhtml";
}
@@ -70,7 +67,6 @@ public class LinkManager {
return "/rhq/subsystem/alertDefinitions.xhtml";
}
-
public static String getAutodiscoveryQueueLink() {
if (GWT) {
return "#Administration/Security/Auto%20Discovery%20Queue";
@@ -87,7 +83,6 @@ public class LinkManager {
}
}
-
public static String getHubAllResourcesLink() {
if (GWT) {
return "#Inventory";
@@ -120,12 +115,10 @@ public class LinkManager {
}
}
-
public static String getSavedSearchLink(int searchId) {
return "/rhq/inventory/browseResources.xhtml?subtab=all&searchId=" + searchId;
}
-
public static String getHubAllGroupsLink() {
return "/rhq/inventory/browseGroups.xhtml?subtab=all";
}
@@ -146,12 +139,10 @@ public class LinkManager {
return "/resource/group/Inventory.do?mode=new";
}
-
public static String getHubNewGroupDefLink() {
return "/rhq/definition/group/new.xhtml";
}
-
public static String getAdminUsersLink() {
if (GWT) {
return "#Administration/Security/Manage Users";
@@ -176,7 +167,6 @@ public class LinkManager {
}
}
-
public static String getAdminPluginsLink() {
if (GWT) {
return "#Administration/Configuration/Plugins";
@@ -185,7 +175,6 @@ public class LinkManager {
}
}
-
public static String getAdminTemplatesLink() {
if (GWT) {
return "#Administration/Configuration/Templates";
@@ -198,7 +187,6 @@ public class LinkManager {
return "/rhq/admin/alert/template/notification/list.xhtml";
}
-
public static String getAdminContentProvidersLink() {
return "/rhq/content/listContentProviders.xhtml";
}
@@ -207,7 +195,6 @@ public class LinkManager {
return "/rhq/content/listRepos.xhtml";
}
-
public static String getHAServersLink() {
if (GWT) {
return "#Administration/Cluster/Servers";
@@ -240,7 +227,6 @@ public class LinkManager {
}
}
-
public static String getReportsInventoryLink() {
if (GWT) {
return "#Administration/Reports/Inventory Summary";
@@ -253,7 +239,6 @@ public class LinkManager {
return "/rhq/admin/downloads.xhtml";
}
-
public static String getAdminLicenseLink() {
if (GWT) {
return "#Administration/Configuration/License";
@@ -262,7 +247,6 @@ public class LinkManager {
}
}
-
public static String getDebugSqlLink() {
return "/admin/test/sql.jsp";
}
@@ -283,7 +267,6 @@ public class LinkManager {
return "/admin/user/UserAdmin.do?mode=editPass&u=" + subjectId;
}
-
public static String getTagLink(String tag) {
return "#Reports/Inventory/Tag%20Cloud/" + tag;
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/tag/FunctionTagLibrary.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/tag/FunctionTagLibrary.java
index ad57e8b..c7ad60c 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/tag/FunctionTagLibrary.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/tag/FunctionTagLibrary.java
@@ -351,13 +351,17 @@ public class FunctionTagLibrary extends AbstractTagLibrary {
// needs to exist separately from getDefaultContextTabURL because only some facelets understand EntityContext
public static String getDefaultResourceTabURL() {
- return "/rhq/resource/summary/summary.xhtml";
+ return "/rhq/resource/summary/overview.xhtml";
}
public static String getDefaultGroupTabURL() {
return "/rhq/group/inventory/view.xhtml";
}
+ public static String getDefaultAutoGroupTabURL() {
+ return "/rhq/autogroup/monitor/graphs.xhtml";
+ }
+
public static String getAvailabilityURL(AvailabilityType type, int size) {
if (size != 16 && size != 24) {
throw new IllegalArgumentException("No availability icon for size " + size);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java
index 56d5465..c862f61 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java
@@ -33,6 +33,7 @@ import javax.faces.context.ResponseWriter;
import javax.faces.render.Renderer;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
+import org.rhq.enterprise.gui.common.tag.FunctionTagLibrary;
/**
* Renderer for {@link DisambiguatedResourceLineageComponent}
@@ -40,37 +41,36 @@ import org.rhq.core.domain.resource.composite.DisambiguationReport;
* @author Lukas Krejci
*/
public class DisambiguatedResourceLineageRenderer extends Renderer {
- private static final String RESOURCE_URL = "/rhq/resource/summary/summary.xhtml";
-
+
@Override
public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
DisambiguatedResourceLineageComponent lineageComponent = (DisambiguatedResourceLineageComponent) component;
-
+
String separator = lineageComponent.getSeparator();
List<DisambiguationReport.Resource> parents = lineageComponent.getParents();
boolean renderLinks = lineageComponent.getRenderLinks();
-
+
if (parents != null && parents.size() > 0) {
ResponseWriter writer = context.getResponseWriter();
-
+
Iterator<DisambiguationReport.Resource> parentsIt = parents.iterator();
-
+
if (renderLinks) {
encodeUrl(writer, parentsIt.next());
- while(parentsIt.hasNext()) {
+ while (parentsIt.hasNext()) {
writer.writeText(separator, null);
encodeUrl(writer, parentsIt.next());
}
} else {
encodeSimple(writer, parentsIt.next());
- while(parentsIt.hasNext()) {
+ while (parentsIt.hasNext()) {
writer.writeText(separator, null);
encodeSimple(writer, parentsIt.next());
}
}
}
}
-
+
public static void encodeUrl(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
encodePreName(writer, parent);
writer.startElement("a", null);
@@ -79,17 +79,17 @@ public class DisambiguatedResourceLineageRenderer extends Renderer {
writer.endElement("a");
encodePostName(writer, parent);
}
-
+
public static void encodeSimple(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
encodePreName(writer, parent);
writeName(writer, parent);
encodePostName(writer, parent);
}
-
+
private static String getUrl(DisambiguationReport.Resource parent) {
- return RESOURCE_URL + "?id=" + parent.getId();
+ return FunctionTagLibrary.getDefaultResourceTabURL() + "?id=" + parent.getId();
}
-
+
private static void encodePreName(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
if (!parent.getType().isSingleton()) {
writer.startElement("span", null);
@@ -118,7 +118,7 @@ public class DisambiguatedResourceLineageRenderer extends Renderer {
writer.endElement("span");
}
}
-
+
private static void writeName(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
writer.startElement("span", null);
writer.writeAttribute("class", "disambiguated-resource-name", null);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourceLineageRenderer.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourceLineageRenderer.java
index 33310b6..73903a5 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourceLineageRenderer.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourceLineageRenderer.java
@@ -27,6 +27,7 @@ import javax.faces.context.ResponseWriter;
import javax.faces.render.Renderer;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.enterprise.gui.common.tag.FunctionTagLibrary;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.util.HibernatePerformanceMonitor;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -37,7 +38,6 @@ import org.rhq.enterprise.server.util.LookupUtil;
* @author Ian Springer
*/
public class ResourceLineageRenderer extends Renderer {
- private static final String BASE_RESOURCE_URL = "/rhq/resource/summary/summary.xhtml";
private static final String SEPARATOR = " > ";
private ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
@@ -74,7 +74,7 @@ public class ResourceLineageRenderer extends Renderer {
}
private String buildURL(Resource resource) {
- String url = BASE_RESOURCE_URL + "?id=" + resource.getId();
+ String url = FunctionTagLibrary.getDefaultResourceTabURL() + "?id=" + resource.getId();
// Session-encode the URL in case the client doesn't have cookies enabled.
url = FacesContext.getCurrentInstance().getExternalContext().encodeResourceURL(url);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/InventoryHierarchyTag.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/InventoryHierarchyTag.java
index 4f5bfa9..76e437e 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/InventoryHierarchyTag.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/InventoryHierarchyTag.java
@@ -32,6 +32,7 @@ import org.rhq.core.domain.resource.Resource;
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.enterprise.gui.common.tag.FunctionTagLibrary;
import org.rhq.enterprise.gui.legacy.util.RequestUtils;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
@@ -46,11 +47,7 @@ import org.rhq.enterprise.server.util.LookupUtil;
* @author Ian Springer
*/
public class InventoryHierarchyTag extends TagSupport {
- private static final String BASE_RESOURCE_URL = "/rhq/resource/summary/summary.xhtml";
- //private static final String BASE_GROUP_URL = "/Resource.do?type=GROUP";
- private static final String BASE_GROUP_URL = "/rhq/group/inventory/view.xhtml";
- private static final String BASE_AUTOGROUP_URL = "/rhq/autogroup/monitor/graphs.xhtml";
private static final String SEPARATOR = " > ";
private Integer resourceId;
@@ -177,7 +174,7 @@ public class InventoryHierarchyTag extends TagSupport {
}
private String buildResourceURL(Resource resource) {
- String url = BASE_RESOURCE_URL + "?id=" + resource.getId();
+ String url = FunctionTagLibrary.getDefaultResourceTabURL() + "?id=" + resource.getId();
// Session-encode the URL in case the client doesn't have cookies enabled.
return encodeURL(url);
@@ -185,15 +182,16 @@ public class InventoryHierarchyTag extends TagSupport {
private String buildGroupURL(ResourceGroup resourceGroup) {
GroupCategory category = resourceGroup.getGroupCategory();
- String url = BASE_GROUP_URL + "?category=" + category.name() + "&groupId=" + resourceGroup.getId();
+ String url = FunctionTagLibrary.getDefaultGroupTabURL() + "?category=" + category.name() + "&groupId="
+ + resourceGroup.getId();
// Session-encode the URL in case the client doesn't have cookies enabled.
return encodeURL(url);
}
private String buildAutoGroupURL() {
- String url = BASE_AUTOGROUP_URL + "?id=" + parentResourceId + "&parent=" + parentResourceId + "&type="
- + resourceTypeId;
+ String url = FunctionTagLibrary.getDefaultAutoGroupTabURL() + "?id=" + parentResourceId + "&parent="
+ + parentResourceId + "&type=" + resourceTypeId;
// Session-encode the URL in case the client doesn't have cookies enabled.
return encodeURL(url);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java
index 2efedc9..091fa19 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java
@@ -32,6 +32,7 @@ import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
+import org.rhq.enterprise.gui.common.tag.FunctionTagLibrary;
/**
*
@@ -122,7 +123,7 @@ public class DisambiguatedResourceNameTag extends TagSupport {
if (htmlOutput) {
writer.append("<span class=\"disambiguated-resource-type\">");
}
-
+
writer.append(resourceType.getName()).append(" ");
if (resourceType.getPlugin() != null) {
@@ -134,7 +135,7 @@ public class DisambiguatedResourceNameTag extends TagSupport {
writer.append("</span>");
}
}
-
+
if (htmlOutput) {
writer.append("</span>");
}
@@ -151,7 +152,7 @@ public class DisambiguatedResourceNameTag extends TagSupport {
if (htmlOutput) {
writer.append("</span>");
}
-
+
if (url != null) {
writer.append("</a>");
}
@@ -160,7 +161,7 @@ public class DisambiguatedResourceNameTag extends TagSupport {
if (htmlOutput) {
writer.append("<span class=\"disambiguated-resource-plugin\">");
}
-
+
writer.append(" (").append(resourceType.getPlugin()).append(" plugin)");
if (htmlOutput) {
@@ -168,8 +169,8 @@ public class DisambiguatedResourceNameTag extends TagSupport {
}
}
}
-
+
public static String getDefaultResourceUrl(int resourceId) {
- return "/rhq/resource/summary/summary.xhtml?id=" + resourceId;
+ return FunctionTagLibrary.getDefaultResourceTabURL() + "?id=" + resourceId;
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/group/ResourceGroupTreeContextMenuUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/group/ResourceGroupTreeContextMenuUIBean.java
index 4650eef..e69c57e 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/group/ResourceGroupTreeContextMenuUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/group/ResourceGroupTreeContextMenuUIBean.java
@@ -34,6 +34,7 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.group.ClusterKey;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.gui.util.FacesContextUtility;
+import org.rhq.enterprise.gui.common.tag.FunctionTagLibrary;
import org.rhq.enterprise.gui.navigation.contextmenu.MenuItemDescriptor;
import org.rhq.enterprise.gui.navigation.contextmenu.MetricMenuItemDescriptor;
import org.rhq.enterprise.gui.navigation.contextmenu.QuickLinksDescriptor;
@@ -175,7 +176,7 @@ public class ResourceGroupTreeContextMenuUIBean extends TreeContextMenuBase {
menuItem.setValue(res.getName());
menuItem.setId("groupMember_" + res.getId());
- String url = "/rhq/resource/summary/summary.xhtml?id=" + res.getId();
+ String url = FunctionTagLibrary.getDefaultResourceTabURL() + "?id=" + res.getId();
menuItem.setSubmitMode("none");
menuItem.setOnclick("document.location.href='" + url + "'");
commit cc80b28867c8984b6da49e0f43aeab1900384014
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Sep 10 11:01:49 2010 -0400
remove "details" button from operation>history page in favor of double-click details trigger
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java
index ae68de0..7ce66ae 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java
@@ -32,12 +32,9 @@ import com.smartgwt.client.widgets.menu.events.MenuItemClickEvent;
import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.operation.OperationRequestStatus;
-import org.rhq.core.domain.operation.ResourceOperationHistory;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.resource.composite.ResourceComposite;
-import org.rhq.enterprise.gui.coregui.client.components.table.Table;
-import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
import org.rhq.enterprise.gui.coregui.client.components.table.TableSection;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.operation.create.OperationCreateWizard;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.operation.detail.OperationDetailsView;
@@ -115,16 +112,6 @@ public class OperationHistoryView extends TableSection {
getListGrid().hideField("resource");
}
- addTableAction(extendLocatorId("Details"), "Details", Table.SelectionEnablement.SINGLE, null,
- new TableAction() {
- public void executeAction(ListGridRecord[] selection) {
- ResourceOperationHistory history = (ResourceOperationHistory) selection[0]
- .getAttributeAsObject("entity");
-
- showDetails(history.getId());
- }
- });
-
if (resource != null && composite.getResourcePermission().isControl()) {
final Menu operationMenu = new LocatableMenu(this.extendLocatorId("Operation"));
ResourceTypeRepository.Cache.getInstance().getResourceTypes(resource.getResourceType().getId(),
13 years, 9 months
[rhq] 3 commits - modules/enterprise
by mazz
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsView.java | 23 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java | 29 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java | 23 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsView.java | 25 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypeRepository.java | 200 ++++++----
5 files changed, 223 insertions(+), 77 deletions(-)
New commits:
commit 83e9781e640d06fbe41208d6bec8a4b40c4b82ed
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Sep 15 12:08:59 2010 -0400
make sure all data we need for the types are preloaded
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsView.java
index 0c7cdff..4775ee4 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsView.java
@@ -23,6 +23,9 @@
package org.rhq.enterprise.gui.coregui.client.alert.definitions;
+import java.util.ArrayList;
+import java.util.EnumSet;
+
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.grid.ListGridRecord;
@@ -30,6 +33,8 @@ import com.smartgwt.client.widgets.grid.ListGridRecord;
import org.rhq.core.domain.alert.AlertDefinition;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.resource.group.ResourceGroup;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository.MetadataType;
/**
* @author John Mazzitelli
@@ -43,6 +48,24 @@ public class GroupAlertDefinitionsView extends AbstractAlertDefinitionsView {
public GroupAlertDefinitionsView(String locatorId, ResourceGroup group) {
super(locatorId, "Group Alert Definitions");
this.group = group;
+
+ // make sure we loaded all the type info we'll need. if one of these is null, either the type
+ // doesn't have it or we haven't loaded it yet. since we can't know for sure if it was loaded, we have to ask.
+ ResourceType rt = this.group.getResourceType();
+ EnumSet<MetadataType> metadata = EnumSet.noneOf(MetadataType.class);
+ if (rt.getEventDefinitions() == null)
+ metadata.add(MetadataType.events);
+ if (rt.getMetricDefinitions() == null)
+ metadata.add(MetadataType.measurements);
+ if (rt.getOperationDefinitions() == null)
+ metadata.add(MetadataType.operations);
+ if (rt.getResourceConfigurationDefinition() == null)
+ metadata.add(MetadataType.resourceConfigurationDefinition);
+ if (!metadata.isEmpty()) {
+ ArrayList<ResourceGroup> list = new ArrayList<ResourceGroup>(1);
+ list.add(this.group);
+ ResourceTypeRepository.Cache.getInstance().loadResourceTypes(list, metadata, null);
+ }
}
@Override
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java
index da46f44..f986562 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java
@@ -23,6 +23,9 @@
package org.rhq.enterprise.gui.coregui.client.alert.definitions;
+import java.util.ArrayList;
+import java.util.EnumSet;
+
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.grid.ListGridRecord;
@@ -30,6 +33,8 @@ import com.smartgwt.client.widgets.grid.ListGridRecord;
import org.rhq.core.domain.alert.AlertDefinition;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository.MetadataType;
/**
* @author John Mazzitelli
@@ -43,6 +48,24 @@ public class ResourceAlertDefinitionsView extends AbstractAlertDefinitionsView {
public ResourceAlertDefinitionsView(String locatorId, Resource resource) {
super(locatorId, "Alert Definitions");
this.resource = resource;
+
+ // make sure we loaded all the type info we'll need. if one of these is null, either the type
+ // doesn't have it or we haven't loaded it yet. since we can't know for sure if it was loaded, we have to ask.
+ ResourceType rt = this.resource.getResourceType();
+ EnumSet<MetadataType> metadata = EnumSet.noneOf(MetadataType.class);
+ if (rt.getEventDefinitions() == null)
+ metadata.add(MetadataType.events);
+ if (rt.getMetricDefinitions() == null)
+ metadata.add(MetadataType.measurements);
+ if (rt.getOperationDefinitions() == null)
+ metadata.add(MetadataType.operations);
+ if (rt.getResourceConfigurationDefinition() == null)
+ metadata.add(MetadataType.resourceConfigurationDefinition);
+ if (!metadata.isEmpty()) {
+ ArrayList<Resource> list = new ArrayList<Resource>(1);
+ list.add(this.resource);
+ ResourceTypeRepository.Cache.getInstance().loadResourceTypes(list, metadata, null);
+ }
}
@Override
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsView.java
index 3ef3dfe..4366291 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsView.java
@@ -23,12 +23,16 @@
package org.rhq.enterprise.gui.coregui.client.alert.definitions;
+import java.util.EnumSet;
+
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import org.rhq.core.domain.alert.AlertDefinition;
import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository.MetadataType;
/**
* @author John Mazzitelli
@@ -42,6 +46,27 @@ public class TemplateAlertDefinitionsView extends AbstractAlertDefinitionsView {
public TemplateAlertDefinitionsView(String locatorId, ResourceType resourceType) {
super(locatorId, "Alert Templates");
this.resourceType = resourceType;
+
+ // make sure we loaded all the type info we'll need. if one of these is null, either the type
+ // doesn't have it or we haven't loaded it yet. since we can't know for sure if it was loaded, we have to ask.
+ EnumSet<MetadataType> metadata = EnumSet.noneOf(MetadataType.class);
+ if (resourceType.getEventDefinitions() == null)
+ metadata.add(MetadataType.events);
+ if (resourceType.getMetricDefinitions() == null)
+ metadata.add(MetadataType.measurements);
+ if (resourceType.getOperationDefinitions() == null)
+ metadata.add(MetadataType.operations);
+ if (resourceType.getResourceConfigurationDefinition() == null)
+ metadata.add(MetadataType.resourceConfigurationDefinition);
+ if (!metadata.isEmpty()) {
+ ResourceTypeRepository.Cache.getInstance().getResourceTypes(resourceType.getId(), metadata,
+ new ResourceTypeRepository.TypeLoadedCallback() {
+ @Override
+ public void onTypesLoaded(ResourceType type) {
+ TemplateAlertDefinitionsView.this.resourceType = type;
+ }
+ });
+ }
}
@Override
commit f22c6f4fa74deea8393f8e53414aa886b18054ce
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Sep 15 12:08:26 2010 -0400
support the ability to load resource types for resource groups
support the ability to pass in a null callback (i.e. just load the types and don't bother calling back into anything)
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypeRepository.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypeRepository.java
index 550413c..d488d14 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypeRepository.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypeRepository.java
@@ -32,6 +32,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
import org.rhq.core.domain.criteria.ResourceTypeCriteria;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
@@ -49,11 +50,9 @@ public class ResourceTypeRepository {
private static ResourceTypeGWTServiceAsync resourceTypeService = GWTServiceLookup.getResourceTypeGWTService();
public enum MetadataType {
- children, operations, measurements, content, events, pluginConfigurationDefinition, resourceConfigurationDefinition,
- subCategory, parentTypes, processScans, productVersions
+ children, operations, measurements, content, events, pluginConfigurationDefinition, resourceConfigurationDefinition, subCategory, parentTypes, processScans, productVersions
}
-
public static class Cache {
private static final ResourceTypeRepository ourInstance = GWT.create(ResourceTypeRepository.class);
@@ -62,12 +61,10 @@ public class ResourceTypeRepository {
}
}
-
public static interface TypeLoadedCallback {
- void onTypesLoaded( ResourceType type);
+ void onTypesLoaded(ResourceType type);
}
-
public static interface TypesLoadedCallback {
void onTypesLoaded(HashMap<Integer, ResourceType> types);
}
@@ -76,14 +73,20 @@ public class ResourceTypeRepository {
void onResourceTypeLoaded(List<Resource> resources);
}
+ public static interface ResourceTypeLoadedInGroupCallback {
+ void onResourceTypeLoaded(List<ResourceGroup> resources);
+ }
+
public void loadResourceTypes(final PageList<Resource> resources, final ResourceTypeLoadedCallback callback) {
loadResourceTypes(resources, null, callback);
}
public void loadResourceTypes(final List<Resource> resources, final EnumSet<MetadataType> metadataTypes,
- final ResourceTypeLoadedCallback callback) {
+ final ResourceTypeLoadedCallback callback) {
if (resources.size() == 0) {
- callback.onResourceTypeLoaded(resources);
+ if (callback != null) {
+ callback.onResourceTypeLoaded(resources);
+ }
return;
}
@@ -98,41 +101,78 @@ public class ResourceTypeRepository {
for (Resource res : resources) {
res.setResourceType(types.get(res.getResourceType().getId()));
}
- callback.onResourceTypeLoaded(resources);
+ if (callback != null) {
+ callback.onResourceTypeLoaded(resources);
+ }
}
});
-// System.out.println("Loaded types from cache in " + (System.currentTimeMillis() - start));
+ // System.out.println("Loaded types from cache in " + (System.currentTimeMillis() - start));
+ }
+ public void loadResourceTypes(final PageList<ResourceGroup> groups, final ResourceTypeLoadedInGroupCallback callback) {
+ loadResourceTypes(groups, null, callback);
}
+ public void loadResourceTypes(final List<ResourceGroup> groups, final EnumSet<MetadataType> metadataTypes,
+ final ResourceTypeLoadedInGroupCallback callback) {
+ if (groups.size() == 0) {
+ if (callback != null) {
+ callback.onResourceTypeLoaded(groups);
+ }
+ return;
+ }
+
+ long start = System.currentTimeMillis();
+
+ Set<Integer> types = new HashSet<Integer>();
+ for (ResourceGroup group : groups) {
+ types.add(group.getResourceType().getId());
+ }
+ getResourceTypes(types.toArray(new Integer[types.size()]), metadataTypes, new TypesLoadedCallback() {
+ public void onTypesLoaded(HashMap<Integer, ResourceType> types) {
+ for (ResourceGroup group : groups) {
+ group.setResourceType(types.get(group.getResourceType().getId()));
+ }
+ if (callback != null) {
+ callback.onResourceTypeLoaded(groups);
+ }
+ }
+ });
+
+ // System.out.println("Loaded types from cache in " + (System.currentTimeMillis() - start));
+ }
public void getResourceTypes(Integer[] resourceTypeIds, final TypesLoadedCallback callback) {
getResourceTypes(resourceTypeIds, null, callback);
}
-
- public void getResourceTypes(final Integer resourceTypeId, final EnumSet<MetadataType> metadataTypes, final TypeLoadedCallback callback) {
- getResourceTypes(new Integer[]{resourceTypeId}, metadataTypes, new TypesLoadedCallback() {
+ public void getResourceTypes(final Integer resourceTypeId, final EnumSet<MetadataType> metadataTypes,
+ final TypeLoadedCallback callback) {
+ getResourceTypes(new Integer[] { resourceTypeId }, metadataTypes, new TypesLoadedCallback() {
public void onTypesLoaded(HashMap<Integer, ResourceType> types) {
- callback.onTypesLoaded(types.get(resourceTypeId));
+ if (callback != null) {
+ callback.onTypesLoaded(types.get(resourceTypeId));
+ }
}
});
}
- public void getResourceTypes(Integer[] resourceTypeIds, final EnumSet<MetadataType> metadataTypes, final TypesLoadedCallback callback) {
+ public void getResourceTypes(Integer[] resourceTypeIds, final EnumSet<MetadataType> metadataTypes,
+ final TypesLoadedCallback callback) {
ResourceTypeCriteria criteria = new ResourceTypeCriteria();
final HashMap<Integer, ResourceType> cachedTypes = new HashMap<Integer, ResourceType>();
-
ArrayList<Integer> typesNeeded = new ArrayList<Integer>();
if (resourceTypeIds == null) {
//preload all
} else {
for (Integer typeId : resourceTypeIds) {
- if (!typeCache.containsKey(typeId) || (metadataTypes != null && (typeCacheLevel.containsKey(typeId)) && !typeCacheLevel.get(typeId).containsAll(metadataTypes))) {
+ if (!typeCache.containsKey(typeId)
+ || (metadataTypes != null && (typeCacheLevel.containsKey(typeId)) && !typeCacheLevel.get(typeId)
+ .containsAll(metadataTypes))) {
typesNeeded.add(typeId);
} else {
cachedTypes.put(typeId, typeCache.get(typeId));
@@ -140,7 +180,9 @@ public class ResourceTypeRepository {
}
if (typesNeeded.isEmpty()) {
- callback.onTypesLoaded(cachedTypes);
+ if (callback != null) {
+ callback.onTypesLoaded(cachedTypes);
+ }
return;
}
criteria.addFilterIds(typesNeeded.toArray(new Integer[typesNeeded.size()]));
@@ -149,50 +191,51 @@ public class ResourceTypeRepository {
if (metadataTypes != null) {
for (MetadataType metadataType : metadataTypes) {
switch (metadataType) {
- case children:
- criteria.fetchChildResourceTypes(true);
- break;
- case content:
- criteria.fetchPackageTypes(true);
- break;
- case measurements:
- criteria.fetchMetricDefinitions(true);
- break;
- case operations:
- criteria.fetchOperationDefinitions(true);
- break;
- case events:
- criteria.fetchEventDefinitions(true);
- break;
- case pluginConfigurationDefinition:
- criteria.fetchPluginConfigurationDefinition(true);
- break;
- case resourceConfigurationDefinition:
- criteria.fetchResourceConfigurationDefinition(true);
- break;
- case subCategory:
- criteria.fetchSubCategory(true);
- break;
- case parentTypes:
- criteria.fetchParentResourceTypes(true);
- break;
- case processScans:
- criteria.fetchProcessScans(true);
- break;
- case productVersions:
- criteria.fetchProductVersions(true);
- break;
+ case children:
+ criteria.fetchChildResourceTypes(true);
+ break;
+ case content:
+ criteria.fetchPackageTypes(true);
+ break;
+ case measurements:
+ criteria.fetchMetricDefinitions(true);
+ break;
+ case operations:
+ criteria.fetchOperationDefinitions(true);
+ break;
+ case events:
+ criteria.fetchEventDefinitions(true);
+ break;
+ case pluginConfigurationDefinition:
+ criteria.fetchPluginConfigurationDefinition(true);
+ break;
+ case resourceConfigurationDefinition:
+ criteria.fetchResourceConfigurationDefinition(true);
+ break;
+ case subCategory:
+ criteria.fetchSubCategory(true);
+ break;
+ case parentTypes:
+ criteria.fetchParentResourceTypes(true);
+ break;
+ case processScans:
+ criteria.fetchProcessScans(true);
+ break;
+ case productVersions:
+ criteria.fetchProductVersions(true);
+ break;
}
}
}
criteria.setPageControl(PageControl.getUnlimitedInstance());
- System.out.println("Loading " + typesNeeded.size() + ((metadataTypes != null) ? (" types: " + metadataTypes.toString()) : ""));
+ System.out.println("Loading " + typesNeeded.size()
+ + ((metadataTypes != null) ? (" types: " + metadataTypes.toString()) : ""));
resourceTypeService.findResourceTypesByCriteria(criteria, new AsyncCallback<PageList<ResourceType>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load resource type metadata",caught);
+ CoreGUI.getErrorHandler().handleError("Failed to load resource type metadata", caught);
}
public void onSuccess(PageList<ResourceType> result) {
@@ -202,27 +245,29 @@ public class ResourceTypeRepository {
if (metadataTypes != null) {
for (MetadataType metadataType : metadataTypes) {
switch (metadataType) {
- case children:
- cachedType.setChildResourceTypes(type.getChildResourceTypes());
- break;
- case operations:
- cachedType.setOperationDefinitions(type.getOperationDefinitions());
- break;
- case measurements:
- cachedType.setMetricDefinitions(type.getMetricDefinitions());
- break;
- case content:
- cachedType.setPackageTypes(type.getPackageTypes());
- break;
- case events:
- cachedType.setPackageTypes(type.getPackageTypes());
- break;
- case pluginConfigurationDefinition:
- cachedType.setPluginConfigurationDefinition(type.getPluginConfigurationDefinition());
- break;
- case resourceConfigurationDefinition:
- cachedType.setResourceConfigurationDefinition(type.getResourceConfigurationDefinition());
- break;
+ case children:
+ cachedType.setChildResourceTypes(type.getChildResourceTypes());
+ break;
+ case operations:
+ cachedType.setOperationDefinitions(type.getOperationDefinitions());
+ break;
+ case measurements:
+ cachedType.setMetricDefinitions(type.getMetricDefinitions());
+ break;
+ case content:
+ cachedType.setPackageTypes(type.getPackageTypes());
+ break;
+ case events:
+ cachedType.setPackageTypes(type.getPackageTypes());
+ break;
+ case pluginConfigurationDefinition:
+ cachedType
+ .setPluginConfigurationDefinition(type.getPluginConfigurationDefinition());
+ break;
+ case resourceConfigurationDefinition:
+ cachedType.setResourceConfigurationDefinition(type
+ .getResourceConfigurationDefinition());
+ break;
}
}
}
@@ -240,16 +285,17 @@ public class ResourceTypeRepository {
}
}
}
- callback.onTypesLoaded(cachedTypes);
+ if (callback != null) {
+ callback.onTypesLoaded(cachedTypes);
+ }
}
});
}
-
public void preloadAll() {
getResourceTypes((Integer[]) null, EnumSet.allOf(MetadataType.class), new TypesLoadedCallback() {
public void onTypesLoaded(HashMap<Integer, ResourceType> types) {
- System.out.println("Preloaded ["+ types.size() + "] resource types");
+ System.out.println("Preloaded [" + types.size() + "] resource types");
}
});
}
commit 4edb44646a4b0c816aa6b934704de65ef8e8a40a
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Sep 15 12:06:49 2010 -0400
add the ability to add resource config change condition
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java
index fceb893..b17e25a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java
@@ -78,6 +78,7 @@ public class NewConditionEditor extends LocatableDynamicForm {
private boolean supportsTraits = false;
private boolean supportsOperations = false;
private boolean supportsEvents = false;
+ private boolean supportsResourceConfig = false;
private Runnable okFunction; // this is called after the OK button is pressed and a new condition is saved
private ResourceType resourceType;
@@ -89,6 +90,7 @@ public class NewConditionEditor extends LocatableDynamicForm {
this.resourceType = rtype;
this.supportsEvents = (rtype.getEventDefinitions() != null && rtype.getEventDefinitions().size() > 0);
+ this.supportsResourceConfig = (rtype.getResourceConfigurationDefinition() != null);
Set<MeasurementDefinition> metricDefinitions = rtype.getMetricDefinitions();
if (metricDefinitions != null && metricDefinitions.size() > 0) {
@@ -135,6 +137,9 @@ public class NewConditionEditor extends LocatableDynamicForm {
if (supportsOperations) {
condTypes.put(AlertConditionCategory.CONTROL.name(), "Operation Execution");
}
+ if (supportsResourceConfig) {
+ condTypes.put(AlertConditionCategory.RESOURCE_CONFIG.name(), "Resource Configuration Change");
+ }
if (supportsEvents) {
condTypes.put(AlertConditionCategory.EVENT.name(), "Event Detection");
}
@@ -179,6 +184,9 @@ public class NewConditionEditor extends LocatableDynamicForm {
if (supportsEvents) {
formItems.addAll(buildEventFormItems());
}
+ if (supportsResourceConfig) {
+ formItems.addAll(buildResourceConfigChangeFormItems());
+ }
formItems.add(ok);
setFields(formItems.toArray(new FormItem[formItems.size()]));
@@ -259,6 +267,15 @@ public class NewConditionEditor extends LocatableDynamicForm {
break;
}
+ case RESOURCE_CONFIG: {
+ newCondition.setName(null);
+ newCondition.setComparator(null);
+ newCondition.setThreshold(null);
+ newCondition.setOption(null);
+ newCondition.setMeasurementDefinition(null);
+ break;
+ }
+
default: {
CoreGUI.getErrorHandler().handleError("Invalid alert category selected: " + category); // should never happen
break;
@@ -459,6 +476,18 @@ public class NewConditionEditor extends LocatableDynamicForm {
return formItems;
}
+ private ArrayList<FormItem> buildResourceConfigChangeFormItems() {
+ ArrayList<FormItem> formItems = new ArrayList<FormItem>();
+
+ ShowIfCategoryFunction ifFunc = new ShowIfCategoryFunction(AlertConditionCategory.RESOURCE_CONFIG);
+
+ String helpStr = "This condition is triggered when the resource configuration changes.";
+ StaticTextItem helpItem = buildHelpTextItem("changeConfigHelp", helpStr, ifFunc);
+ formItems.add(helpItem);
+
+ return formItems;
+ }
+
private SelectItem buildMetricDropDownMenu(String itemName, FormItemIfFunction ifFunc) {
LinkedHashMap<String, String> metricsMap = new LinkedHashMap<String, String>();
13 years, 9 months