Changeset 4810

Show
Ignore:
Timestamp:
06/09/08 09:58:23 (6 months ago)
Author:
magi@…
Message:

Merged [4807] from trunk to 5.2 branch: Updates all datefield variables if the value _was_ null, so that the client and sever agrees on current time. Fixes #1794 (DateField? server/client time mixup)

Location:
branches/5.2/src/com/itmill/toolkit/terminal/gwt/client/ui
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/5.2/src/com/itmill/toolkit/terminal/gwt/client/ui/CalendarPanel.java

    r4039 r4810  
    402402            try { 
    403403                final Integer day = new Integer(text); 
    404                 if (cal.datefield.getCurrentDate() == null) { 
    405                     cal.datefield.setCurrentDate(new Date()); 
    406                 } 
    407404                final Date newDate = cal.datefield.getShowingDate(); 
    408405                newDate.setDate(day.intValue()); 
     
    410407                    return; 
    411408                } 
    412                 cal.datefield.getCurrentDate().setTime(newDate.getTime()); 
     409                if (cal.datefield.getCurrentDate() == null) { 
     410                    cal.datefield.setCurrentDate(new Date(newDate.getTime())); 
     411 
     412                    // Init variables with current time 
     413                    datefield.getClient().updateVariable(cal.datefield.getId(), 
     414                            "hour", newDate.getHours(), false); 
     415                    datefield.getClient().updateVariable(cal.datefield.getId(), 
     416                            "min", newDate.getMinutes(), false); 
     417                    datefield.getClient().updateVariable(cal.datefield.getId(), 
     418                            "sec", newDate.getSeconds(), false); 
     419                    datefield.getClient().updateVariable(cal.datefield.getId(), 
     420                            "msec", datefield.getMilliseconds(), false); 
     421                } 
     422 
     423                // cal.datefield.getCurrentDate().setTime(newDate.getTime()); 
    413424                cal.datefield.getClient().updateVariable(cal.datefield.getId(), 
    414425                        "day", cal.datefield.getCurrentDate().getDate(), false); 
  • branches/5.2/src/com/itmill/toolkit/terminal/gwt/client/ui/Time.java

    r4789 r4810  
    250250        if (datefield.getCurrentDate() == null) { 
    251251            // was null on server, need to set 
    252             datefield.setCurrentDate(new Date()); 
     252            Date now = datefield.getShowingDate(); 
     253            if (now == null) { 
     254                now = new Date(); 
     255                datefield.setShowingDate(now); 
     256            } 
     257            datefield.setCurrentDate(new Date(now.getTime())); 
     258 
     259            // Init variables with current time 
     260            datefield.getClient().updateVariable(datefield.getId(), "year", 
     261                    now.getYear() + 1900, false); 
     262            datefield.getClient().updateVariable(datefield.getId(), "month", 
     263                    now.getMonth() + 1, false); 
     264            datefield.getClient().updateVariable(datefield.getId(), "day", 
     265                    now.getDate(), false); 
     266            datefield.getClient().updateVariable(datefield.getId(), "hour", 
     267                    now.getHours(), false); 
     268            datefield.getClient().updateVariable(datefield.getId(), "min", 
     269                    now.getMinutes(), false); 
     270            datefield.getClient().updateVariable(datefield.getId(), "sec", 
     271                    now.getSeconds(), false); 
     272            datefield.getClient().updateVariable(datefield.getId(), "msec", 
     273                    datefield.getMilliseconds(), false); 
    253274        } 
    254275        if (sender == hours) {