modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsDataSource.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GeneralPropertiesAlertDefinitionForm.java | 22 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsDataSource.java | 17
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/RecoveryAlertDefinitionForm.java | 177 +++++++++-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsDataSource.java | 9
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SingleAlertDefinitionView.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsDataSource.java | 17
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsView.java | 2
9 files changed, 229 insertions(+), 26 deletions(-)
New commits:
commit 944ccfa1d927d00b9ca253a3f47dbdf792684592
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Sep 21 16:54:00 2010 -0400
finished the "recovery editor" portion of the alert definition editor. you can now set recovery alerts and disable-on-fire flag
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsDataSource.java
index 8f8c5c3..bf38e6b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsDataSource.java
@@ -136,4 +136,10 @@ public abstract class AbstractAlertDefinitionsDataSource extends RPCDataSource<A
}
protected abstract AlertDefinitionCriteria getCriteria(DSRequest request);
+
+ /**
+ * Returns a criteria that will query for all alerts, but only for the ID and name fields.
+ * @return criteria for an inexpensive query to obtain all alert defs
+ */
+ protected abstract AlertDefinitionCriteria getSimpleCriteriaForAll();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GeneralPropertiesAlertDefinitionForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GeneralPropertiesAlertDefinitionForm.java
index fe1e2e2..12e27d9 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GeneralPropertiesAlertDefinitionForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GeneralPropertiesAlertDefinitionForm.java
@@ -99,10 +99,10 @@ public class GeneralPropertiesAlertDefinitionForm extends LocatableDynamicForm i
prioritySelection.setValue(alertDef.getPriority().name());
priorityStatic.setValue(alertDef.getPriority().name());
- enabledSelection.setValue(alertDef.getEnabled() ? "Yes" : "No");
+ enabledSelection.setValue(alertDef.getEnabled() ? "yes" : "no");
enabledStatic.setValue(alertDef.getEnabled() ? "Yes" : "No");
- readOnlySelection.setValue(alertDef.isReadOnly() ? "Yes" : "No");
+ readOnlySelection.setValue(alertDef.isReadOnly() ? "yes" : "no");
readOnlyStatic.setValue(alertDef.isReadOnly() ? "Yes" : "No");
}
@@ -181,8 +181,8 @@ public class GeneralPropertiesAlertDefinitionForm extends LocatableDynamicForm i
String prioritySelected = prioritySelection.getValue().toString();
alertDefinition.setPriority(AlertPriority.valueOf(prioritySelected));
- alertDefinition.setEnabled("Yes".equals(enabledSelection.getValue()));
- alertDefinition.setReadOnly("Yes".equals(readOnlySelection.getValue()));
+ alertDefinition.setEnabled("yes".equals(enabledSelection.getValue()));
+ alertDefinition.setReadOnly("yes".equals(readOnlySelection.getValue()));
}
@Override
@@ -230,13 +230,19 @@ public class GeneralPropertiesAlertDefinitionForm extends LocatableDynamicForm i
priorityStatic.setValueIcons(priorityIcons);
enabledSelection = new RadioGroupItem("enabled", "Enabled");
- enabledSelection.setValueMap("Yes", "No");
- enabledSelection.setDefaultValue("Yes");
+ LinkedHashMap<String, String> enabledYesNo = new LinkedHashMap<String, String>(2);
+ enabledYesNo.put("yes", "Yes");
+ enabledYesNo.put("no", "No");
+ enabledSelection.setValueMap(enabledYesNo);
+ enabledSelection.setDefaultValue("yes");
enabledStatic = new StaticTextItem("enabledStatic", "Enabled");
readOnlySelection = new RadioGroupItem("readOnly", "Protected");
- readOnlySelection.setValueMap("Yes", "No");
- readOnlySelection.setDefaultValue("Yes");
+ LinkedHashMap<String, String> readOnlyYesNo = new LinkedHashMap<String, String>(2);
+ readOnlyYesNo.put("yes", "Yes");
+ readOnlyYesNo.put("no", "No");
+ readOnlySelection.setValueMap(readOnlyYesNo);
+ readOnlySelection.setDefaultValue("yes");
readOnlySelection
.setPrompt("If true, this definition is protected from being changed by the parent definition. In other words, the parent definition settings will not override this definition.");
readOnlyStatic = new StaticTextItem("readOnlyStatic", "Protected");
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsDataSource.java
index 90f9490..bb2cc71 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsDataSource.java
@@ -29,12 +29,21 @@ import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.data.DSRequest;
import org.rhq.core.domain.criteria.AlertDefinitionCriteria;
+import org.rhq.core.domain.resource.group.ResourceGroup;
+import org.rhq.core.domain.util.PageControl;
/**
* @author John Mazzitelli
*/
public class GroupAlertDefinitionsDataSource extends AbstractAlertDefinitionsDataSource {
+ private ResourceGroup resourceGroup;
+
+ public GroupAlertDefinitionsDataSource(ResourceGroup group) {
+ super();
+ this.resourceGroup = group;
+ }
+
@Override
protected AlertDefinitionCriteria getCriteria(DSRequest request) {
AlertDefinitionCriteria criteria = new AlertDefinitionCriteria();
@@ -54,4 +63,12 @@ public class GroupAlertDefinitionsDataSource extends AbstractAlertDefinitionsDat
criteria.setPageControl(getPageControl(request));
return criteria;
}
+
+ @Override
+ protected AlertDefinitionCriteria getSimpleCriteriaForAll() {
+ AlertDefinitionCriteria criteria = new AlertDefinitionCriteria();
+ criteria.addFilterResourceGroupIds(Integer.valueOf(this.resourceGroup.getId()));
+ criteria.setPageControl(PageControl.getUnlimitedInstance());
+ return criteria;
+ }
}
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 4775ee4..183faec 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
@@ -82,7 +82,7 @@ public class GroupAlertDefinitionsView extends AbstractAlertDefinitionsView {
@Override
protected AbstractAlertDefinitionsDataSource getAlertDefinitionDataSource() {
- return new GroupAlertDefinitionsDataSource();
+ return new GroupAlertDefinitionsDataSource(group);
}
@Override
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/RecoveryAlertDefinitionForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/RecoveryAlertDefinitionForm.java
index ab64324..a929a84 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/RecoveryAlertDefinitionForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/RecoveryAlertDefinitionForm.java
@@ -23,10 +23,21 @@
package org.rhq.enterprise.gui.coregui.client.alert.definitions;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.widgets.form.fields.RadioGroupItem;
import com.smartgwt.client.widgets.form.fields.SelectItem;
+import com.smartgwt.client.widgets.form.fields.StaticTextItem;
+import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
+import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
import org.rhq.core.domain.alert.AlertDefinition;
+import org.rhq.core.domain.criteria.AlertDefinitionCriteria;
+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.util.selenium.LocatableDynamicForm;
/**
@@ -35,18 +46,25 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
public class RecoveryAlertDefinitionForm extends LocatableDynamicForm implements EditAlertDefinitionForm {
private AlertDefinition alertDefinition;
+ private AbstractAlertDefinitionsDataSource alertDataSource;
+ private ArrayList<AlertDefinition> allAlertDefinitions;
private SelectItem recoverAlertSelection;
+ private StaticTextItem recoverAlertStatic;
+
private RadioGroupItem disableWhenFiredSelection;
+ private StaticTextItem disableWhenFiredStatic;
private boolean formBuilt = false;
- public RecoveryAlertDefinitionForm(String locatorId) {
- this(locatorId, null);
+ public RecoveryAlertDefinitionForm(String locatorId, AbstractAlertDefinitionsDataSource dataSource) {
+ this(locatorId, dataSource, null);
}
- public RecoveryAlertDefinitionForm(String locatorId, AlertDefinition alertDefinition) {
+ public RecoveryAlertDefinitionForm(String locatorId, AbstractAlertDefinitionsDataSource dataSource,
+ AlertDefinition alertDefinition) {
super(locatorId);
+ this.alertDataSource = dataSource;
this.alertDefinition = alertDefinition;
}
@@ -55,7 +73,6 @@ public class RecoveryAlertDefinitionForm extends LocatableDynamicForm implements
super.onInit();
if (!formBuilt) {
- buildForm();
setAlertDefinition(alertDefinition);
makeViewOnly();
}
@@ -75,7 +92,10 @@ public class RecoveryAlertDefinitionForm extends LocatableDynamicForm implements
if (alertDef == null) {
clearFormValues();
} else {
- disableWhenFiredSelection.setValue(alertDef.getWillRecover() ? "Yes" : "No");
+ refreshWidgets(allAlertDefinitions);
+
+ disableWhenFiredSelection.setValue(alertDef.getWillRecover() ? "yes" : "no");
+ disableWhenFiredStatic.setValue(alertDef.getWillRecover() ? "Yes" : "No");
}
markForRedraw();
@@ -83,21 +103,38 @@ public class RecoveryAlertDefinitionForm extends LocatableDynamicForm implements
@Override
public void makeEditable() {
- // TODO Auto-generated method stub
+ recoverAlertSelection.show();
+ disableWhenFiredSelection.show();
+
+ recoverAlertStatic.hide();
+ disableWhenFiredStatic.hide();
markForRedraw();
}
@Override
public void makeViewOnly() {
- // TODO Auto-generated method stub
+ recoverAlertSelection.hide();
+ disableWhenFiredSelection.hide();
+
+ recoverAlertStatic.show();
+ disableWhenFiredStatic.show();
markForRedraw();
}
@Override
public void saveAlertDefinition() {
- // TODO Auto-generated method stub
+ // this silliness is to workaround the validation that AlertDefinition setters try to do
+ alertDefinition.setRecoveryId(0);
+ alertDefinition.setWillRecover(false);
+
+ alertDefinition.setRecoveryId(Integer.valueOf(recoverAlertSelection.getValue().toString()));
+ if (alertDefinition.getRecoveryId() != 0) {
+ alertDefinition.setWillRecover(false);
+ } else {
+ alertDefinition.setWillRecover("yes".equals(disableWhenFiredSelection.getValue()));
+ }
}
@Override
@@ -105,23 +142,133 @@ public class RecoveryAlertDefinitionForm extends LocatableDynamicForm implements
recoverAlertSelection.clearValue();
disableWhenFiredSelection.clearValue();
+ recoverAlertStatic.clearValue();
+ disableWhenFiredStatic.clearValue();
+
markForRedraw();
}
private void buildForm() {
if (!formBuilt) {
+ disableWhenFiredSelection = new RadioGroupItem("disableWhenFired", "Disable When Fired");
+ LinkedHashMap<String, String> yesNo = new LinkedHashMap<String, String>(2);
+ yesNo.put("yes", "Yes");
+ yesNo.put("no", "No");
+ disableWhenFiredSelection.setValueMap(yesNo);
+ disableWhenFiredSelection.setDefaultValue("no");
+ disableWhenFiredSelection.setWrapTitle(false);
+ disableWhenFiredStatic = new StaticTextItem("disableWhenFiredStatic", "Disable When Fired");
+ disableWhenFiredStatic.setWrapTitle(false);
+
recoverAlertSelection = new SelectItem("recoveryAlert", "Recover Alert");
- recoverAlertSelection.setValueMap("Select...");
- recoverAlertSelection.setDefaultValue("Select...");
- // TODO: call into server and get the menu list of all alerts that we can recover
+ recoverAlertSelection.setDefaultValue("0");
+ recoverAlertSelection.setWrapTitle(false);
+ recoverAlertSelection.setRedrawOnChange(true);
- disableWhenFiredSelection = new RadioGroupItem("disableWhenFired", "Disable When Fired");
- disableWhenFiredSelection.setValueMap("Yes", "No");
- disableWhenFiredSelection.setDefaultValue("Yes");
+ recoverAlertStatic = new StaticTextItem("recoveryAlertStatic", "Recover Alert");
+ recoverAlertStatic.setDefaultValue(getNoRecoveryMenuItemTitle());
+ recoverAlertStatic.setWrapTitle(false);
+
+ // if a recovery alert is set, then this alert definition must not disable itself when fired
+ // because it will be needed to recover its recovery alert the next time it fires. disabling is only
+ // for non-recoverable alerts or for alerts that will themselves be recovered.
+ // therefore, force the disableWhenFired selection to go to no and do not allow it to be changed when appropriate
+ recoverAlertSelection.addChangedHandler(new ChangedHandler() {
+ @Override
+ public void onChanged(ChangedEvent event) {
+ String recoveryAlertDefId = event.getItem().getValue().toString();
+ refreshDisableWhenFiredSelection(recoveryAlertDefId);
+ }
+ });
+
+ refreshWidgets(null); // for it to at least show the initial "no-op" entry
+ loadAllAlertDefinitionsAndRefreshRecoverAlertSelection(); // this gets the real entries asynchronously
- setFields(recoverAlertSelection, disableWhenFiredSelection);
+ setFields(recoverAlertSelection, recoverAlertStatic, disableWhenFiredSelection, disableWhenFiredStatic);
formBuilt = true;
}
}
+
+ private AlertDefinition lookupAlertDefinition(Integer id) {
+ if (id != null && id.intValue() != 0) {
+ if (this.allAlertDefinitions != null) {
+ for (AlertDefinition def : this.allAlertDefinitions) {
+ if (def.getId() == id.intValue()) {
+ return def;
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+
+ private void loadAllAlertDefinitionsAndRefreshRecoverAlertSelection() {
+ if (allAlertDefinitions == null) {
+ AlertDefinitionCriteria criteria = alertDataSource.getSimpleCriteriaForAll();
+ GWTServiceLookup.getAlertService().findAlertDefinitionsByCriteria(criteria,
+ new AsyncCallback<PageList<AlertDefinition>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Cannot build recovery menu", caught);
+ }
+
+ public void onSuccess(PageList<AlertDefinition> result) {
+ allAlertDefinitions = result;
+ refreshWidgets(allAlertDefinitions);
+ }
+ });
+ } else {
+ // we already got the values before, just refresh the menu (in case this.alertDef changed)
+ refreshWidgets(allAlertDefinitions);
+ }
+ }
+
+ private void refreshWidgets(ArrayList<AlertDefinition> allDefs) {
+ int allDefsSize = (allDefs != null) ? allDefs.size() : 0;
+ LinkedHashMap<String, String> alertMap = new LinkedHashMap<String, String>(allDefsSize + 1);
+ alertMap.put("0", getNoRecoveryMenuItemTitle());
+ if (allDefs != null) {
+ for (AlertDefinition def : allDefs) {
+ if (alertDefinition == null || alertDefinition.getId() != def.getId()) {
+ alertMap.put(String.valueOf(def.getId()), def.getName());
+ }
+ }
+ }
+ recoverAlertSelection.setValueMap(alertMap);
+
+ if (alertDefinition != null) {
+ AlertDefinition recoveryAlert = lookupAlertDefinition(alertDefinition.getRecoveryId());
+ if (recoveryAlert != null) {
+ String recoveryIdStr = String.valueOf(recoveryAlert.getId());
+ recoverAlertSelection.setValue(recoveryIdStr);
+ recoverAlertStatic.setValue(recoveryAlert.getName());
+ refreshDisableWhenFiredSelection(recoveryIdStr);
+ } else {
+ recoverAlertSelection.setValue("0");
+ recoverAlertStatic.setValue(getNoRecoveryMenuItemTitle());
+ refreshDisableWhenFiredSelection("0");
+ }
+ }
+
+ recoverAlertSelection.redraw();
+ }
+
+ private void refreshDisableWhenFiredSelection(String recoveryAlertDefId) {
+ if ("0".equals(recoveryAlertDefId)) {
+ disableWhenFiredSelection.setDisabled(false);
+ } else {
+ disableWhenFiredSelection.setValue("no");
+ disableWhenFiredSelection.setDisabled(true);
+ }
+ disableWhenFiredSelection.redraw();
+ }
+
+ private String getNoRecoveryMenuItemTitle() {
+ StringBuilder str = new StringBuilder();
+ str.append("-- ");
+ str.append("No Recovery");
+ str.append(" --");
+ return str.toString();
+ }
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsDataSource.java
index dc04a1e..3bc7a3f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsDataSource.java
@@ -34,6 +34,7 @@ import com.smartgwt.client.widgets.grid.ListGridRecord;
import org.rhq.core.domain.alert.AlertDefinition;
import org.rhq.core.domain.criteria.AlertDefinitionCriteria;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.util.PageControl;
/**
* @author John Mazzitelli
@@ -115,4 +116,12 @@ public class ResourceAlertDefinitionsDataSource extends AbstractAlertDefinitions
criteria.setPageControl(getPageControl(request));
return criteria;
}
+
+ @Override
+ protected AlertDefinitionCriteria getSimpleCriteriaForAll() {
+ AlertDefinitionCriteria criteria = new AlertDefinitionCriteria();
+ criteria.addFilterResourceIds(Integer.valueOf(this.resource.getId()));
+ criteria.setPageControl(PageControl.getUnlimitedInstance());
+ return criteria;
+ }
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SingleAlertDefinitionView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SingleAlertDefinitionView.java
index bc7a8b0..2e3caf0 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SingleAlertDefinitionView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SingleAlertDefinitionView.java
@@ -79,7 +79,8 @@ public class SingleAlertDefinitionView extends LocatableVLayout {
notificationsTab.setPane(notifications);
Tab recoveryTab = new LocatableTab(tabSet.extendLocatorId("Recovery"), "Recovery");
- recovery = new RecoveryAlertDefinitionForm(this.getLocatorId(), alertDefinition);
+ recovery = new RecoveryAlertDefinitionForm(this.getLocatorId(), alertDefView.getAlertDefinitionDataSource(),
+ alertDefinition);
recoveryTab.setPane(recovery);
Tab dampeningTab = new LocatableTab(tabSet.extendLocatorId("Dampening"), "Dampening");
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsDataSource.java
index 9a96db8..15163f0 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsDataSource.java
@@ -29,12 +29,21 @@ import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.data.DSRequest;
import org.rhq.core.domain.criteria.AlertDefinitionCriteria;
+import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.domain.util.PageControl;
/**
* @author John Mazzitelli
*/
public class TemplateAlertDefinitionsDataSource extends AbstractAlertDefinitionsDataSource {
+ private ResourceType resourceType;
+
+ public TemplateAlertDefinitionsDataSource(ResourceType rt) {
+ super();
+ this.resourceType = rt;
+ }
+
@Override
protected AlertDefinitionCriteria getCriteria(DSRequest request) {
AlertDefinitionCriteria criteria = new AlertDefinitionCriteria();
@@ -54,4 +63,12 @@ public class TemplateAlertDefinitionsDataSource extends AbstractAlertDefinitions
criteria.setPageControl(getPageControl(request));
return criteria;
}
+
+ @Override
+ protected AlertDefinitionCriteria getSimpleCriteriaForAll() {
+ AlertDefinitionCriteria criteria = new AlertDefinitionCriteria();
+ criteria.addFilterAlertTemplateResourceTypeId(Integer.valueOf(this.resourceType.getId()));
+ criteria.setPageControl(PageControl.getUnlimitedInstance());
+ return criteria;
+ }
}
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 4366291..c26a8f9 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
@@ -83,7 +83,7 @@ public class TemplateAlertDefinitionsView extends AbstractAlertDefinitionsView {
@Override
protected AbstractAlertDefinitionsDataSource getAlertDefinitionDataSource() {
- return new TemplateAlertDefinitionsDataSource();
+ return new TemplateAlertDefinitionsDataSource(resourceType);
}
@Override