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.openide.awt.Actions

org.openide.awt.awt

org.openide.util.actions.CallableSystemAction

org.openide.loaders.DataNode

org.openide.awt.DropDownButtonFactory

org.openide.awt.DynamicMenuContent

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.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.windows.TopComponent


Details of all changes by API and date


AWT API

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.

Built on June 24 2009.  |  Portions Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.