[ https://issues.apache.org/jira/browse/PIVOT-751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13065719#comment-13065719 ]
Chris Bartlett commented on PIVOT-751: -------------------------------------- It might also be worth changing the name of the 'previousSelectedIndex' parameter to something else to that better reflects that its value might not actually be the previously selected index, but the current selected index instead. Any such change should be made to other XXXSelectionListener interfaces for consistency. > 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 > > > 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