Skip navigation links

Introduction

What do the Dates Mean?

The supplied dates indicate when the API change was made, on the CVS trunk. From this you can generally tell whether the change should be present in a given build or not; for trunk builds, simply whether it was made before or after the change; for builds on a stabilization branch, whether the branch was made before or after the given date. In some cases corresponding API changes have been made both in the trunk and in an in-progress stabilization branch, if they were needed for a bug fix; this ought to be marked in this list.


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.openide.actions > 1.20

Changes by affected class

org.netbeans.spi.actions.AbstractSavable

org.openide.awt.ActionID

org.openide.awt.ActionReference

org.openide.awt.ActionReferences

org.openide.awt.ActionRegistration

org.openide.awt.Actions

org.openide.awt.ActionState

org.openide.awt.awt

org.openide.util.actions.CallableSystemAction

org.openide.awt.CheckForUpdatesProvider

org.netbeans.api.actions.Closable

org.openide.awt.CloseButtonFactory

org.openide.awt.ColorComboBox

org.openide.loaders.DataNode

org.openide.awt.DropDownButtonFactory

org.openide.awt.DynamicMenuContent

org.netbeans.api.actions.Editable

org.openide.awt.GraphicsUtils

org.openide.awt.HtmlBrowser

org.openide.awt.HtmlRenderer

org.openide.filesystems.FileSystem.HtmlStatus

org.openide.awt.JInlineMenu

org.openide.awt.JMenuPlus

org.openide.awt.JPopupMenuPlus

org.openide.awt.Mnemonics

org.openide.nodes.Node

org.openide.awt.Notification

org.openide.awt.NotificationDisplayer

org.netbeans.api.actions.Openable

org.netbeans.api.actions.Printable

org.openide.awt.QuickSearch

org.netbeans.api.actions.Savable

org.openide.awt.SpinButton

org.openide.awt.StatusDisplayer

org.openide.awt.StatusLineElementProvider

org.openide.util.actions.SystemAction

org.openide.awt.TabbedPaneFactory

org.openide.awt.Toolbar

org.openide.awt.ToolbarPool

org.openide.awt.ToolbarWithOverflow

org.openide.windows.TopComponent

org.openide.awt.UndoRedo

org.netbeans.api.actions.Viewable


Details of all changes by API and date


AWT API

Add Actions.keyStrokeToString utility method.

Mar 25 '23; API spec. version: 7.88; affected top-level classes: Actions; made by: ebakke

The Actions.keyStrokeToString method has been added as a public API, to avoid duplication of the same logic in the editor.lib module. This method has identical semantics to the existing org.netbeans.editor.Utilities.Actions.keyStrokeToString method (which now delegates to the new Actions.keyStrokeToString), but is available without depending on the editor infrastructure.

Added GraphicsUtils.configureDefaultRenderingHints(Graphics).

Sep 28 '21; API spec. version: 7.82; affected top-level classes: GraphicsUtils; made by: ebakke; issues: NETBEANS-5931
Add the GraphicsUtils.configureDefaultRenderingHints(Graphics) method (with a new GraphicsUtils class), to allow configuration of standard anti-aliasing settings from custom JComponent.paint(Graphics) implementations. These standard incantations were previously duplicated extensively throughout the NetBeans codebase.

Added DropDownButtonFactory.getArrowIcon method.

Dec 13 '19; API spec. version: 7.75; affected top-level classes: DropDownButtonFactory; made by: ebakke; issues: NETBEANS-3581
Add the DropDownButtonFactory.getArrowIcon method, to expose the HiDPI-enabled dropdown arrow icon for use by other modules.

Support model-based enabled and check state of actions

Aug 30 '18; API spec. version: 7.71; affected top-level classes: Actions ActionState ActionReference; made by: sdedic

Context Actions which provide Action.SELECTED_KEY value will be presented as checkbox (menu) or toggle button (toolbar) and will reflect the state of an underlying model bean property, tracking models in Lookup and updating to model changes. Similar support was added for enabled Action property.

