modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java | 18 ++- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsAlertDefinitionForm.java | 4 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java | 53 +++++++--- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertDefinitionGWTService.java | 3 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertDefinitionGWTServiceImpl.java | 9 + 5 files changed, 64 insertions(+), 23 deletions(-)
New commits: commit 41e95c0bc4b435c4fbf12495e2110b4c31311c2b Author: John Mazzitelli mazz@redhat.com Date: Thu Sep 16 16:24:59 2010 -0400
able to now create a new alert def and update alert def in the DB
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java index ce834da..818aaca 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java @@ -25,6 +25,7 @@ import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridRecord;
+import org.rhq.core.domain.alert.AlertDampening; import org.rhq.core.domain.alert.AlertDefinition; import org.rhq.core.domain.alert.AlertPriority; import org.rhq.core.domain.alert.BooleanExpression; @@ -71,7 +72,7 @@ public abstract class AbstractAlertDefinitionsView extends TableSection { public void executeAction(ListGridRecord[] selection) { newButtonPressed(selection); // I don't think you want this refresh, it will recreate the new alert detail - //CoreGUI.refresh(); + //refresh(); } });
@@ -79,7 +80,7 @@ public abstract class AbstractAlertDefinitionsView extends TableSection { : SelectionEnablement.NEVER, "Are You Sure?", new TableAction() { public void executeAction(ListGridRecord[] selection) { enableButtonPressed(selection); - CoreGUI.refresh(); + refresh(); } });
@@ -87,7 +88,7 @@ public abstract class AbstractAlertDefinitionsView extends TableSection { : SelectionEnablement.NEVER, "Are You Sure?", new TableAction() { public void executeAction(ListGridRecord[] selection) { disableButtonPressed(selection); - CoreGUI.refresh(); + refresh(); } });
@@ -95,7 +96,7 @@ public abstract class AbstractAlertDefinitionsView extends TableSection { : SelectionEnablement.NEVER, "Are You Sure?", new TableAction() { public void executeAction(ListGridRecord[] selection) { deleteButtonPressed(selection); - CoreGUI.refresh(); + refresh(); } }); } @@ -133,11 +134,14 @@ public abstract class AbstractAlertDefinitionsView extends TableSection { AlertDefinition newAlertDef = new AlertDefinition(); newAlertDef.setDeleted(false); newAlertDef.setEnabled(true); - newAlertDef.setNotifyFiltered(false); - newAlertDef.setParentId(Integer.valueOf(0)); - newAlertDef.setConditionExpression(BooleanExpression.ALL); newAlertDef.setPriority(AlertPriority.MEDIUM); + newAlertDef.setParentId(Integer.valueOf(0)); + newAlertDef.setConditionExpression(BooleanExpression.ANY); newAlertDef.setWillRecover(false); + newAlertDef.setRecoveryId(Integer.valueOf(0)); + newAlertDef.setAlertDampening(new AlertDampening(AlertDampening.Category.NONE)); + newAlertDef.setNotifyFiltered(false); + newAlertDef.setControlFiltered(false); singleAlertDefinitionView.setAlertDefinition(newAlertDef); singleAlertDefinitionView.makeEditable(); } else { 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 fcb018d..cbf368d 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 @@ -94,6 +94,16 @@ public class ResourceAlertDefinitionsView extends AbstractAlertDefinitionsView { }
@Override + public SingleAlertDefinitionView getDetailsView(int id) { + SingleAlertDefinitionView view = super.getDetailsView(id); + if (id == 0) { + // when creating a new alert def, make sure to set this in the new alert def + view.getAlertDefinition().setResource(resource); + } + return view; + } + + @Override protected boolean isAllowedToModifyAlertDefinitions() { return this.permissions.isAlert(); } @@ -185,19 +195,34 @@ public class ResourceAlertDefinitionsView extends AbstractAlertDefinitionsView { }
@Override - protected void commitAlertDefinition(AlertDefinition alertDefinition) { - GWTServiceLookup.getAlertDefinitionService().updateAlertDefinition(alertDefinition.getId(), alertDefinition, - true, new AsyncCallback<AlertDefinition>() { - @Override - public void onSuccess(AlertDefinition result) { - CoreGUI.getMessageCenter().notify(new Message("Alert definition is updated", Severity.Info)); - ResourceAlertDefinitionsView.this.refresh(); - } - - @Override - public void onFailure(Throwable caught) { - CoreGUI.getErrorHandler().handleError("Failed to update alert definition", caught); - } - }); + protected void commitAlertDefinition(final AlertDefinition alertDefinition) { + if (alertDefinition.getId() == 0) { + GWTServiceLookup.getAlertDefinitionService().createAlertDefinition(alertDefinition, + Integer.valueOf(resource.getId()), new AsyncCallback<Integer>() { + @Override + public void onSuccess(Integer result) { + CoreGUI.getMessageCenter().notify(new Message("Alert definition is created", Severity.Info)); + alertDefinition.setId(result.intValue()); + } + + @Override + public void onFailure(Throwable caught) { + CoreGUI.getErrorHandler().handleError("Failed to create alert definition", caught); + } + }); + } else { + GWTServiceLookup.getAlertDefinitionService().updateAlertDefinition(alertDefinition.getId(), + alertDefinition, true, new AsyncCallback<AlertDefinition>() { + @Override + public void onSuccess(AlertDefinition result) { + CoreGUI.getMessageCenter().notify(new Message("Alert definition is updated", Severity.Info)); + } + + @Override + public void onFailure(Throwable caught) { + CoreGUI.getErrorHandler().handleError("Failed to update alert definition", caught); + } + }); + } } } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertDefinitionGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertDefinitionGWTService.java index e309eea..14c123c 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertDefinitionGWTService.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertDefinitionGWTService.java @@ -23,6 +23,9 @@ import com.google.gwt.user.client.rpc.RemoteService; import org.rhq.core.domain.alert.AlertDefinition;
public interface AlertDefinitionGWTService extends RemoteService { + + int createAlertDefinition(AlertDefinition alertDefinition, Integer resourceId) throws Exception; + AlertDefinition updateAlertDefinition(int alertDefinitionId, AlertDefinition alertDefinition, boolean updateInternals) throws Exception;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertDefinitionGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertDefinitionGWTServiceImpl.java index 169b758..606195b 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertDefinitionGWTServiceImpl.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertDefinitionGWTServiceImpl.java @@ -30,6 +30,15 @@ public class AlertDefinitionGWTServiceImpl extends AbstractGWTServiceImpl implem
private AlertDefinitionManagerLocal alertDefManager = LookupUtil.getAlertDefinitionManager();
+ public int createAlertDefinition(AlertDefinition alertDefinition, Integer resourceId) throws Exception { + try { + int results = alertDefManager.createAlertDefinition(getSessionSubject(), alertDefinition, resourceId); + return results; + } catch (Exception e) { + throw new RuntimeException(ThrowableUtil.getAllMessages(e)); + } + } + public AlertDefinition updateAlertDefinition(int alertDefinitionId, AlertDefinition alertDefinition, boolean updateInternals) throws Exception { try {
commit 106f6e489ec0552325e6645ecfe9cc801aa9c34e Author: John Mazzitelli mazz@redhat.com Date: Thu Sep 16 16:09:25 2010 -0400
most times, people only have a sinlge condition, and the internals for condition checking on the server are more efficient when using ANY so rather than default to ALL, which to ANY (even though logically it doesn't matter when most times you just have a single condition, in reality, ANY processes a bit faster so use that)
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsAlertDefinitionForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsAlertDefinitionForm.java index 182173a..571daed 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsAlertDefinitionForm.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsAlertDefinitionForm.java @@ -138,10 +138,10 @@ public class ConditionsAlertDefinitionForm extends LocatableVLayout implements E conditionExpressionForm = new LocatableDynamicForm(this.extendLocatorId("conditionExpressionForm")); conditionExpression = new SelectItem("conditionExpression", "Fire alert when"); LinkedHashMap<String, String> condExprs = new LinkedHashMap<String, String>(2); - condExprs.put(BooleanExpression.ALL.name(), BooleanExpression.ALL.toString()); condExprs.put(BooleanExpression.ANY.name(), BooleanExpression.ANY.toString()); + condExprs.put(BooleanExpression.ALL.name(), BooleanExpression.ALL.toString()); conditionExpression.setValueMap(condExprs); - conditionExpression.setDefaultValue(BooleanExpression.ALL.name()); + conditionExpression.setDefaultValue(BooleanExpression.ANY.name()); conditionExpression.setWrapTitle(false);
conditionExpressionStatic = new StaticTextItem("conditionExpressionStatic", "Fire alert when");
rhq-commits@lists.fedorahosted.org