modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionEditor.java
| 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SingleAlertDefinitionView.java
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/DurationItem.java
| 39 ++++++++--
3 files changed, 35 insertions(+), 9 deletions(-)
New commits:
commit 57333dd7c4a683fe39bfcf68ea706cbfa6feded9
Author: Jirka Kremser <jkremser(a)redhat.com>
Date: Tue May 28 18:40:38 2013 +0200
[BZ 967542] - UI shows confusing units when editing Availability Duration alert
condition type
I improved the DurationItem component to use internally the SelectItem
instead of ComboBoxItem. When using ComboBoxItem, it was possible to
write to the combobox and this is something that shouldn't happen in
this component because the unit types should be fixed. The DurationItem
is also used from the operation tab view, but no reggression was
introduced by this commit in this view.
Modifying also the DurationItem.setAndFormatValue() to populate the time correctly
when
!isReadOnly.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionEditor.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionEditor.java
index 8fe6d4b..0a2627c 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionEditor.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionEditor.java
@@ -65,7 +65,6 @@ import
org.rhq.enterprise.gui.coregui.client.components.form.DurationItem;
import org.rhq.enterprise.gui.coregui.client.components.form.NumberWithUnitsValidator;
import org.rhq.enterprise.gui.coregui.client.components.form.SortedSelectItem;
import org.rhq.enterprise.gui.coregui.client.components.form.TimeUnit;
-import org.rhq.enterprise.gui.coregui.client.components.form.UnitType;
import org.rhq.enterprise.gui.coregui.client.util.enhanced.EnhancedVLayout;
import org.rhq.enterprise.gui.coregui.client.util.measurement.MeasurementParser;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
@@ -959,7 +958,7 @@ public class ConditionEditor extends EnhancedVLayout {
durationValue.setTooltip(MSG.view_alert_definition_condition_editor_availabilityDuration_tooltip_duration());
durationValue.setHoverWidth(200);
if (editMode) {
- durationValue.setValue(Integer.parseInt(existingCondition.getOption()),
UnitType.TIME);
+
durationValue.setAndFormatValue(Integer.parseInt(existingCondition.getOption()) * 1000L);
}
durationValue.setShowIfCondition(ifFunc);
formItems.add(durationValue);
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 25742f5..e24d1b4 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
@@ -211,6 +211,8 @@ public class SingleAlertDefinitionView extends EnhancedVLayout {
public void execute(Boolean value) {
if (value) {
save();
+ } else {
+ unregisterHandler();
}
}
});
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/DurationItem.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/DurationItem.java
index 633188a..104b84c 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/DurationItem.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/DurationItem.java
@@ -29,17 +29,19 @@ import java.util.TreeSet;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.CanvasItem;
-import com.smartgwt.client.widgets.form.fields.ComboBoxItem;
import com.smartgwt.client.widgets.form.fields.FormItem;
import com.smartgwt.client.widgets.form.fields.IntegerItem;
+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 com.smartgwt.client.widgets.form.validator.IntegerRangeValidator;
+import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.Messages;
import org.rhq.enterprise.gui.coregui.client.util.FormUtility;
+import org.rhq.enterprise.gui.coregui.client.util.MeasurementConverterClient;
import org.rhq.enterprise.gui.coregui.client.util.TypeConversionUtility;
/**
@@ -142,7 +144,7 @@ public class DurationItem extends CanvasItem {
}
});
- ComboBoxItem unitsItem = new ComboBoxItem(FIELD_UNITS);
+ SelectItem unitsItem = new SelectItem(FIELD_UNITS);
unitsItem.setShowTitle(false);
LinkedHashMap<String, String> valueMap = new LinkedHashMap<String,
String>();
@@ -230,10 +232,33 @@ public class DurationItem extends CanvasItem {
if (longValue < 0) {
throw new IllegalArgumentException("negative time period " +
longValue);
}
- String formattedOutput = formatMilliseconds(longValue);
- this.unitType = UnitType.TIME;
- this.form.setValue(FIELD_VALUE, formattedOutput);
- setValue(formattedOutput);
+ if (isReadOnly) {
+ String formattedOutput = formatMilliseconds(longValue);
+ this.unitType = UnitType.TIME;
+ this.form.setValue(FIELD_VALUE, formattedOutput);
+ setValue(formattedOutput);
+ } else {
+ String valueWithUnits = MeasurementConverterClient.format((double)
longValue,
+ MeasurementUnits.MILLISECONDS, true);
+ String[] chunks = valueWithUnits.split(" ");
+ String value = chunks[0];
+ if (value.endsWith(".0")) {
+ value = value.substring(0, value.indexOf(".0"));
+ }
+ this.form.setValue(FIELD_VALUE, value);
+ String units = chunks[1];
+ SelectItem unitsItem = (SelectItem) this.form.getItem(FIELD_UNITS);
+ if
(MeasurementConverterClient.getMeasurementUnitAbbreviation(MeasurementUnits.SECONDS).equals(units))
{
+ unitsItem.setValue(TimeUnit.SECONDS.name().toLowerCase());
+ } else if
(MeasurementConverterClient.getMeasurementUnitAbbreviation(MeasurementUnits.MINUTES)
+ .equals(units)) {
+ unitsItem.setValue(TimeUnit.MINUTES.name().toLowerCase());
+ } else if
(MeasurementConverterClient.getMeasurementUnitAbbreviation(MeasurementUnits.HOURS).equals(units))
{
+ unitsItem.setValue(TimeUnit.HOURS.name().toLowerCase());
+ } else if
(MeasurementConverterClient.getMeasurementUnitAbbreviation(MeasurementUnits.DAYS).equals(units))
{
+ unitsItem.setValue(TimeUnit.DAYS.name().toLowerCase());
+ }
+ }
}
/**
@@ -474,7 +499,7 @@ public class DurationItem extends CanvasItem {
}
private TimeUnit getInputTimeUnit() {
- ComboBoxItem unitsItem = (ComboBoxItem) this.form.getItem(FIELD_UNITS);
+ SelectItem unitsItem = (SelectItem) this.form.getItem(FIELD_UNITS);
String unitString = unitsItem.getValueAsString(); // this will always be
non-null
TimeUnit unit;
try {
Show replies by date