You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pivot.apache.org by "Chris Bartlett (JIRA)" <ji...@apache.org> on 2011/07/15 10:28:00 UTC

[jira] [Updated] (PIVOT-751) TabPaneSelectionListener#selectedIndexChanged called twice when first tab is inserted

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

Chris Bartlett updated PIVOT-751:
---------------------------------

    Attachment: PIVOT751.java
                PIVOT751.txt

Simple test app and its generated output

> TabPaneSelectionListener#selectedIndexChanged called twice when first tab is inserted
> -------------------------------------------------------------------------------------
>
>                 Key: PIVOT-751
>                 URL: https://issues.apache.org/jira/browse/PIVOT-751
>             Project: Pivot
>          Issue Type: Bug
>          Components: wtk
>    Affects Versions: 2.0
>            Reporter: Edvin Syse
>            Priority: Minor
>             Fix For: 2.0.1
>
>         Attachments: PIVOT751.java, PIVOT751.txt
>
>
> If you add a tab to an _empty_ tabpane, two selectedIndexChanged events are called. I.e, when you add a TabPaneSelectionListener to a tabpane and call:
> tabpane.getTabs().add(component);
> .. the listener fires twice, with previousSelectedIndex set to -1 and then 0.
> The two events are fired by line 68 and 72 in TabPane.java:
> 68            tabPaneListeners.tabInserted(TabPane.this, index);
> 69
> 70            // Fire selection change event, if necessary
> 71            if (selectedIndex != previousSelectedIndex) {
> 72 tabPaneSelectionListeners.selectedIndexChanged(TabPane.this, selectedIndex);
> 73            }
> This could be fixed by taking into account that previousSelectedIndex might have been -1 when invoked, like this:
> if (selectedIndex != previousSelectedIndex && previousSelectedIndex > -1) { 
> See this thread for more info: http://apache-pivot-users.399431.n3.nabble.com/TabPaneSelectionListener-selectedIndexChanged-called-twice-when-first-tab-is-inserted-td3022515.html
> PS: According to Chris, CardPane and Accordion behave in the same way, so any changes to TabPane should also be made to these for consistency.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira