From 33f6ae5be6e80fbfcf26a5d6591829f0535ffcd1 Mon Sep 17 00:00:00 2001 From: Marc Englund Date: Thu, 5 Jun 2008 10:04:07 +0000 Subject: [PATCH] Fixes #1756 (time reverted to current when changing date) svn changeset:4748/svn branch:trunk --- .../itmill/toolkit/terminal/gwt/client/ui/IDateField.java | 8 ++++++++ src/com/itmill/toolkit/terminal/gwt/client/ui/Time.java | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IDateField.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IDateField.java index eac7e5c740..0fbc50524b 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IDateField.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IDateField.java @@ -155,6 +155,14 @@ public class IDateField extends FlowPanel implements Paintable, Field { date.setTime(date.getTime() / 1000 * 1000 + ms); } + public int getShowingMilliseconds() { + return (int) (showingDate.getTime() - showingDate.getTime() / 1000 * 1000); + } + + public void setShowingMilliseconds(int ms) { + showingDate.setTime(showingDate.getTime() / 1000 * 1000 + ms); + } + public int getCurrentResolution() { return currentResolution; } diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/Time.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/Time.java index 46553a36a8..63ddd1343c 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/Time.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/Time.java @@ -257,24 +257,28 @@ public class Time extends FlowPanel implements ChangeListener { h = h + ampm.getSelectedIndex() * 12; } datefield.getCurrentDate().setHours(h); + datefield.getShowingDate().setHours(h); datefield.getClient().updateVariable(datefield.getId(), "hour", h, datefield.isImmediate()); updateTime(false); } else if (sender == mins) { final int m = mins.getSelectedIndex(); datefield.getCurrentDate().setMinutes(m); + datefield.getShowingDate().setMinutes(m); datefield.getClient().updateVariable(datefield.getId(), "min", m, datefield.isImmediate()); updateTime(false); } else if (sender == sec) { final int s = sec.getSelectedIndex(); datefield.getCurrentDate().setSeconds(s); + datefield.getShowingDate().setSeconds(s); datefield.getClient().updateVariable(datefield.getId(), "sec", s, datefield.isImmediate()); updateTime(false); } else if (sender == msec) { final int ms = msec.getSelectedIndex(); datefield.setMilliseconds(ms); + datefield.setShowingMilliseconds(ms); datefield.getClient().updateVariable(datefield.getId(), "msec", ms, datefield.isImmediate()); updateTime(false); @@ -282,6 +286,7 @@ public class Time extends FlowPanel implements ChangeListener { final int h = hours.getSelectedIndex() + ampm.getSelectedIndex() * 12; datefield.getCurrentDate().setHours(h); + datefield.getShowingDate().setHours(h); datefield.getClient().updateVariable(datefield.getId(), "hour", h, datefield.isImmediate()); updateTime(false); -- 2.39.5