Overview

# Introduction

This document lists changes made to the Project UI API.

# Index of APIs

- Project UI 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.

- (May 12 '05) The `projectOpened` and `projectClosed` methods are called on all `ProjectOpenedHook` instances in the lookup.
- (May 5 '05) Ability to extend project context menus

# All changes by date

- (Aug 26 '05) Ability to get and set main project
- (Aug 22 '05) Project Delete/Copy/Rename/Move Support Added, Support for Default Project Delete/Copy/Rename/Move Added
- (Jul 28 '05) Added ability to set an error message for project customizer's categories.
- (Jul 28 '05) Added ability to set whether a project customizer's categories are valid.
- (May 17 '05) New Project Wizard Action
- (May 12 '05) The `projectOpened` and `projectClosed` methods are called on all `ProjectOpenedHook` instances in the lookup.
- (May 5 '05) Ability to extend project context menus
- (Jan 16 '05) Added support class for creating standard project customizer dialogs
- (Dec 22 '04) Switched to major release version 1
- (Dec 14 '04) Added open and close methods into `OpenProjects` class

# 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.modules.projectuiapi/1 > 1.20

- (1.11) Ability to get and set main project
- (1.10) Project Delete/Copy/Rename/Move Support Added, Support for Default Project Delete/Copy/Rename/Move Added
- (1.9) Added ability to set an error message for project customizer's categories.
- (1.9) Added ability to set whether a project customizer's categories are valid.
- (1.7) Ability to extend project context menus
- (1.4) Added support class for creating standard project customizer dialogs
- (1.3) New Project Wizard Action
- (1.3) The `projectOpened` and `projectClosed` methods are called on all `ProjectOpenedHook` instances in the lookup.
- (1.3) Switched to major release version 1
- (1.2) Added open and close methods into `OpenProjects` class

# Changes by affected class

## `org.netbeans.spi.project.ui.support.CommonProjectActions`

- (May 17 '05) New Project Wizard Action

## `org.netbeans.api.project.ui.OpenProjects`

- (Dec 14 '04) Added open and close methods into `OpenProjects` class

## `org.netbeans.spi.project.ui.support.ProjectCustomizer`

- (Jul 28 '05) Added ability to set an error message for project customizer's categories.
- (Jul 28 '05) Added ability to set whether a project customizer's categories are valid.
- (Jan 16 '05) Added support class for creating standard project customizer dialogs

## `org.netbeans.spi.project.ui.templates.support.Templates`

- (May 17 '05) New Project Wizard Action

# Details of all changes by API and date

## Project UI API

### Ability to get and set main project

Aug 26 '05; API spec. version: 1.11; made by: jlahoda; issues: #58461
Added `getMainProject` and `setMainProject` methods to OpenProjects.
Compatibility:

### Project Delete/Copy/Rename/Move Support Added, Support for Default Project Delete/Copy/Rename/Move Added

Aug 22 '05; API spec. version: 1.10; made by: jlahoda; issues: #61546
Introduced:

- `CommonProjectActions.deleteProjectAction`, `CommonProjectActions.copyProjectAction`, `CommonProjectActions.moveProjectAction`, `CommonProjectActions.removeProjectAction` methods.
- `DefaultProjectOperations` support to simplify implementation of project delete/copy/rename/move for simple projects.

### Added ability to set an error message for project customizer's categories.

Jul 28 '05; API spec. version: 1.9; affected top-level classes: `ProjectCustomizer`; made by: mkrauskopf; issues: #61036

Added `ProjectCustomizer.Category.setErrorMessage` and `ProjectCustomizer.Category.getErrorMessage` methods. With those methods client can set an error message for individual categories. Also the default implementation of a customizer dialog uses these methods for showing a message on the bottom of category views and to mark category nodes for invalid categories (similar to the error message in wizards).

### Added ability to set whether a project customizer's categories are valid.

Jul 28 '05; API spec. version: 1.9; affected top-level classes: `ProjectCustomizer`; made by: mkrauskopf; issues: #58457

Added `ProjectCustomizer.Category.setValid` and `ProjectCustomizer.Category.isValid` methods. With those methods client can affect whether the OK button of the Customizer dialog is enabled.

### New Project Wizard Action

May 17 '05; API spec. version: 1.3; affected top-level classes: `CommonProjectActions` `Templates`; made by: pkuzel; issues: #58489
Introduced:

- `CommonProjectActions.newProjectAction` method
- `CommonProjectActions.EXISTING_SOURCES_FOLDER` property
- `Templates.getExistingSourcesFolder` method

### The `projectOpened` and `projectClosed` methods are called on all `ProjectOpenedHook` instances in the lookup.

May 12 '05; API spec. version: 1.3; made by: jlahoda; issues: #57025

The `projectOpened` and `projectClosed` methods are called on all `ProjectOpenedHook` instances found in a project's lookup.

Compatibility:

This change is incompatible because a project type can return a lookup with several `ProjectOpenedHook`s and depend on only first one being notified on open/close. Such a code should be rewritten using `org.openide.util.lookup.Lookups.exclude`.

### Ability to extend project context menus

May 5 '05; API spec. version: 1.7; made by: pkuzel; issues: #57874
Defined a folder `Projects/Actions/` which may hold actions to be added to the context menu of any project type.
Compatibility:

Existing project types need to add support for the new folder in order to comply with the guideline.

### Added support class for creating standard project customizer dialogs

Jan 16 '05; API spec. version: 1.4; affected top-level classes: `ProjectCustomizer`; made by: phrebejk; issues: #49647

Added `org.netbeans.spi.project.ui.support.ProjectCustomizer` containing support methods for creating standard looking project customizer dialogs.

### Switched to major release version 1

Dec 22 '04; API spec. version: 1.3; made by: jglick; issues: #51468

To indicate that this is now considered a stable API, the major release version was incremented to 1 from 0.

Compatibility:

Clients should begin requesting the new version to avoid a warning at startup.

### Added open and close methods into `OpenProjects` class

Dec 14 '04; API spec. version: 1.2; affected top-level classes: `OpenProjects`; made by: tzezula

Added `open` and `close` methods to `org.netbeans.api.project.ui.OpenProjects`. The `open` method opens the specified projects. The `close` method closes the specified projects.

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