NetBeans API List
Version 6.5
7 Apr 2009
This document provides a list of NetBeans APIs with a short description
of what they are used for, and a table describing different types of interfaces
(see What is
an API? to understand why we list DTDs, file formats, etc.) and with
a stability category (stable and official,
under development,
deprecated,
friend or private;
see API
life-cycle for more info).
The aim is to provide as detailed a definition of NetBeans module
external interfaces as possible and give other developers a chance to decide
whether they want to depend on a particular API or not.
Some of these APIs are part of the
NetBeans Platform
(for example lookup,
loaders, utilities, nodes, explorer, window systems, multiview, etc.), some of them
are specific to
NetBeans IDE
(projects, javacore, diff, etc.) and some
are not included in the release at all and are just provided for download
(usually via autoupdate). Basically when building an application based on
NetBeans one is free to choose the set of modules and their APIs
to satisfy one's needs.
This is a list of APIs for NetBeans 6.5, if you want to see
a list of APIs for a particular version, you may want to go to:
-
Dev - Javadoc as released for development version
-
6.1 - Javadoc as released for NetBeans IDE 6.1
-
6.0 - Javadoc as released for NetBeans IDE 6.0
-
5.5.1 - Javadoc as released for NetBeans IDE 5.5.1
-
5.5 - Javadoc as released for NetBeans IDE 5.5
-
5.0 - Javadoc as released for NetBeans IDE 5.0
To get the API of your module listed here, see the documentation for the
Javadoc building
infrastructure.
Additional Sources of Information
FAQ and Mailing List
Can't find what you're looking for? Try the FAQ
and then dev@openide.netbeans.org.
Content
-
Actions APIs -
Actions provides system of support and utility classes for 'actions' usage in NetBeans.
-
Command Line Parsing API -
GetOpts like infrastructure to parse command line arguments with the cooperative participation of various modules.
-
Datasystems API -
In summary, the LoadersAPI is responsible for scanning files in a directory on disk, weeding out irrelevant files of no interest to the IDE, and grouping the rest into logical chunks, or just determining what type of data each represents.
-
Dialogs API -
The
DialogsAPI allows creating a user notification, a dialog's description and also permits it to be displayed.
-
Execution API -
The IDE uses a small interface to describe the execution of Java-based classes together with arguments.
-
Explorer & Property Sheet API -
The
ExplorerAPI is build around Explorer - solely a user-interface device: it has no particular knowledge of the structure of the IDE.
-
File System API -
The Filesystems API provides a common API to access files in a uniform manner.
-
General Queries API -
General kinds of queries between modules.
-
I/O APIs -
The Input/Output API is a small API module which contains InputOutput and related interfaces used in driving the Output Window.
-
JavaHelp Integration -
The JavaHelp integration API wraps the standard JavaHelp extension library.
-
MIME Lookup API -
Each editor provides an EditorKit which controls the policy of specific MIME content type.
-
Module System API -
The Modules API lies at the core of NetBeans and describes how plug-in modules are added and managed.
-
Nodes API -
Nodes API serves as the main aparatus for visualisation of objects in NetBeans.
-
Options Dialog and SPI -
This module contains implementation of Options Panel and simple SPI.
-
Settings API -
Settings are persistent objects with a set of properties, that should be available via lookup.
-
Settings Options API -
org.openide.options
.
-
Text API -
The EditorAPI is used for accessing editor-related functionality from within the IDE for use by other modules and the core IDE itself.
-
UI Utilities API -
The org.openide.awt provides API/SPI for UI related aspects of application.
-
Utilities API -
Described in the overall answer.
-
Window System API -
Window System API is used to display and control application GUI: Main window, frames, components.
javadoc | download
| architecture
| usecases
Each editor provides an EditorKit which controls the policy of specific MIME content type.
The policy of content type should be easily registered and found via some lookup mechanism,
that will provide convenient way of using it either for kit provider or base
editor infrastructure. In addition to this, the policy can be inherited, (e.g. in case of embeded
kits like JSP) and the content types need to be merged in this case. MIME Lookup API should
provide all mentioned requierements via easy lookup query, so content type policy
user need not to solve this searching and merging on its own side.
javadoc | download
| architecture
The JavaHelp integration API wraps the standard JavaHelp extension
library. It also provides a small additional API for NetBeans modules to
supply help sets to the system, add GUI menu items, and request that
particular help topics be displayed.
JavaHelpIntegrationAPI
javadoc | download
| architecture
| usecases
This module contains implementation of Options Panel and simple SPI.
javadoc | download
| architecture
| usecases
General kinds of queries between modules.
Queries are one way of solving the
intermodule communication problem when it is necessary for some modules to
obtain basic information about the system (e.g. whether a particular file is
intended for version control) without needing direct dependencies on the
module providing the answer (e.g. the project type which controls the file).
Details are covered in the Javadoc.
Interface Name | Stability Classification | Specified in What Document? |
GeneralQueriesAPI | Official |
The General Queries API provides generic queries , or sources of
concrete information, useful throughout the build system and perhaps
elsewhere. Each query is split into an API component intended for clients to
find the answer to a particular question without knowledge of the underlying
structure or origin of the answer; and an SPI interface (using lookup)
permitting answers to be provided from any source. These queries currently
pertain to VCS and compilation status and user visibility of files.
|
Set of preferences APIs | Individual | table with definitions |
|
javadoc | download
| architecture
| usecases
GetOpts like infrastructure to parse command line arguments with the cooperative
participation of various modules.
javadoc | download
| architecture
Settings are persistent objects with a set of properties, that should be available via lookup.
Properties are expected to be changed. Implementation of setting doesn't care about persistence issues, which
is responsibility of settings infrastructure. XML persistence support is provided in a standalone autoload module core-settings.jar.
Also service types must be mentioned here.
Service type can be desribed as typed a named settings.
SettingsAPI
ServicesAPI
XmlSettingsPersistence
javadoc | download
| architecture
| usecases
Actions provides system of support and utility classes
for 'actions' usage in NetBeans.
javadoc | download
| architecture
| usecases
The org.openide.awt
provides API/SPI for UI related aspects of application.
javadoc | download
| architecture
| usecases
The
DialogsAPI
allows creating a user notification, a dialog's description
and also permits it to be displayed. The wizard framework allows create a sequence
of panels which leads a user through the steps to complete any task.
This API is part of package org.openide.
javadoc | download
| architecture
The IDE uses a small interface to describe the execution of Java-based
classes together with arguments. The
ExecutionAPI
controls the execution
of user-level classes. The system may have several different types
of executors simultaneously installed. By default we provide so called
External Execution for running a user code by an external process and
Internal Execution for running the user code in the same virtual machine
as the IDE.
javadoc | download
| architecture
| usecases
The
ExplorerAPI
is build around Explorer - solely a user-interface device: it has no particular knowledge
of the structure of the IDE. Rather, it provides the physical user interface for
the Node hierarchy, as described in the
NodesAPI.
A given Explorer instance will be some visual component (such as a Swing panel)
displaying some representation of a subtree of the complete Node hierarchy;
the topmost node being displayed is said to be the root of the Explorer.
Be careful not to confuse the root of a particular Explorer instance, which is
selected according to what the user wishes to see, with the root(s) of
the entire Node hierarchy, which generally are fixed.
Usage:
XXX no answer for deploy-dependencies
javadoc | download
| architecture
| usecases
The Filesystems API provides a common API to access files in a uniform manner.
It is available as standalone library and
also is bundled together with other parts of the openide.
Specification
Usage:
XXX no answer for deploy-dependencies
javadoc | download
| architecture
| usecases
The Input/Output API is a small API module
which contains InputOutput and related interfaces used in
driving the Output Window. The normal implementation is org.netbeans.core.output2.
Usage:
You will very likely also want to declare
OpenIDE-Module-Requires: org.openide.windows.IOProvider
to ensure that an Output Window implementation is in fact enabled.
javadoc | download
| architecture
| usecases
In summary, the LoadersAPI
is responsible for scanning files in a directory on disk,
weeding out irrelevant files of no interest to the IDE,
and grouping the rest into logical chunks, or just determining
what type of data each represents. It does this scanning by asking each registered
data loader whether or not the given file(s) should be handled. The first
loader to recognize a file takes ownership of it, and creates a matching data object to represent it to the rest of the IDE.
Usage:
XXX no answer for deploy-dependencies
javadoc | download
| architecture
| usecases
The Modules API lies at the core of NetBeans and describes how plug-in
modules are added and managed.
ModulesAPI
javadoc | download
| architecture
Nodes API serves as the main aparatus for visualisation of objects
in NetBeans. Nodes augment objects with standard aspects used for
visualisation (e.g. name, displayName, icons, set of proerties,
subnodes hierarchy, etc.) Once a Node is defined for given object
it can be visualised using diferent views e.g. trees, lists, tables etc.
Descripion of nodes can be found
here.
javadoc | download
| architecture
| usecases
org.openide.options
javadoc | download
| architecture
| usecases
The EditorAPI is used for accessing editor-related functionality from within the IDE
for use by other modules and the core IDE itself.
Usage:
XXX no answer for deploy-dependencies
javadoc | download
| architecture
| usecases
Described in the overall answer.
javadoc | download
| architecture
| usecases
Window System API is used to display and control application GUI: Main window,
frames, components.
Usage:
You might use OpenIDE-Module-Requires: org.openide.windows.WindowManager
but it is not generally done.