All that was required to be implemented by individual Actions in their ContextAwareAction implementations, this allows to use just annotation for the same behaviour in most cases.

Add notification category to the NotificationDisplayer API

Mar 27 '13; API spec. version: 7.58; affected top-level classes: NotificationDisplayer; made by: jpeska; issues: #227690
Clients can specify notification category. There are 3 default categories (Info, Warning, Error) but clients can also create a custom category using layer.xml

The value in Preferences for Actions.checkbox can have a default

Sep 18 '12; API spec. version: 7.53; affected top-level classes: Actions; made by: jlahoda; issues: #217978
A default value can be specified for a preference value for Actions.checkbox.

Minor API extensions to allow better integration of embedded browsers.

Aug 31 '12; API spec. version: 7.52; affected top-level classes: HtmlBrowser; made by: saubrecht; issues: #217171
Internal web browser can now contain an additional toolbar component: HtmlBrowser(Factory, boolean, boolean, Component) Browser implementation can pass arbitrary data to Web browser window's Lookup: HtmlBrowser.Impl.getLookup()

ToolbarWithOverflow class that adds an overflow button when the toolbar becomes too small to show all the available actions.

Aug 8 '12; API spec. version: 7.51; affected top-level classes: ToolbarWithOverflow; made by: theofanis; issues: #216175
ToolbarWithOverflow class is added. It can be used to add an overflow button when the toolbar becomes too small to show all the available actions.

ColorComboBox for color selection.

Aug 3 '12; API spec. version: 7.50; affected top-level classes: ColorComboBox; made by: saubrecht; issues: #216013
There's a new class ColorComboBox that can be used as color picker.

QuickSearch allows to customize of whether the quick search field should always be shown, or not.

Aug 2 '12; API spec. version: 7.49; affected top-level classes: QuickSearch; made by: theofanis; issues: #215833
QuickSearch.isAlwaysShown() and QuickSearch.setAlwaysShown(boolean) methods are added. They can be used to change the default behavior of not showing the quick search field until something is typed.

TabbedPaneFactory can be subclassed.

Jul 17 '12; affected top-level classes: TabbedPaneFactory; made by: saubrecht; issues: #215265
It is possible to subclass TabbedPaneFactory to provide custom implementations of close button tabbed pane.

Support for Check for Updates feature

May 16 '12; API spec. version: 7.45; affected top-level classes: CheckForUpdatesProvider; made by: jrechtacek; issues: #212218
A service provider of UI for Check for Updates feature, for example in About dialog. The instance of the provider should be installed in default lookup using {@link org.openide.util.lookup.ServiceProvider}.

QuickSearch class that allows to attach quick search field to an arbitratry component.

Mar 8 '12; affected top-level classes: QuickSearch; made by: mentlicher; issues: #208794
QuickSearch class is added. It can be used to attach a quick search functionality to an arbitrary component.

Added Actions.forID

Jan 6 '12; API spec. version: 7.42; affected top-level classes: Actions; made by: jglick; issues: #205798

Added a utility method Actions.forID. Also moved AcceleratorBinding down into the org.openide.awt module (keeping the same FQN and signature).


Compatibility:

Calls to FileUtil.getConfigObject or similar should be reviewed.

Modules with a dependency only on org.openide.loaders but not org.openide.awt must add the latter dep in order to use AcceleratorBinding.

Added lazy attribute to ActionRegistration

Dec 14 '11; API spec. version: 7.41; affected top-level classes: ActionRegistration; made by: jglick; issues: #206093

Added attribute explicitly controlling whether an action registration uses a lazy factory method or not.


Compatibility:

New warnings will be issued for existing eager registrations. The warning can be suppressed by explicitly setting lazy=false, but this is a good time to review whether the registration could in fact be made lazy.

Close Button API

Sep 14 '11; API spec. version: 7.38; affected top-level classes: CloseButtonFactory; made by: mkristofic; issues: #201639

New close button factory to a create close button or a big close button.

Turn on Mnemonics in Popup Menus

Jun 14 '11; API spec. version: 7.37; made by: jtulach; issues: #184891

