[ 
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

Reply via email to