Skip navigation links

Introduction

This document lists changes made to the TabControl API.


Index of APIs

Incompatible changes by date

Fuller descriptions of all changes can be found below (follow links).

Not all deprecations are listed here, assuming that the deprecated APIs continue to essentially work. For a full deprecation list, please consult the Javadoc.

All changes by date

Changes by version

These API specification versions may be used to indicate that a module requires a certain API feature in order to function. For example, if you see here a feature you need which is labelled 1.20, your manifest should contain in its main attributes the line:

OpenIDE-Module-Module-Dependencies: org.netbeans.swing.tabcontrol > 1.20

Changes by affected class

org.netbeans.swing.tabcontrol.plaf.AbstractTabCellRenderer

org.netbeans.swing.tabcontrol.plaf.AbstractViewTabDisplayerUI

org.netbeans.swing.tabcontrol.plaf.BusyTabsSupport

org.netbeans.swing.tabcontrol.SlideBarDataModel

org.netbeans.swing.popupswitcher.SwitcherTable

org.netbeans.swing.tabcontrol.event.TabActionEvent

org.netbeans.swing.tabcontrol.customtabs.Tabbed

org.netbeans.swing.tabcontrol.customtabs.TabbedComponentFactory

org.netbeans.swing.tabcontrol.TabbedContainer

org.netbeans.swing.tabcontrol.TabbedContainerUI

org.netbeans.swing.tabcontrol.customtabs.TabbedType

org.netbeans.swing.tabcontrol.plaf.TabControlButton

org.netbeans.swing.tabcontrol.plaf.TabControlButtonFactory

org.netbeans.swing.tabcontrol.TabDisplayer

org.netbeans.swing.tabcontrol.TabDisplayerUI

org.netbeans.swing.tabcontrol.plaf.TabState

org.netbeans.swing.tabcontrol.plaf.Windows8EditorTabDisplayerUI

org.netbeans.swing.tabcontrol.plaf.Windows8ViewTabDisplayerUI

org.netbeans.swing.tabcontrol.WinsysInfoForTabbedContainer


Details of all changes by API and date


Popup Switcher APIs

Allow changes in SwitcherTable content.

Feb 22 '12; API spec. version: 1.35; affected top-level classes: SwitcherTable; made by: saubrecht
There's a new method void setSwitcherItems(SwitcherTableItems[],int) in SwitcherTable class which allows to change the content of document switcher popup.

Tab Control APIs

Allow tab control renderers to override text position calculation

Jul 8 '22; API spec. version: 1.74; affected top-level classes: AbstractTabCellRenderer; made by: ebakke
A new method AbstractTabCellRenderer.getCaptionYPosition may now be overridden by subclasses, to customize the calculation of the tab label's Y position. This allows specific implementations to improve the calculation code without affecting other LAFs (which may contain adjustments hard-coded to work with the old calculation.)

Added ability to scroll document tabs when dragging a TopComponent over the editor area.

Sep 11 '13; API spec. version: 1.48; affected top-level classes: TabDisplayer TabDisplayerUI; made by: saubrecht
TabDisplayer no implements java.awt.dnd.Autoscroll interface. The new methods just delegate to TabDisplayerUI. The actual implementation is in BasicScrollingTabDisplayerUI class which scrolls the tabs to the left or to the right when a TopComponent is being dragged over its left or right edge.

Added getter and setter for ComponentConverter to TabDisplayer class.

Jun 12 '13; API spec. version: 1.44; affected top-level classes: TabDisplayer; made by: saubrecht; issues: #171385
TabDisplayer class has getter and setter for ComponentConverter so that its UI delegate can calculate proper minimum size when ComponentConverter is being used.

New UI delegates for Windows 8 look and feel.

Nov 27 '12; API spec. version: 1.41; affected top-level classes: Windows8ViewTabDisplayerUI Windows8EditorTabDisplayerUI; made by: saubrecht
New UI delegates for editor and non-editor tabs for Windows 8 look and feel.

Allow a tab to be permanently highlighted until user activates it.

Aug 31 '12; API spec. version: 1.38; affected top-level classes: TabbedContainer TabbedContainerUI TabDisplayerUI TabDisplayer Tabbed TabState; made by: saubrecht; issues: #217509
There's a new method void setSwitcherItems(SwitcherTableItems[],int) in SwitcherTable class which allows to change the content of document switcher popup.

