[
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