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

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

# All changes by date

- (Dec 6 '05) Interface `AsynchronousInstantiatingIterator` added
- (May 16 '05) Interface `AsynchronousValidationgPanel` added
- (Mar 28 '05) Add method `NotifyDescriptor.getDefaultValue()`
- (Jan 8 '05) Added paramater `leaf` to `DialogDescriptor`
- (Jul 2 '04) Added WizardDescriptor.getInstantiatedObjects
- (May 4 '04) Made instantiating iterator
- (Mar 29 '04) Allow dynamically enable/disable Finish button
- (Mar 29 '04) Allow vetoable Next/Finish validation in wizard

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

- (6.5) Interface `AsynchronousInstantiatingIterator` added
- (6.2) Interface `AsynchronousValidationgPanel` added
- (5.9) Add method `NotifyDescriptor.getDefaultValue()`
- (5.5) Added paramater `leaf` to `DialogDescriptor`
- (4.41) Added WizardDescriptor.getInstantiatedObjects
- (4.33) Made instantiating iterator
- (4.28) Allow dynamically enable/disable Finish button
- (4.28) Allow vetoable Next/Finish validation in wizard

# Changes by affected class

## `org.openide.DialogDescriptor`

- (Jan 8 '05) Added paramater `leaf` to `DialogDescriptor`

## `org.openide.NotifyDescriptor`

- (Mar 28 '05) Add method `NotifyDescriptor.getDefaultValue()`

## `org.openide.WizardDescriptor`

- (Dec 6 '05) Interface `AsynchronousInstantiatingIterator` added
- (May 16 '05) Interface `AsynchronousValidationgPanel` added
- (Jul 2 '04) Added WizardDescriptor.getInstantiatedObjects
- (May 4 '04) Made instantiating iterator
- (Mar 29 '04) Allow dynamically enable/disable Finish button
- (Mar 29 '04) Allow vetoable Next/Finish validation in wizard

## `org.openide.WizardValidationException`

- (Mar 29 '04) Allow vetoable Next/Finish validation in wizard

# Details of all changes by API and date

## Dialogs API

### Interface `AsynchronousInstantiatingIterator` added

Dec 6 '05; API spec. version: 6.5; affected top-level classes: `WizardDescriptor`; made by: jrechtacek; issues: #62161
The `AsynchronousInstantiatingIterator` allows to implement asynchronous instantating of newly created objects. Wizard's framework esures that the method `AsynchronousInstantiatingIterator.instantiate()` will be called ouside of an event queue.

### Interface `AsynchronousValidationgPanel` added

May 16 '05; API spec. version: 6.2; affected top-level classes: `WizardDescriptor`; made by: pkuzel; issues: #58530
The `AsynchronousValidatingPanel` allows to implement background validation that does not block UI thread. I.e. UI thread can be used to render validation progress.

### Add method `NotifyDescriptor.getDefaultValue()`

Mar 28 '05; API spec. version: 5.9; affected top-level classes: `NotifyDescriptor`; made by: jrechtacek; issues: #56878
The `NotifyDescriptor.getDefaultValue()` returns object which represents the default value. This default value is introduced in the constructor of `NotifyDescriptor`.

### Added paramater `leaf` to `DialogDescriptor`

Jan 8 '05; API spec. version: 5.5; affected top-level classes: `DialogDescriptor`; made by: jrechtacek

Added the parameter `leaf` in constructor of the `DialogDescriptor`. The parameter is not mandatory and can be set manually. If this parameter is `false` (as default), all works as before. If the parameter `leaf` is `true`, then a dialog which is created by this descriptor cannot own any other windows.

### Added WizardDescriptor.getInstantiatedObjects

Jul 2 '04; API spec. version: 4.41; affected top-level classes: `WizardDescriptor`; made by: jrechtacek; issues: #44513
Added the new method `Set getInstantiatedObjects`. This method returns set of newly instantiated objects if the wizard has been correctly finished. The empty set is returned as default, if the wizard uses the `InstantiatingIterator` then returns a set of `Object` as same as `InstantiatingIterator.instantiate()` does. The method throws the exception `IllegalStateException` if this method is called on the unfinished wizard.

### Made instantiating iterator

May 4 '04; API spec. version: 4.33; affected top-level classes: `WizardDescriptor`; made by: jrechtacek; issues: #42192
Added a special interface for a wizard that needs to controll instantiating new objects. This interface can replace TemplateWizard.Iterator in template's declaration. New `WizardDescriptor.InstantiatingIterator` extends `WizardDescriptor.Iterator` and contains the methods for `initialize/uninitialize` the iterator and the central method `instantiate` which returns a set on instantiated objects.

### Allow dynamically enable/disable Finish button

Mar 29 '04; API spec. version: 4.28; affected top-level classes: `WizardDescriptor`; made by: jrechtacek; issues: #7706
Added a special interface for a panel that needs to dynamically enabled `Finish` button. This interface `WizardDescriptor.FinishablePanel` extends `WizardDescriptor.Panel` and adds a method `isFinishPanel()` which returns if `Finish` button could be enabled. `WizardDescriptor.FinishPanel` is now deprecated, the preferred way is using `FinishablePanel` instead.

### Allow vetoable Next/Finish validation in wizard

Mar 29 '04; API spec. version: 4.28; affected top-level classes: `WizardDescriptor` `WizardValidationException`; made by: jrechtacek; issues: #23116
Added a special interface for panels that need to do additional validation when `Next` or `Finish` button is clicked. This interface `WizardDescriptor.ValidatingPanel` extends `WizardDescriptor.Panel` and adds a method `validate()` which is called when un user clicked `Next` or `Finish` button. If validation fails the wizard doesn't move to next panel nor finish, the `WizardValidationException` is thrown and it returns which component fails (in a wizard's panel) and provides a error message to notify the user about.

Built on December 7 2006. | Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.