Display notification that a tab is 'busy'.

Feb 14 '12; API spec. version: 1.34; affected top-level classes: BusyTabsSupport WinsysInfoForTabbedContainer TabDisplayerUI Tabbed; made by: saubrecht; issues: #208026
The look and feel for tabbed containers has been extended to support notifications that a tab is 'busy', i.e. some lengthy process is being run in it.
All supported look and feel implementations use an animated icon to indicate the busy state.

Allow custom implementation of tab control.

Jan 25 '12; API spec. version: 1.33; affected top-level classes: TabbedComponentFactory Tabbed TabbedType; made by: saubrecht

There is a new TabbedComponentFactory class that allows custom implementations of tab control to be used in the window system. See TabbedComponentFactory Javadoc for more details.

Allow custom UI for 'restore window group' button.

Jul 14 '11; API spec. version: 1.28; affected top-level classes: TabControlButtonFactory; made by: saubrecht

Button to restore the whole window group from minimized bar now supports custom UI implementations. Simply provide own ButtonUI for restoreGroupButtonUI key in UIManager.

New methods to support operations with window groups.

Jun 24 '11; API spec. version: 1.27; affected top-level classes: WinsysInfoForTabbedContainer SlideBarDataModel TabbedContainer TabDisplayer TabDisplayerUI TabActionEvent AbstractViewTabDisplayerUI TabControlButton TabControlButtonFactory; made by: saubrecht; issues: #199677

Added new methods to support operations with window groups, e.g. close window group or minimize window group.

Also the implementation of look and feels for all supported platform switches to non-stretching tab layout.

Added new methods to WinsysInfoForTabbedContainer class which can adjust the behavior of TopComponents in tabbed container.

Jan 13 '09; API spec. version: 1.15; affected top-level classes: WinsysInfoForTabbedContainer; made by: saubrecht; issues: #156693

Added new methods to class WinsysInfoForTabbedContainer to find out the status (enabled/disabled) of some window system features for given TopComponent, e.g. is the TopComponent allowed to slide-out etc.

Added new abstract class WinsysInfoForTabbedContainer which can adjust some tabbed container properties and behavior.

Jun 6 '08; API spec. version: 1.13; affected top-level classes: WinsysInfoForTabbedContainer; made by: saubrecht; issues: #136636

The new abstract class WinsysInfoForTabbedContainer is a replacement for interface WinsysInfoForTabbed. The new class implements the old interface and also contains method informing the tabbed containers about the state of some of window system switches that may disable some of its functionality. (For example disable window sliding).

Added support for transparency of slided-in windows

Nov 28 '07; API spec. version: 1.11; made by: saubrecht

Containers with slided-in windows can be painted with different alpha channel to achieve window transparency.

API switched to 'public - under development'

Jul 24 '07; API spec. version: 1.9; made by: saubrecht

Since there are some third party modules that provide non-standard look and feel for the TabControl, the API is switched back to 'public - under development status'.

Module core/windows now has Friend API dependency on core/swing/tabcontrol

Oct 5 '06; made by: saubrecht

The Tab Control module was unnecessarily exposing all of its packages as public API. Since it's no longer possible to use the Tab Control as a standalone module (because of its dependencies on Windows API) the module now has only a single friend module - Core/Windows.

There were also other changes in Tab Control UI classes for various L&Fs (i.e. classes that were previously in public API packages), some methods have been removed, some were added. Also some classes in org.netbeans.swing.tabcontrol package have changed.

TabbedContainerUI.jdk14bug4924516Hack deleted

Apr 5 '06; affected top-level classes: TabbedContainerUI; made by: jglick
A method which was present only as a workaround for a bug in JDK 1.4 was deleted, since only JDK 5+ is now supported. The method should not have been called by anyone outside of this module anyway.

Flashing tabs added

Nov 18 '04; API spec. version: 1.3; affected top-level classes: TabDisplayer TabbedContainer; made by: mkleint; issues: #48811

Added support for flashing tabs, to be used to get user's attention. The API allows to start the flashing and stop it explicitly. Also stops when user selects the given tab.