New branding key for applications built on top of NetBeans Platform to turn mnemonics in popup menus on.

New attributes (popupText, menuText) in @ActionRegistration annotation

May 27 '11; API spec. version: 7.35; affected top-level classes: ActionRegistration; made by: tstupka; issues: #197789

New attributes (popupText, menuText) in @ActionRegistration annotation to provide text for menu items or popup menu items according to the Actions.connect method.

Support "selected" icons in Actions and Actions.checkbox

May 24 '11; API spec. version: 7.34; affected top-level classes: Actions; made by: err; issues: #197639

Handle _selected, _rolloverSelected and _disabledSelected icon resources in Actions.connect. Actions.checkbox on a Toolbar uses them if they are available.

Savable context interface

May 20 '11; API spec. version: 7.33; affected top-level classes: Savable AbstractSavable; made by: jtulach; issues: #77210

New interface for objects that can be saved. Old SaveCookie is retrofitted to implement the new Savable interface.

Context Actions Can Specify Different Default Context

Mar 27 '11; API spec. version: 7.31; affected top-level classes: Actions; made by: jtulach; issues: #77210

Action.context, when used from layer accepts "context" attribute.

New @ActionReference annotations

Sep 5 '10; API spec. version: 7.28; affected top-level classes: ActionReference ActionReferences; made by: jtulach; issues: #189558

New annotation to register references to actions from layer.

New @ActionRegistration annotations

Aug 10 '10; API spec. version: 7.26; affected top-level classes: ActionRegistration ActionID; made by: jtulach; issues: #183794

Instead of registering actions in layer as advocated by various action factory methods one can use newly created annotations.

Introducing UndoRedo.Provider

Jun 29 '10; API spec. version: 7.25; affected top-level classes: UndoRedo; made by: jtulach; issues: #180614

Undo and Redo actions now seek their context for implementation of UndoRedo.Provider. If found, it influences their enabled/disabled state. If there is no such provider, the implementation fallbacks to currently activated TopComponent.

HIDE_WHEN_DISABLED

Apr 1 '10; API spec. version: 7.22; affected top-level classes: DynamicMenuContent; made by: jglick; issues: #182488

New action property which makes it simple to conditionally hide, rather than merely grey out, a context menu item.


Compatibility:

Actions formerly implementing DynamicMenuContent solely to conditionally hide an action are encouraged to use the new API.

Support for silent notifications

Oct 16 '09; API spec. version: 7.18; affected top-level classes: NotificationDisplayer; made by: jtulach; issues: #174183
New priority to show a notification but without its details initially. The user can display the details baloon manually later.

Actions.checkbox() can represent a boolean key in Preferences.

Oct 9 '09; API spec. version: 7.17; affected top-level classes: Actions; made by: mmetelka; issues: #166027
checkbox added to create an action that represents a key in Preferences.

AlwaysEnabledAction can represent a boolean key in Preferences.

Aug 24 '09; API spec. version: 7.15; affected top-level classes: Actions; made by: mmetelka; issues: #166027
alwaysEnabledAction was enhanced to understand <attr name="PreferencesKey" stringvalue="boolean-key-name"/> together with <attr name="PreferencesNode" stringvalue="prefstype:/nodepath"/> where prefstype can be or the property value can be Preferences instance or it can be a Lookup with the Preferences instance in it. The action will be represented by check box menu item in both menu and popup menu automatically.

URLDisplayer can show URLs in an external browser even if the preferred browser is an internal one.

Aug 7 '09; API spec. version: 7.14; affected top-level classes: HtmlBrowser; made by: saubrecht; issues: #169240
URLDisplayer.showURL(URL) shows the given page using preferred web browser defined in IDE options. However when the preffered browser is an internal one (either embedded native browser or SwingBrowser) then there's need to show some URLs in an external browser, e.g. when a modal dialog is showing. Method showURLExternal(URL) attempts to display the given page in an external browser. The default implementation just delegates to showURL(URL).

Added 'location' String property to HtmlBrowser.Impl

