modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/MeasurementUserPreferences.java
| 13 ++++---
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/UserPreferences.java
| 17 ++++++++++
2 files changed, 24 insertions(+), 6 deletions(-)
New commits:
commit 7fbb1b079239ac88f747a17ae1a419415cb10349
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Mar 4 12:34:00 2011 -0500
fix for legacy support - it seems the old UI persisted empty strings for some
preference values.
make the new gwt code lenient when it finds empty strings - it will not assume default
values for metric range perferences
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/MeasurementUserPreferences.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/MeasurementUserPreferences.java
index 9be048f..76ca6c9 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/MeasurementUserPreferences.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/MeasurementUserPreferences.java
@@ -98,12 +98,13 @@ public class MeasurementUserPreferences {
MetricRangePreferences prefs = new MetricRangePreferences();
prefs.explicitBeginEnd = Boolean.valueOf(
- userPrefs.getPreference(PREF_METRIC_RANGE_BEGIN_END_FLAG,
DEFAULT_VALUE_RANGE_RO)).booleanValue();
+ userPrefs.getPreferenceEmptyStringIsDefault(PREF_METRIC_RANGE_BEGIN_END_FLAG,
DEFAULT_VALUE_RANGE_RO))
+ .booleanValue();
if (prefs.explicitBeginEnd == false) {
- prefs.lastN =
Integer.valueOf(userPrefs.getPreference(PREF_METRIC_RANGE_LASTN,
DEFAULT_VALUE_RANGE_LASTN
- .toString()));
- prefs.unit = Integer.valueOf(userPrefs.getPreference(PREF_METRIC_RANGE_UNIT,
DEFAULT_VALUE_RANGE_UNIT
- .toString()));
+ prefs.lastN =
Integer.valueOf(userPrefs.getPreferenceEmptyStringIsDefault(PREF_METRIC_RANGE_LASTN,
+ DEFAULT_VALUE_RANGE_LASTN.toString()));
+ prefs.unit =
Integer.valueOf(userPrefs.getPreferenceEmptyStringIsDefault(PREF_METRIC_RANGE_UNIT,
+ DEFAULT_VALUE_RANGE_UNIT.toString()));
List<Long> range = MeasurementUtility.calculateTimeFrame(prefs.lastN,
prefs.unit);
prefs.begin = range.get(0);
@@ -111,7 +112,7 @@ public class MeasurementUserPreferences {
} else {
try {
String rangeString = userPrefs.getPreference(PREF_METRIC_RANGE);
- if (rangeString != null) {
+ if (rangeString != null && rangeString.trim().length() > 0) {
if (rangeString.contains(",")) { // legacy support: old
prefs used to use commas
rangeString = rangeString.replace(",",
UserPreferences.PREF_LIST_DELIM);
//userPrefs.setPreference(PREF_METRIC_RANGE, rangeString); //
TODO set only if we don't support JSF anymore
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/UserPreferences.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/UserPreferences.java
index 1626065..3e34ceb 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/UserPreferences.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/UserPreferences.java
@@ -191,6 +191,23 @@ public class UserPreferences {
return userConfiguration.getSimpleValue(name, defaultValue);
}
+ /**
+ * Similar to {@link #getPreference(String, String)} except if the preference
+ * exists, but its value is an empty string, this method returns the defaultValue.
+ * In other words, an empty preference value is just as if it was null.
+ *
+ * @param name name of preference
+ * @param defaultValue the value returned if the preference value was null or an
empty string
+ * @return the preference value
+ */
+ protected String getPreferenceEmptyStringIsDefault(String name, String defaultValue)
{
+ String value = userConfiguration.getSimpleValue(name, null);
+ if (value == null || value.trim().length() == 0) {
+ value = defaultValue;
+ }
+ return value;
+ }
+
protected void setPreference(String name, Collection<?> value) {
StringBuilder buffer = new StringBuilder();
boolean first = true;
Show replies by date