Overview

# 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.

- The `release41` branch was made on Apr 03 '05 for use in the NetBeans 4.1 release. Specification versions: 6.0 begins after this point.
- The `release40` branch was made on Nov 01 '04 for use in the NetBeans 4.0 release. Specification versions: 5.0 begins after this point.

# Index of APIs

- AWT API

# 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.

- (Jun 12 '05) DynamicMenuContent interface added
- (Apr 29 '05) Actions with custom tooltip have tooltip with shortcut in toolbars
- (Apr 19 '00) Cleaned up accidentally public members of `Toolbar`

# All changes by date

- (Jun 12 '05) DynamicMenuContent interface added
- (May 4 '05) Make IDE's status bar pluggable.
- (Apr 29 '05) Actions with custom tooltip have tooltip with shortcut in toolbars
- (Oct 12 '04) Added property to `SystemAction/Action` that causes it's icon not to be displayed in menu.
- (May 7 '04) Added methods to `HtmlBrowser`
- (May 3 '04) Lightweight HTML rendering methods
- (Feb 17 '04) Allow asynchronous execution of actions
- (Jan 8 '04) Support for pressed, disabled and rollover icons added to SystemAction and Actions
- (Feb 10 '03) `org.openide.awt.Mnemonics` added
- (Jan 21 '03) New Actions system - part I.
- (Jan 8 '03) New Actions system - part I.
- (Apr 27 '01) Create your own toolbar pool
- (Mar 8 '01) HTML browser factory deprecated, use lookup instead
- (Dec 8 '00) Display names for toolbars
- (Apr 19 '00) Cleaned up accidentally public members of `Toolbar`
- (Mar 23 '00) Can request to use textual icons for actions

# 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

- (6.5) DynamicMenuContent interface added
- (6.4) Make IDE's status bar pluggable.
- (6.3) Actions with custom tooltip have tooltip with shortcut in toolbars
- (4.49) Added property to `SystemAction/Action` that causes it's icon not to be displayed in menu.
- (4.32) Lightweight HTML rendering methods
- (4.27) Added methods to `HtmlBrowser`
- (4.26) Allow asynchronous execution of actions
- (4.22) Support for pressed, disabled and rollover icons added to SystemAction and Actions
- (3.37) `org.openide.awt.Mnemonics` added
- (3.32) New Actions system - part I.
- (3.29) New Actions system - part I.
- (1.5) Create your own toolbar pool

# Changes by affected class

## `org.openide.awt.Actions`

- (Jun 12 '05) DynamicMenuContent interface added
- (Feb 10 '03) `org.openide.awt.Mnemonics` added
- (Mar 23 '00) Can request to use textual icons for actions

## `org.openide.awt.awt`

- (Oct 12 '04) Added property to `SystemAction/Action` that causes it's icon not to be displayed in menu.
- (Jan 8 '04) Support for pressed, disabled and rollover icons added to SystemAction and Actions
- (Jan 8 '03) New Actions system - part I.

## `org.openide.util.actions.CallableSystemAction`

- (Feb 17 '04) Allow asynchronous execution of actions

## `org.openide.loaders.DataNode`

- (May 3 '04) Lightweight HTML rendering methods

## `org.openide.awt.DynamicMenuContent`

- (Jun 12 '05) DynamicMenuContent interface added

## `org.openide.awt.HtmlBrowser`

- (May 7 '04) Added methods to `HtmlBrowser`
- (Mar 8 '01) HTML browser factory deprecated, use lookup instead

## `org.openide.awt.HtmlRenderer`

- (May 3 '04) Lightweight HTML rendering methods

## `org.openide.filesystems.FileSystem.HtmlStatus`

- (May 3 '04) Lightweight HTML rendering methods

## `org.openide.awt.JInlineMenu`

- (Jun 12 '05) DynamicMenuContent interface added

## `org.openide.awt.JMenuPlus`

- (Jun 12 '05) DynamicMenuContent interface added

## `org.openide.awt.JPopupMenuPlus`

- (Jun 12 '05) DynamicMenuContent interface added

## `org.openide.awt.Mnemonics`

- (Feb 10 '03) `org.openide.awt.Mnemonics` added

## `org.openide.nodes.Node`

- (May 3 '04) Lightweight HTML rendering methods

## `org.openide.awt.StatusLineElementProvider`

- (May 4 '05) Make IDE's status bar pluggable.

## `org.openide.util.actions.SystemAction`

- (Jan 8 '04) Support for pressed, disabled and rollover icons added to SystemAction and Actions

## `org.openide.awt.Toolbar`

- (Dec 8 '00) Display names for toolbars
- (Apr 19 '00) Cleaned up accidentally public members of `Toolbar`

## `org.openide.awt.ToolbarPool`

- (Apr 27 '01) Create your own toolbar pool

## `org.openide.windows.TopComponent`

- (Jan 21 '03) New Actions system - part I.

# Details of all changes by API and date

## AWT API

### 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:

- `Toolbar(String name, String displayName)`
- `Toolbar(String name, String displayName, boolean floatable)`
- `setDisplayName(String displayName)`
- `String getDisplayName()`

### 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 December 7 2006. | Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.