You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by "Justin Mclean (JIRA)" <ji...@apache.org> on 2013/04/28 03:42:16 UTC
[jira] [Updated] (FLEX-22735) Datefield control does not update
programmatic changes to selected date when date is changed by editing the
text field.
[ https://issues.apache.org/jira/browse/FLEX-22735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Justin Mclean updated FLEX-22735:
---------------------------------
Labels: easyfix easytest (was: )
> Datefield control does not update programmatic changes to selected date when date is changed by editing the text field.
> -----------------------------------------------------------------------------------------------------------------------
>
> Key: FLEX-22735
> URL: https://issues.apache.org/jira/browse/FLEX-22735
> Project: Apache Flex
> Issue Type: Bug
> Components: mx: DateField
> Affects Versions: Adobe Flex SDK 3.4 (Release)
> Environment: Affected OS(s): Windows
> Affected OS(s): Windows XP
> Browser: Internet Explorer 8.x
> Language Found: English
> Reporter: Adobe JIRA
> Labels: easyfix, easytest
>
> The problem arises when a date in the datefield is updated by some programmatic logic that rechanges the selected date based on its value. The programmatic change is not reflected in the datefield when the date is edited in the text field (not changed using the choosed).
> Using the attached demo:
> 1. Click the master date chooser and select a date. Both datefield boxes show that the date displayed is the one chosen plus one day (the programmatic change). Everything is fine here.
> 2. Now, change the date in the textfield, not using the chooser and tab out of the field to submit the changes. The slave field shows the new correct value, but the master does not.
> This is because the focus_out_handler in the datefield processes before commitProperties when the selectedDate value is set (by binding or programmatically after it changed). Thus, when the updated selectedDate is set, the focus_out_handler resets the internal value of _selectedDate to the value of the textField ( which is the old value) before commitProperties processes the updateDateFiller flag. By the time it processes the change, the focus handler has reset the new selected date to the old value in the text field.
> It seems to me that, in the selectedDate setter, the line:
> dateFiller(_selectedDate);
> should be added after:
> updateDateFiller = true;
> This should cause no problems in commitProperties since the updateDateFiller flag is processed after the selectedDateChange, so if anything (other than the focus handler) has changed the selected date prior, it will still be reflected in the textfield. We just beat the focus handler to the punch.
> Workarounds:
> Extend the datefield and override the selectedDate setter to update the textInput field text immediately instead of flagging updateDatefield which is handled in commitProperties():
> override public function set selectedDate(value:Date):void
> {
> super.selectedDate = value;
> dateFiller(_selectedDate);
> }
> and copy the private dateFiller function into the extended DateField. Everything works correctly now.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira