flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mihai Chira (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (FLEX-34838) getItemIndex returns -1 for item whose property was edited with GridItemEditor
Date Wed, 13 May 2015 14:32:59 GMT

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

Mihai Chira updated FLEX-34838:
-------------------------------
    Description: 
In GridItemEditor.save() the sort is removed from the dataProvider, the change is made, and
after that the sort is reapplied, but without calling refresh() on the collection. This effectively
means that we're fooling the dataProvider into thinking that its items are correctly sorted
according to the sort properties (by this I mean that if we call getItemIndex, it will use
its sort info to find it, thinking everything is in order), when in fact the order is now
practically random. Yes, this can be a problem when trying to remove the selected item (see
FLEX-34837), but it's much wider than that: usually a dataProvider is accessed by the developers
long after it's assigned to a DataGrid, and they expect (especially if it wasn't sorted to
begin with) that getItemIndex() will work correctly for their custom code. But due to this
bug it will often return -1.

*Steps to reproduce*:
* Run the attachment to FLEX-34837 and repeat the steps for the "Name" column instead of the
"Street" one.

  was:...


> getItemIndex returns -1 for item whose property was edited with GridItemEditor
> ------------------------------------------------------------------------------
>
>                 Key: FLEX-34838
>                 URL: https://issues.apache.org/jira/browse/FLEX-34838
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Spark: DataGrid
>    Affects Versions: Apache Flex 4.14.0
>            Reporter: Mihai Chira
>            Assignee: Mihai Chira
>             Fix For: Apache Flex 4.15.0
>
>
> In GridItemEditor.save() the sort is removed from the dataProvider, the change is made,
and after that the sort is reapplied, but without calling refresh() on the collection. This
effectively means that we're fooling the dataProvider into thinking that its items are correctly
sorted according to the sort properties (by this I mean that if we call getItemIndex, it will
use its sort info to find it, thinking everything is in order), when in fact the order is
now practically random. Yes, this can be a problem when trying to remove the selected item
(see FLEX-34837), but it's much wider than that: usually a dataProvider is accessed by the
developers long after it's assigned to a DataGrid, and they expect (especially if it wasn't
sorted to begin with) that getItemIndex() will work correctly for their custom code. But due
to this bug it will often return -1.
> *Steps to reproduce*:
> * Run the attachment to FLEX-34837 and repeat the steps for the "Name" column instead
of the "Street" one.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message