NetBeans Open APIs

This document set describes the APIs used in the NetBeans IDE.

See:
          Description

Modules API
org.openide.modules The IDE is capable of being extended by pluggable modules providing additional functionality.

 
TopManager, ServiceType, WizardDescriptor, ...
org.openide Jumping-off points for all the rest of the IDE's functionality.

 
Services & Lookup API
org.openide.util.lookup Useful implementations of the lookup system used to register functionality and objects in the APIs.

 
FileSystems API
org.openide.filesystems The IDE internally uses the concept of a virtual filesystem.

 
DataSystems API
org.openide.cookies Cookies are a design pattern used to add behaviors to existing data object and nodes, or to separate implementation from the main object.
org.openide.loaders DataSystems are the logical layer between a filesystem and the regular functions of the IDE.
org.openide.util.datatransfer The IDE uses special extensions to data transfer.

 
Nodes API
org.openide.nodes The IDE uses nodes to represent JavaBeans or other property containers, formed into a hierarchical tree.

 
Explorer API
org.openide.explorer Many different UI components of the IDE are actually Explorer views of nodes.
org.openide.explorer.propertysheet The exact properties of a node may be displayed and edited with the Property Sheet.
org.openide.explorer.view The Explorer is really an abstraction that needs a view to actually display the nodes.

 
Actions API
org.openide.actions There are a number of standard system actions available for use in the IDE.
org.openide.util.actions There are several types of standard actions that should be used for many user interactions with the IDE.

 
Compiler API
org.openide.compiler Different compiler implementations may be plugged into the IDE to build files from source.

 
Execution API
org.openide.execution The IDE uses a small interface to describe the execution of Java-based classes together with arguments.

 
Debugger API
org.openide.debugger The IDE can support plugged-in implementations of an abstract debugger interface.

 
Editor API
org.openide.text The IDE is able to integrate multiple editors for different content types and mechanically access their content.

 
Window System API
org.openide.windows Most parts of the IDE do not manipulate windows directly, but use special top components.

 
Options API
org.openide.options System options provide an easy-to-use mechanism for persistent storage of user-settable options.

 
Java Hierarchy API
org.openide.src The parsing results of Java sources and the result of Java Reflection may be uniformly accessed as source elements.
org.openide.src.nodes Source elements can be represented by default element nodes.

 
Utility Classes
org.openide.awt A set of utility classes pertaining to the visual appearance of the IDE.
org.openide.util A set of utility classes covering a few general infrastructure points in the Open APIs.
org.openide.util.enum A set of utility classes providing convenient forms of Java Collections enumerations.
org.openide.util.io A set of utility classes providing extensions to the Java I/O system.
org.openide.xml A set of utility classes assisting in the manipulation of XML documents in the IDE.

 

This document set describes the APIs used in the NetBeans IDE. It also applies to compatible distributions such as Sun's Forte for Java and any other applications which keep the APIs intact.

The API set allows application creators and power users to extensively customize the IDE and integrate substantial external applications into the IDE's operation. It also is self-contained and permits the implementation to be inserted into it at runtime.

Available API sets as of December 12 2001:

Sections marked with a blue bar are non-normative and should not be considered part of the formal specification of the APIs.

Supplementary specifications:

  1. Threading Models used in the Open APIs.
  2. API Change List (online).
  3. General notes explaining conventions and assumptions made in the IDE.

Some informational pages which module authors will also want to look at:

  1. Upgrade Guide describing changes made in the APIs between NetBeans 3.2 and 3.3 that typical module developers should be aware of.
  2. APIs FAQ.
  3. X-Ray Spex Tutorial to see how a real user IDE session (here, excerpts from the standard NetBeans tutorial) actually works in terms of the APIs and modules acting in concert.
  4. Tips and Tricks for writing modules, including how to compile the sources against the Open API library, building the module JAR, testing and debugging modules.
  5. Philosophy of FileSystems API (online).
  6. Typical uses showing how the APIs would be used for common applications.
For more information about the APIs, including source code access and mailing lists, see openide.netbeans.org.



Built on December 12 2001.  |  Portions Copyright 1997-2001 Sun Microsystems, Inc. All rights reserved.