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


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

Reply via email to