Aug 4 '09; API spec. version: 7.13; affected top-level classes: HtmlBrowser; made by: saubrecht; issues: #169241
HtmlBrowser.Impl class now has a String property to set/get browser location. The location doesn't have to be a valid URL, for example "about:config" may be accepted as well depeneding on actual browser implementation. The default property implementation attempts to convert the String location to/from URL address.

Support for asynchronous actions

Jul 30 '09; API spec. version: 7.12; affected top-level classes: Actions; made by: jtulach; issues: #168547
The layer definition used by factory methods for context and callback and alwaysEnabledAction were enhanced to understand <attr name="asynchronous" boolvalue="true"/> attribute. This extends these new factories with capabilities already present in old SystemAction, thus makes it easier to migrate from old to new while retaining compatible behaviour.

Added HtmlBrowser.dispose

Jul 15 '09; API spec. version: 7.11; affected top-level classes: HtmlBrowser; made by: saubrecht; issues: #167901
Added method dispose() to HtmlBrowser.Impl class which should be invoked when the browser component is no longer needed. The method is needed for embedded browser to release native component(s). The default implementation does nothing.

Context Aware Action Factories

Jul 1 '09; API spec. version: 7.10; affected top-level classes: Actions Openable Closable Editable Viewable Printable; made by: jtulach; issues: #166658

Two new factory methods for creating context and callback actions and bunch of context interfaces.

As part of introduction of the context interfaces, several already existing interfaces (usually carrying Cookie suffix in their name) were retrofitted to extend these new alternatives. This is binary and semantically compatible (as the methods closure remains the same) and the module providing cookies already had a runtime dependency on org.openide.awt module. However this change can cause problems during compilation. Those who compiled against Nodes API only and implemented one of the cookie interfaces need to add (compile time) dependency on org.openide.awt as well.


Binary-compatible

API to hide close button in CloseButtonTabbedPane

May 6 '09; API spec. version: 7.8; made by: jbecicka; issues: #164578
Added possibility to hide close button in CloseButtonTabbedPane through tab's client property component.putClientProperty(TabbedPaneFactory.NO_CLOSE_BUTTON, Boolean.TRUE)

AlwaysEnabledAction extra properties and Action.NAME synchronization

Apr 7 '09; API spec. version: 7.7; made by: mmetelka; issues: #150875
Actions.alwaysEnabled() now checks whether Action.NAME property value of the delegate action (if defined) matches to the one in the declared for the action in the xml-layer. The AlwaysEnabledAction.getValue() now resolves all the keys in Acxtion.getValue() against the defined attributes in the xml-layer.

Support for showing of notification-like messages in the main status line.

Mar 5 '09; API spec. version: 7.6; affected top-level classes: NotificationDisplayer Notification; made by: saubrecht; issues: #159614
Notifications are generic events that require user's attention and are visualized in a way similar to 'new email' notifications in e.g. Thunderbird. Each notification has an associated icon, title, details text and an action to be invoked on mouse click. The default implementation of this API shows each new notification in a balloon-like tooltip for a few seconds and a list of all notifications is available on mouse-click in the main status bar. Each notification is available until cleared either by user action or programmatically by calling clear() method.

Allow messages to show in the main status line permanently.

Jan 6 '09; API spec. version: 7.5; affected top-level classes: StatusDisplayer; made by: saubrecht; issues: #156357
Because of merging of editor's status line with main window's status line it is necessary to define the 'importance' of messages being displayed in the main status line. Messages with higher importance will replace messages with lower importance. These important messages will stay permanently visible until explicitly cleared or replaced (as opposed to current implementation when all status line messages are removed after some time) or when handle object associated with these messages gets garbage-collected.

Actions can have "menuText" and "popupText" properties

Mar 12 '08; API spec. version: 7.1; affected top-level classes: Actions; made by: jtulach
In order to allow dynamic names of actions, the Actions.connect method now understands additional properties that influence the text of menu items or popup menu items build for this action.

Hidden field SpinButton.rt made accessible

