modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/measurement/AbstractMeasurementRangeEditor.java
| 39 ++++++++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementChartsGWTServiceImpl.java
| 15 +++
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
| 1
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_cs.properties
| 1
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
| 1
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ja.properties
| 1
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
| 1
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ru.properties
| 1
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
| 1
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerLocal.java
| 19 ----
10 files changed, 59 insertions(+), 21 deletions(-)
New commits:
commit ea3d203dcd9fd9bb110bb0f6dce6f1379e88bacb
Author: Jirka Kremser <jkremser(a)redhat.com>
Date: Fri Dec 21 16:54:02 2012 +0100
[BZ 888369 - Time range setting on monitoring table should be more robust] Adding form
validators for the format of the times as well as for the start time < end time; if the
end time is after the current server time, the end time is set to the current server time.
This caused the NaNs in the table before. However, It is still not perfect, because the
user with bad time settings will have prefilled values in the start/end time fields. The
simple form ("last n hours") on the monitoring tab is working as it should.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/measurement/AbstractMeasurementRangeEditor.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/measurement/AbstractMeasurementRangeEditor.java
index 9b39faa..78b7778 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/measurement/AbstractMeasurementRangeEditor.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/measurement/AbstractMeasurementRangeEditor.java
@@ -21,10 +21,13 @@ package org.rhq.enterprise.gui.coregui.client.components.measurement;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
+import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.types.DateDisplayFormat;
import com.smartgwt.client.widgets.form.fields.ButtonItem;
import com.smartgwt.client.widgets.form.fields.CheckboxItem;
import com.smartgwt.client.widgets.form.fields.DateTimeItem;
@@ -34,6 +37,7 @@ import com.smartgwt.client.widgets.form.fields.events.ChangeEvent;
import com.smartgwt.client.widgets.form.fields.events.ChangeHandler;
import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
+import com.smartgwt.client.widgets.form.validator.CustomValidator;
import com.smartgwt.client.widgets.grid.ListGrid;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
@@ -133,9 +137,22 @@ public abstract class AbstractMeasurementRangeEditor extends
LocatableDynamicFor
//time range start from
advancedStartItem = new DateTimeItem(ADVANCED_START_ITEM,
MSG.view_measureRange_start());
advancedStartItem.setTitleAlign(Alignment.LEFT);
+ advancedStartItem.setUseMask(true);
+ advancedStartItem.setDisplayFormat(DateDisplayFormat.TOUSSHORTDATE);
//time range end
advancedEndItem = new DateTimeItem(ADVANCED_END_ITEM, MSG.common_title_end());
+ advancedEndItem.setUseMask(true);
+ advancedEndItem.setDisplayFormat(DateDisplayFormat.TOUSSHORTDATE);
+
+ //time validator, start should be before end
+ CustomValidator timeValidator = new CustomValidator() {
+ protected boolean condition(Object value) {
+ return
advancedEndItem.getValueAsDate().after(advancedStartItem.getValueAsDate());
+ }
+ };
+ timeValidator.setErrorMessage(MSG.view_measureTable_startBeforeEnd());
+ advancedStartItem.setValidators(timeValidator);
setButton = new ButtonItem(SET_ITEM, MSG.common_button_set());
setButton.setStartRow(false);
@@ -146,14 +163,26 @@ public abstract class AbstractMeasurementRangeEditor extends
LocatableDynamicFor
MetricRangePreferences prefs = new MetricRangePreferences();
prefs.explicitBeginEnd = advanced;
if (advanced) {
- prefs.begin = advancedStartItem.getValueAsDate().getTime();
- prefs.end = advancedEndItem.getValueAsDate().getTime();
+ try {
+ if (validate()) {
+ prefs.begin = advancedStartItem.getValueAsDate().getTime();
+ prefs.end = advancedEndItem.getValueAsDate().getTime();
+ setMetricRangeProperties(prefs);
+ }
+ } catch (Exception ex) {
+ // some of the digints are not filled correctly
+ Map<String, String> errors = new HashMap<String,
String>();
+ errors.put(ADVANCED_END_ITEM, "MM/DD/YYYY HH:MM");
+ errors.put(ADVANCED_START_ITEM, "MM/DD/YYYY HH:MM");
+ setErrors(errors, true);
+ }
} else {
prefs.lastN =
Integer.valueOf(simpleLastValuesItem.getValueAsString());
prefs.unit =
Integer.valueOf(simpleLastUnitsItem.getValueAsString());
+ setMetricRangeProperties(prefs);
}
- setMetricRangeProperties(prefs);
}
+
});
advancedSimpleButton = new ButtonItem(ADVANCED_BUTTON_ITEM,
MSG.common_button_advanced());
@@ -165,7 +194,7 @@ public abstract class AbstractMeasurementRangeEditor extends
LocatableDynamicFor
update();
}
});
-
+
space = new SpacerItem();
space.setWidth(300);
@@ -173,7 +202,7 @@ public abstract class AbstractMeasurementRangeEditor extends
LocatableDynamicFor
if (metricRangePrefs != null) {
advanced = (metricRangePrefs.explicitBeginEnd);
}
-
+
if (displaySetButton) {
setItems(simpleLastValuesItem, simpleLastUnitsItem, advancedStartItem,
advancedEndItem, setButton,
advancedSimpleButton, space);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementChartsGWTServiceImpl.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementChartsGWTServiceImpl.java
index 4f5a8fe..31f3e41 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementChartsGWTServiceImpl.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementChartsGWTServiceImpl.java
@@ -51,6 +51,11 @@ public class MeasurementChartsGWTServiceImpl extends
AbstractGWTServiceImpl impl
@Override
public ArrayList<MetricDisplaySummary>
getMetricDisplaySummariesForAutoGroup(int parent, int type, int[] schedIds,
long begin, long end, boolean enabledOnly) throws RuntimeException {
+ Long now = System.currentTimeMillis();
+ if (now < end) {
+ // we can't foretell the future (this may be caused by different timezone
on client's)
+ end = now;
+ }
try {
ArrayList<MetricDisplaySummary> list = new
ArrayList<MetricDisplaySummary>(chartsManager
.getMetricDisplaySummariesForAutoGroup(getSessionSubject(), parent, type,
schedIds, begin, end,
@@ -79,6 +84,11 @@ public class MeasurementChartsGWTServiceImpl extends
AbstractGWTServiceImpl impl
@Override
public ArrayList<MetricDisplaySummary>
getMetricDisplaySummariesForCompatibleGroup(int groupId, int[] defIds,
long begin, long end, boolean enabledOnly) throws RuntimeException {
+ Long now = System.currentTimeMillis();
+ if (now < end) {
+ // we can't foretell the future (this may be caused by different timezone
on client's)
+ end = now;
+ }
try {
ArrayList<MetricDisplaySummary> list = new
ArrayList<MetricDisplaySummary>(chartsManager
.getMetricDisplaySummariesForCompatibleGroup(getSessionSubject(),
groupId, defIds, begin, end,
@@ -107,6 +117,11 @@ public class MeasurementChartsGWTServiceImpl extends
AbstractGWTServiceImpl impl
@Override
public ArrayList<MetricDisplaySummary> getMetricDisplaySummariesForResource(int
resourceId, int[] schedIds,
long begin, long end) throws RuntimeException {
+ Long now = System.currentTimeMillis();
+ if (now < end) {
+ // we can't foretell the future (this may be caused by different timezone
on client's)
+ end = now;
+ }
try {
ArrayList<MetricDisplaySummary> list = new
ArrayList<MetricDisplaySummary>(chartsManager
.getMetricDisplaySummariesForResource(getSessionSubject(), resourceId,
schedIds, begin, end));
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
index 56ed2ac..182e5bb 100644
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
@@ -1689,6 +1689,7 @@ view_measureTable_chartMetricValues = Chart Selected Metrics
view_measureTable_getLive = Get Live Value
view_measureTable_getLive_failure = Cannot get live values for those metrics. Make sure
the agent is running and the managed resource is up.
view_measureTable_live_title = Live Data
+view_measureTable_startBeforeEnd = Start time should be before the end time.
view_measure_nan = --no data available--
view_measurementOob_title = Suspect Metrics
view_menuBar_logout = Logout
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_cs.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_cs.properties
index 0775491..87a31f9 100644
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_cs.properties
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_cs.properties
@@ -1706,6 +1706,7 @@ view_measureTable_chartMetricValues = Vykreslit vybraná měření
view_measureTable_getLive = Získat aktuální hodnotu
view_measureTable_getLive_failure = Nepodařilo se získat hodnoty těchto měření. Ujistěte
se, že agent běží a že spravovaný zdroj také.
view_measureTable_live_title = Aktuální data
+view_measureTable_startBeforeEnd = Počáteční čas musí být menší než koncový.
view_measure_nan = --žádná data nejsou k dispozici--
view_measurementOob_title = Podezřelá měření
view_menuBar_logout = Odhlásit se
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
index f9876c3..b0f72d4 100644
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
@@ -1479,6 +1479,7 @@ view_measureRange_start = Zeitraum - Start
view_measureTable_chartMetricValues = Graphen für ausgewählte Metriken anzeigen
view_measureTable_getLive = Aktuellen Wert holen
view_measure_nan = --keine Daten verfügbar--
+##view_measureTable_startBeforeEnd = Start time should be before the end time.
view_measurementOob_title = Verdächtige Metriken
view_menuBar_logout = Ausloggen
view_messageCenter_button_messages = Nachrichten
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ja.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ja.properties
index 83b705b..01d1db8 100644
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ja.properties
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ja.properties
@@ -1678,6 +1678,7 @@ view_measureTable_getLive = 動作中の値の取得
view_measureTable_getLive_failure = これらのメトリックスの動作中の値を取得できませんでした。
エージェントは実行中で管理リソースは作動中であることを確認してください。
view_measureTable_live_title = ライブデータ
view_measure_nan = --データは存在しません--
+##view_measureTable_startBeforeEnd = Start time should be before the end time.
view_measurementOob_title = 疑わしいメトリックス
view_menuBar_logout = ログアウト
view_messageCenter_clearAllMessages = すべてのメッセージをクリア
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
index 9f545fb..bdeb0c7 100644
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
@@ -1708,6 +1708,7 @@ view_measureTable_chartMetricValues = Chart Selected Metrics
view_measureTable_getLive = Get Live Value
view_measureTable_getLive_failure = Cannot get live values for those metrics. Make sure
the agent is running and the managed resource is up.
view_measureTable_live_title = Live Data
+##view_measureTable_startBeforeEnd = Start time should be before the end time.
view_measure_nan = --dados indispon\u00EDveis--
view_measurementOob_title = M\u00E9tricas Suspeitas
view_menuBar_help = Ajuda
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ru.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ru.properties
index 47025b7..4df1def 100644
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ru.properties
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ru.properties
@@ -1667,6 +1667,7 @@
#view_measureTable_getLive = Get Live Value
#view_measureTable_getLive_failure = Cannot get live values for those metrics. Make sure
the agent is running and the managed resource is up.
#view_measureTable_live_title = Live Data
+##view_measureTable_startBeforeEnd = Start time should be before the end time.
#view_measure_nan = --no data available--
#view_measurementOob_title = Suspect Metrics
#view_menuBar_logout = Logout
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
index b9941fc..3a22b3a 100644
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
@@ -1678,6 +1678,7 @@ view_measureTable_chartMetricValues =
\u751f\u6210\u6307\u6807\u56fe
view_measureTable_getLive = \u53d6\u5f97\u6d3b\u52a8\u6570\u636e
view_measureTable_getLive_failure = Cannot get live values for those metrics. Make sure
the agent is running and the managed resource is up.
view_measureTable_live_title = \u52a8\u6001\u6570\u636e
+##view_measureTable_startBeforeEnd = Start time should be before the end time.
view_measure_nan = --\u65e0\u6570\u636e--
view_measurementOob_title = \u53ef\u7591\u7684\u6307\u6807
view_menuBar_logout = \u6ce8\u9500
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerLocal.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerLocal.java
index 73195ec..6b5d70e 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerLocal.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerLocal.java
@@ -54,15 +54,11 @@ public interface MeasurementChartsManagerLocal {
* @return
*
* @throws MeasurementException
- *
- * @deprecated portal-war
*/
List<MetricDisplaySummary> getMetricDisplaySummariesForCompatibleGroup(Subject
subject, int groupId,
int[] measurementDefinitionIds, long begin, long end, boolean enabledOnly) throws
MeasurementException;
- /**
- * @deprecated portal-war
- */
+
List<MetricDisplaySummary> getMetricDisplaySummariesForCompatibleGroup(Subject
subject, int groupId, String viewName);
/**
@@ -79,28 +75,19 @@ public interface MeasurementChartsManagerLocal {
* @return
*
* @throws MeasurementException
- *
- * @deprecated portal-war
*/
List<MetricDisplaySummary> getMetricDisplaySummariesForAutoGroup(Subject
subject, int autoGroupParentResourceId,
int autoGroupChildResourceTypeId, int[] measurementDefinitionIds, long begin,
long end, boolean enabledOnly)
throws MeasurementException;
- /**
- * @deprecated portal-war
- */
+
List<MetricDisplaySummary> getMetricDisplaySummariesForAutoGroup(Subject
subject, int parent, int type,
String viewName);
- /**
- * @deprecated portal-war
- */
List<MetricDisplaySummary> getMetricDisplaySummariesForResource(Subject
subject, int resourceId,
int[] measurementScheduleIds, long begin, long end) throws MeasurementException;
- /**
- * @deprecated portal-war
- */
+
List<MetricDisplaySummary> getMetricDisplaySummariesForResource(Subject
subject, int resourceId, String viewName)
throws MeasurementException;