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

Roger Whitcomb updated PIVOT-948:
---------------------------------

    Attachment: binding.patch

The logic is changed as follows:
if (selectedIndex == -1)
    item = null;
else {
    if (selectedKeyBinding == null)
        item = data.get(selectedIndex);
    else
        item = selectedKeyBinding.get(data, selectedIndex);
}

To:
if (selectedKeyBinding == null) {
    if (selectedIndex == -1)
        item = null;
    else
        item = data.get(selectedIndex);
} else {
    item = selectedKeyBinding.get(data, selectedIndex);
}

Which allows the binding method to completely decide for itself what to do with 
the -1 (unselected) index, instead of arbitrarily deciding that the value 
should be null.

> Allow selected key bindings to work with unselected items
> ---------------------------------------------------------
>
>                 Key: PIVOT-948
>                 URL: https://issues.apache.org/jira/browse/PIVOT-948
>             Project: Pivot
>          Issue Type: Bug
>          Components: wtk
>    Affects Versions: 2.0.3
>         Environment: All
>            Reporter: Roger Whitcomb
>            Assignee: Roger Whitcomb
>            Priority: Minor
>              Labels: binding
>             Fix For: 2.1
>
>         Attachments: binding.patch
>
>
> If you set a selected key binding (on a ListButton, ListView, TableView or 
> Spinner), and invoke the "store" method when no item is selected, you can get 
> an error about not being able to assign "null" to an "int" field (in my case).
> The problem is that "store" tests for nothing being selected and sets the 
> item to null without even calling the binding method.  In my case, I am using 
> the binding to just store the selected index as an integer, so the item will 
> not end up being null, except that the binding method is never called.
> So, the item value to be stored should be left up to the binding method, even 
> in the "unselected" case in order to be consistent (and to allow my selected 
> index bind mapping to work correctly, even in the unselected case).
> It will be more clear what the problem is when you see the patch file.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to