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/03/11 01:25:12 UTC

[jira] [Assigned] (FLEX-33414) Null textInput in ComboBox

     [ https://issues.apache.org/jira/browse/FLEX-33414?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Justin Mclean reassigned FLEX-33414:
------------------------------------

    Assignee: Justin Mclean
    
> Null textInput in ComboBox
> --------------------------
>
>                 Key: FLEX-33414
>                 URL: https://issues.apache.org/jira/browse/FLEX-33414
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Spark: ComboBox
>    Affects Versions: Adobe Flex SDK Previous, Apache Flex 4.9.0
>            Reporter: Harbs
>            Assignee: Justin Mclean
>            Priority: Minor
>              Labels: easyfix
>
> commitProperties does a check that textInput in not bull, but at the end of the function assumes it's not null:
>         // Clear the TextInput because we were programmatically set to NO_SELECTION
>         // We call this after super.commitProperties because commitSelection might have
>         // changed the value to NO_SELECTION
>         if (selectedIndexChanged && selectedIndex == NO_SELECTION)
>             textInput.text = "";
> I have a situation where textInput was null and caused an error there.
> I propose moving the code up into the scope of the check for textInput like this:
>     override protected function commitProperties():void
>     {        
>         // Keep track of whether selectedIndex was programmatically changed
>         var selectedIndexChanged:Boolean = _proposedSelectedIndex != NO_PROPOSED_SELECTION;
>         
>         // If selectedIndex was set to CUSTOM_SELECTED_ITEM, and no selectedItem was specified,
>         // then don't change the selectedIndex
>         if (_proposedSelectedIndex == CUSTOM_SELECTED_ITEM && 
>             _pendingSelectedItem == undefined)
>         {
>             _proposedSelectedIndex = NO_PROPOSED_SELECTION;
>         }
>         
>         super.commitProperties();
>         
>         if (textInput)
>         {
>             if (maxCharsChanged)
>             {
>                 textInput.maxChars = _maxChars;
>                 maxCharsChanged = false;
>             }
>             
>             if (promptChanged)
>             {
>                 textInput.prompt = _prompt;
>                 promptChanged = false;
>             }
>             
>             if (restrictChanged)
>             {
>                 textInput.restrict = _restrict;
>                 restrictChanged = false;
>             }
>             
>             if (typicalItemChanged)
>             {
>                 if (typicalItem != null)
>                 {
>                     var itemString:String = LabelUtil.itemToLabel(typicalItem, labelField, labelFunction);
>                     textInput.widthInChars = itemString.length;
>                 }
>                 else
>                 {
>                     // Just set it back to the default value
>                     textInput.widthInChars = 10; 
>                 }
>                 
>                 typicalItemChanged = false;
>             }
>             // Clear the TextInput because we were programmatically set to NO_SELECTION
>             // We call this after super.commitProperties because commitSelection might have
>             // changed the value to NO_SELECTION
>             if (selectedIndexChanged && selectedIndex == NO_SELECTION)
>                 textInput.text = "";
>         }
>         
>     }    

--
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