[ https://issues.apache.org/jira/browse/PIVOT-751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13065767#comment-13065767 ]
Chris Bartlett commented on PIVOT-751: -------------------------------------- One other thing to note... When a tab is added to a previously empty TabPane, the tab will be selected as it is the only tab. However if a TabPane has 2 tabs, and the selected one is removed, the only remaining tab is not selected. Any time that a selected tab is removed, it is up to the application developer to choose which tab (if any) should be selected. If this is not done, no tabs will be selected. > 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