Jan 2 '08; API spec. version: 7.0; affected top-level classes: SpinButton; made by: jtulach
SpinButton used to have a field rt. The type of the field was a package private class. As such the field was inaccessible to API users. Because this is not checked as an error with our new signature test infrastructure, we made the type of the field visible.

Added factory class for drop-down buttons

May 4 '07; API spec. version: 6.11; affected top-level classes: DropDownButtonFactory; made by: saubrecht; issues: #102614
Added a factory class that can create special buttons with a small arrow icon that brings up a popup menu when clicked.

Added TabbedPane with closeable tabs

Feb 28 '07; API spec. version: 6.10; affected top-level classes: TabbedPaneFactory; made by: saubrecht; issues: #55845
Added a factory class for special JTabbedPane that displays a small 'close' button in each tab. When user clicks the close button a PropertyChangeEvent is fired from the tabbed pane.

Actions.ButtonActionConnector interface added

Feb 1 '07; API spec. version: 6.9; affected top-level classes: Actions; made by: dstrupl; issues: #93519
The addition enables to plug in additional logic for action enabling and disabling based on for example authorization information. The added SPI interface is being looked up in the default lookup. If there is no implementation the original behaviour is preserverd.

DynamicMenuContent interface added

Jun 12 '05; API spec. version: 6.5; affected top-level classes: DynamicMenuContent JInlineMenu JMenuPlus JPopupMenuPlus Actions; made by: mkleint; issues: #35827
In order to support MacOSX top menus and to fix problems with deprecated JInlineMenu, this new interface was added that allows to handle dynamic content in Presenter.Menu and Presenter.Popup. If the instance returned by Presenter.Menu/Popup is an instance of DynamicMenuContent, it's methods are consulted when creating/updating the menu. JInlineMenu rewritten to use this new approach in a backward compatible way, however changed during visibility of the menu are not supported. JMenuPlus and JPopupMenuPlus are deprecated and behave exactly like their standard Swing counterparts. Actions.Submenu and Actions.MenuItem now implement DynamicMenuContent interface.

Make IDE's status bar pluggable.

May 4 '05; API spec. version: 6.4; affected top-level classes: StatusLineElementProvider; made by: mkleint; issues: #55828
By registering org.openide.awt.StatusLineElementProvider in the default lookup (META-INF/servides) one can provide a custom component that will be incorporated into the IDE's statusbar. The exact location of your component is determined by the ordering of the providers.

Actions with custom tooltip have tooltip with shortcut in toolbars

Apr 29 '05; API spec. version: 6.3; made by: jlahoda; issues: #57974
If an action specifies a tooltip, the tooltip of the corresponding toolbar button is augmented with shortcut in the same way as when the action does not specify tooltip.

Added property to SystemAction/Action that causes it's icon not to be displayed in menu.

Oct 12 '04; API spec. version: 4.49; affected top-level classes: org.openide.awt.awt; made by: mkleint

SystemAction putValue("noIconInMenu", Boolean.TRUE) influences the display of the action in the main menu, the item will have no icon there. Works for Actions that don't define custom MenuPresenter. This property is considered temporary, applications building on top of the platform that don't want this functionality, have to patch the actions' code.

Added methods to HtmlBrowser

May 7 '04; API spec. version: 4.27; affected top-level classes: HtmlBrowser; made by: jglick

The methods getBrowserImpl and getBrowserComponent were added to HtmlBrowser for use by core.

Lightweight HTML rendering methods

May 3 '04; API spec. version: 4.32; affected top-level classes: org.openide.filesystems.FileSystem.HtmlStatus org.openide.nodes.Node HtmlRenderer org.openide.loaders.DataNode; made by: tboudreau; issues: #29466
A lightweight HTML renderer which can render a limited subset of HTML has been added to the APIs, and will be used in Explorer. Nodes wishing to provide text rendered in HTML may do so by returning subset-compliant HTML formatted text from the new method getHtmlDisplayName. An interface, HTMLStatus has been created which extends FileSystem.Status, has been created, which allows filesystems to supply HTML formatted status information, by implementing it on their FileSystem.Status implementation. Filesystems which delegate to other filesystems my implement FileSystem.HtmlStatus and simply return null for filesystems which do not support it. If one is present, DataNode will use it to supply HTML formatted text to Explorer. The renderer itself can be found in org.openide.awt.HtmlRenderer.

