]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fixes #1756 (time reverted to current when changing date)
authorMarc Englund <marc.englund@itmill.com>
Thu, 5 Jun 2008 10:04:07 +0000 (10:04 +0000)
committerMarc Englund <marc.englund@itmill.com>
Thu, 5 Jun 2008 10:04:07 +0000 (10:04 +0000)
svn changeset:4748/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/IDateField.java
src/com/itmill/toolkit/terminal/gwt/client/ui/Time.java

index eac7e5c740cacbfd24c16e5e8435544f5af2042e..0fbc50524b1e07170503eeed040d006d6dcade3e 100644 (file)
@@ -155,6 +155,14 @@ public class IDateField extends FlowPanel implements Paintable, Field {
         date.setTime(date.getTime() / 1000 * 1000 + ms);\r
     }\r
 \r
+    public int getShowingMilliseconds() {\r
+        return (int) (showingDate.getTime() - showingDate.getTime() / 1000 * 1000);\r
+    }\r
+\r
+    public void setShowingMilliseconds(int ms) {\r
+        showingDate.setTime(showingDate.getTime() / 1000 * 1000 + ms);\r
+    }\r
+\r
     public int getCurrentResolution() {\r
         return currentResolution;\r
     }\r
index 46553a36a804a8c3a99d315185df46526ef26bb3..63ddd1343cced51e034789e5268186e4c617cdff 100644 (file)
@@ -257,24 +257,28 @@ public class Time extends FlowPanel implements ChangeListener {
                 h = h + ampm.getSelectedIndex() * 12;\r
             }\r
             datefield.getCurrentDate().setHours(h);\r
+            datefield.getShowingDate().setHours(h);\r
             datefield.getClient().updateVariable(datefield.getId(), "hour", h,\r
                     datefield.isImmediate());\r
             updateTime(false);\r
         } else if (sender == mins) {\r
             final int m = mins.getSelectedIndex();\r
             datefield.getCurrentDate().setMinutes(m);\r
+            datefield.getShowingDate().setMinutes(m);\r
             datefield.getClient().updateVariable(datefield.getId(), "min", m,\r
                     datefield.isImmediate());\r
             updateTime(false);\r
         } else if (sender == sec) {\r
             final int s = sec.getSelectedIndex();\r
             datefield.getCurrentDate().setSeconds(s);\r
+            datefield.getShowingDate().setSeconds(s);\r
             datefield.getClient().updateVariable(datefield.getId(), "sec", s,\r
                     datefield.isImmediate());\r
             updateTime(false);\r
         } else if (sender == msec) {\r
             final int ms = msec.getSelectedIndex();\r
             datefield.setMilliseconds(ms);\r
+            datefield.setShowingMilliseconds(ms);\r
             datefield.getClient().updateVariable(datefield.getId(), "msec", ms,\r
                     datefield.isImmediate());\r
             updateTime(false);\r
@@ -282,6 +286,7 @@ public class Time extends FlowPanel implements ChangeListener {
             final int h = hours.getSelectedIndex() + ampm.getSelectedIndex()\r
                     * 12;\r
             datefield.getCurrentDate().setHours(h);\r
+            datefield.getShowingDate().setHours(h);\r
             datefield.getClient().updateVariable(datefield.getId(), "hour", h,\r
                     datefield.isImmediate());\r
             updateTime(false);\r