diff options
author | Artur Signell <artur@vaadin.com> | 2012-03-23 09:44:29 +0200 |
---|---|---|
committer | Artur Signell <artur@vaadin.com> | 2012-03-23 09:44:29 +0200 |
commit | ff5cbf06457cf483c7a68d28fa3a876e673ec242 (patch) | |
tree | 06c480ea35b95c1f3f2c73f7148a756e1b7ee05d | |
parent | 041376540c94999e89d1c888b93eabef87de1a66 (diff) | |
parent | ebdb5242b5f1a695aa4aea969ff7b64d8282b51f (diff) | |
download | vaadin-framework-ff5cbf06457cf483c7a68d28fa3a876e673ec242.tar.gz vaadin-framework-ff5cbf06457cf483c7a68d28fa3a876e673ec242.zip |
Merge commit 'ebdb5242b5f1a695aa4aea969ff7b64d8282b51f'
3 files changed, 119 insertions, 2 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VCalendarPanel.java b/src/com/vaadin/terminal/gwt/client/ui/VCalendarPanel.java index 2968e132c6..6802f16b6b 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VCalendarPanel.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VCalendarPanel.java @@ -1196,14 +1196,19 @@ public class VCalendarPanel extends FocusableFlexTable implements displayedMonth = new Date(value.getYear(), value.getMonth(), 1); } - // Re-render calendar if month or year of focused date has changed - if (oldDisplayedMonth == null || value == null + // Re-render calendar if the displayed month is changed, + // or if a time selector is needed but does not exist. + if ((isTimeSelectorNeeded() && time == null) + || oldDisplayedMonth == null || value == null || oldDisplayedMonth.getYear() != value.getYear() || oldDisplayedMonth.getMonth() != value.getMonth()) { renderCalendar(); } else { focusDay(focusedDate); selectFocused(); + if (isTimeSelectorNeeded()) { + time.updateTimes(); + } } if (!hasFocus) { diff --git a/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldPopup.html b/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldPopup.html new file mode 100644 index 0000000000..993d053b63 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldPopup.html @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="selenium.base" href="http://localhost:8888/" /> +<title>PopupDateFieldPopup</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">PopupDateFieldPopup</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.components.datefield.PopupDateFieldPopup?restartApplication</td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentsdatefieldPopupDateFieldPopup::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]#field</td> + <td>74,9</td> +</tr> +<tr> + <td>pressSpecialKey</td> + <td>vaadin=runcomvaadintestscomponentsdatefieldPopupDateFieldPopup::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]#field</td> + <td>right</td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestscomponentsdatefieldPopupDateFieldPopup::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]#field</td> + <td>1/1/00 01:10:01 AM</td> +</tr> +<tr> + <td>pressSpecialKey</td> + <td>vaadin=runcomvaadintestscomponentsdatefieldPopupDateFieldPopup::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]#field</td> + <td>enter</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentsdatefieldPopupDateFieldPopup::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]#popupButton</td> + <td>11,8</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentsdatefieldPopupDateFieldPopup::/VVerticalLayout[0]/domChild[0]/domChild[1]</td> + <td>85,81</td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestscomponentsdatefieldPopupDateFieldPopup::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]#field</td> + <td>1/1/00 01:20:01 AM</td> +</tr> +<tr> + <td>pressSpecialKey</td> + <td>vaadin=runcomvaadintestscomponentsdatefieldPopupDateFieldPopup::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]#field</td> + <td>enter</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentsdatefieldPopupDateFieldPopup::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]#popupButton</td> + <td>16,14</td> +</tr> +<tr> + <td>assertValue</td> + <td>vaadin=runcomvaadintestscomponentsdatefieldPopupDateFieldPopup::Root/VOverlay[0]/VCalendarPanel[0]#m</td> + <td>20</td> +</tr> +</tbody></table> +</body> +</html> diff --git a/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldPopup.java b/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldPopup.java new file mode 100644 index 0000000000..5a6f6517bd --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldPopup.java @@ -0,0 +1,41 @@ +package com.vaadin.tests.components.datefield; + +import java.util.Calendar; +import java.util.Locale; + +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.DateField; +import com.vaadin.ui.PopupDateField; + +public class PopupDateFieldPopup extends TestBase { + + @Override + protected void setup() { + // Set a specific time for the PopupDateField + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.YEAR, 2000); + cal.set(Calendar.DAY_OF_YEAR, 1); + cal.set(Calendar.HOUR_OF_DAY, 1); + cal.set(Calendar.MINUTE, 1); + cal.set(Calendar.SECOND, 1); + cal.set(Calendar.MILLISECOND, 1); + + PopupDateField pdf = new PopupDateField(); + pdf.setLocale(Locale.US); + pdf.setValue(cal.getTime()); + pdf.setImmediate(true); + pdf.setResolution(DateField.RESOLUTION_SEC); + addComponent(pdf); + } + + @Override + protected String getDescription() { + return "Changing the minute, second and millisecond parts should also result in an update of the PopupDateField popup contents."; + } + + @Override + protected Integer getTicketNumber() { + return 8391; + } + +}
\ No newline at end of file |