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@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;
rhq-commits@lists.fedorahosted.org