Browse Source

fix regression related to #12504

Cloning date instances passed from state to cal panel as they appear to be mutating

Change-Id: I3775b8445ddc0a779b894b4e044bde93f4c5936c
tags/7.1.8
Matti Tahvonen 10 years ago
parent
commit
186696d7a7

+ 7
- 6
client/src/com/vaadin/client/ui/VCalendarPanel.java View File

@@ -56,6 +56,7 @@ import com.vaadin.client.DateTimeService;
import com.vaadin.client.Util;
import com.vaadin.client.VConsole;
import com.vaadin.shared.ui.datefield.Resolution;
import com.vaadin.shared.util.SharedUtil;

@SuppressWarnings("deprecation")
public class VCalendarPanel extends FocusableFlexTable implements
@@ -2214,9 +2215,9 @@ public class VCalendarPanel extends FocusableFlexTable implements
* @param startDate
* - the allowed range's start date
*/
public void setRangeStart(Date rangeStart) {
if (this.rangeStart != rangeStart) {
this.rangeStart = rangeStart;
public void setRangeStart(Date newRangeStart) {
if (!SharedUtil.equals(rangeStart, newRangeStart)) {
rangeStart = newRangeStart;
if (initialRenderDone) {
// Dynamic updates to the range needs to render the calendar to
// update the element stylenames
@@ -2233,9 +2234,9 @@ public class VCalendarPanel extends FocusableFlexTable implements
* @param endDate
* - the allowed range's end date
*/
public void setRangeEnd(Date rangeEnd) {
if (this.rangeEnd != rangeEnd) {
this.rangeEnd = rangeEnd;
public void setRangeEnd(Date newRangeEnd) {
if (!SharedUtil.equals(rangeEnd, newRangeEnd)) {
rangeEnd = newRangeEnd;
if (initialRenderDone) {
// Dynamic updates to the range needs to render the calendar to
// update the element stylenames

+ 2
- 2
client/src/com/vaadin/client/ui/datefield/PopupDateFieldConnector.java View File

@@ -178,8 +178,8 @@ public class PopupDateFieldConnector extends TextualDateConnector {
public void onStateChanged(StateChangeEvent stateChangeEvent) {
super.onStateChanged(stateChangeEvent);
getWidget().setTextFieldEnabled(getState().textFieldEnabled);
getWidget().setRangeStart(getState().rangeStart);
getWidget().setRangeEnd(getState().rangeEnd);
getWidget().setRangeStart((Date) getState().rangeStart.clone());
getWidget().setRangeEnd((Date) getState().rangeEnd.clone());
}

@Override

Loading…
Cancel
Save