Allow asynchronous execution of actions

Feb 17 '04; API spec. version: 4.26; affected top-level classes: org.openide.util.actions.CallableSystemAction; made by: jtulach; issues: #39640
Support for asynchronous execution of actions has been re-added. Right now all CallableSystemAction that return true from their asynchronous method are executed outside of AWT thread. However as most actions shall be executed synchronously, it is still required for a subclass of CallableSystemAction to override the method with own implementation otherwise a warning is printed.

There is a special contract to allow asynchronous actions to be executed synchronously, by using special ActionEvent with waitFinished as action command.

Support for pressed, disabled and rollover icons added to SystemAction and Actions

Jan 8 '04; API spec. version: 4.22; affected top-level classes: org.openide.util.actions.SystemAction org.openide.awt.awt; made by: dstrupl; issues: #32256
Method SystemAction.getValue() was modified to support one additional special parameter: "iconBase". If a value with this key is required the method calls into SystemAction.iconResource. Class org.openide.awt.Actions uses value of "iconBase" to fetch the icons. The "iconBase" parameter is used not only when connecting SystemAction but for all javax.swing.Action instances. The value of "iconBase" is a path to the icon resources without the trailing .gif. The code in Actions adds .gif, _pressed.gif, _disabled.gif and _rollover.gif suffices to the iconBase.

org.openide.awt.Mnemonics added

Feb 10 '03; API spec. version: 3.37; affected top-level classes: Mnemonics Actions; made by: jglick; issues: #26640
The class org.openide.awt.Mnemonics was introduced as a centralized and convenient place to set localized text for a variety of components while properly handling mnemonics in a variety of international scripts.

New Actions system - part I.

Jan 21 '03; API spec. version: 3.32; affected top-level classes: org.openide.windows.TopComponent; made by: pzavadsky; issues: #30231

According to changes in action system (see the change 3.29), also the method TopComponent.getSystemActions() is replaced by TopComponent.getActions() method.

New Actions system - part I.

Jan 8 '03; API spec. version: 3.29; affected top-level classes: org.openide.awt.awt; made by: jtulach pzavadsky; issues: #27868

Introduction of new action system, which generally means move from usage of SystemAction to Action instances. Further step would be declarative actions usage which is not subject of current change, it will be part of later changes.

Create your own toolbar pool

Apr 27 '01; API spec. version: 1.5; affected top-level classes: org.openide.awt.ToolbarPool
New constructor of ToolbarPool. Now any module can create its own ToolbarPool and use it.

HTML browser factory deprecated, use lookup instead

Mar 8 '01; affected top-level classes: HtmlBrowser
HtmlBrower.setFactory() is deprecated and its functionality can be obtained by registering HtmlBrowser.Impl in Lookup folder. This allows to register more browsers in IDE, create customizable browsers and switch between them.

Display names for toolbars

Dec 8 '00; affected top-level classes: org.openide.awt.Toolbar
Added display name support for Toolbar class. New constructors and methods:

Cleaned up accidentally public members of Toolbar

Apr 19 '00; affected top-level classes: org.openide.awt.Toolbar
Several public fields removed from DnDEvent (dx, dy, name, and type); public methods serving only to implement MouseInputListener have been removed (as well as the implements-clause for this interface); BASIC_HEIGHT now final (it was static and only intended as a constant, so this is not incompatible).
Compatibility: First broken, later restored binary compatibility in trunk and boston. It is possible but unlikely that the first two changes could cause incompatibilities; normally only the core implementation uses the Toolbar class anyway.
Binary-compatible

Can request to use textual icons for actions

Mar 23 '00; affected top-level classes: Actions; made by: jglick
ButtonBridge has protected method with which it is possible to specify whether or not to use textual icons rather than empty ones if an action has no icon.