当前页面:
在线文档首页 >
NetBeans API Javadoc (Current Development Version)
NetBeans API List - NetBeans API Javadoc (Current Development Version)
NetBeans API List
Current Development Version
29 May 2007
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 development version, if you want to see
a list of APIs for a particular version, you may want to go to:
-
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.
-
Ant -
The Ant integration module recognizes Ant build scripts, facilitates editing them as text or structurally, lets the user run targets or create shortcuts to them, etc.
-
Ant-Based Project Support -
Provides the basic infrastructure by which Ant-based projects can be created, read and write configuration parameters and properties from/to disk, satisfy common queries and interfaces, etc.
-
Auto Update Services -
org.netbeans.api.autoupdate
org.netbeans.spi.autoupdate
.
-
Classfile Reader -
The ClassFile API is designed as a fast, low memory-cost way to access classfile information.
-
Command Line Parsing API -
GetOpts like infrastructure to parse command line arguments with the cooperative participation of various modules.
-
Common Palette -
The project implements a new component palette that will be reused by other projects.
-
Compatibility APIs -
XXX no answer for arch-what
.
-
Convertor -
The Convertor API is infrastructure for conversion of XML namespace aware fragments to objects and vice versa.
-
Database Explorer -
This project provides access to objects defined in the Database Explorer.
-
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.
-
Debugger Core API -
The debuggercore/api module (Debugger Core API) allows to install different debugger implementation to one IDE.
-
Debugger Core - UI -
The debuggercore module (Debugger Core UI) contains shared UI components for all debugger implementations, and defines some SPI for sharing of them.
-
Dialogs API -
The
DialogsAPI allows creating a user notification, a dialog's description and also permits it to be displayed.
-
Diff -
The diff module provides the ability to visualize differencies between source files.
-
Editor Code Completion -
Code Completion provides users with a list of suggested completions for partially typed texts in the editor and various dialog input fields.
-
Editor Code Folding -
The Code Folding is part of the editor module functionality and it's responsible for hiding of the portions of the code that are less important for the user at the given time.
-
Editor Guarded Sections -
Guarded Sections protects user from modifying document content.
-
Editor Library -
The editor library module provides subset of editor functionality independent on the NetBeans IDE (except few specific standalone classes).
-
Editor Library 2 -
The Editor Library 2 module is a set of official APIs and SPIs, designed to replaces the original Editor Library with legacy APIs that are not properly structured and do not conform to the rules implied on the current NB APIs.
-
Editor Module -
The editor module provides a full-featured source text editor that is integrated with the Form Editor, Explorer, compiler, and debugger.
-
Editor Settings -
The legacy settings system in the editor module is complicated, error prone and hard to use.
-
Editor Settings Storage -
The module is an implementation of the
org.netbeans.modules.editor.settings providing a settings storage on the default filesystem.
-
Editor Utilities -
Editor Utilities module contains useful utility classes and methods used by other editor related modules.
-
Error Stripe API -
The Error Stripe shows an overview of important information of an edited source code.
-
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.
-
External Libraries -
Permits libraries to be defined, customized, and stored by the user for reuse in multiple projects.
-
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.
-
Java EE Metadata -
The project provides a generic framework for accessing Java EE metadata models.
-
JavaHelp Integration -
The JavaHelp integration API wraps the standard JavaHelp extension library.
-
Java Platform -
Many Java-based project types need to be able to configure the version and location of Java to be used when building and running the project.
-
Java Project Support -
Provides support infrastructure for projects working with the Java language.
-
Java SE Projects -
Provides a project type for plain Java projects.
-
Java Source -
XXX no answer for arch-what
.
-
Java Support APIs -
Models basic aspects of the metadata surrounding Java source files, such as the classpath.
-
JPDA Debugger API -
The debuggerjpda/api (Debugger JPDA API) defines API for NetBeans Java Debugger.
-
JUnit Tests -
The module makes creating, running and navigation between tests easier.
-
Lexer -
Lexer module provides token lists for various text inputs.
-
Look & Feel Customization Library -
The plaf library consists primarily of code that used to be in core.
-
Looks -
Looks provides an SPI for converting arbitrary objects into displayable form.
-
Master Filesystem -
MasterFileSystems is just implementation of FileSystem provided in standalone module including implementation of URLMapper that resolves file protocol and is responsible for conversion from URL into FileObject and vice versa.
-
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.
-
MultiView Windows -
Multi views are general mechanism for displaying several perspectives, or views of data, which will be used consistently across whole IDE window system.
-
Navigator API -
Navigator module is a base API module which provides:
A place for modules to show structure/outline of their documents
Ability for modules to show their view only when special document(node)
is active in the system
UI for switching between multiple views available for currently active document(node)
Coalescing of fast coming selected node changes to show content for
.
-
NB JUnit -
Module contains NetBeans extension to JUnit.
-
Nodes API -
Nodes API serves as the main aparatus for visualisation of objects in NetBeans.
-
Old Enumeration API -
OldEnumerationsAPI
.
-
Options Dialog and SPI -
This module contains implementation of Options Panel and simple SPI.
-
Progress API -
The progress API is good for tracking progress of long lasting tasks in the IDE.
-
Project API -
Provides a generic infrastructure for modelling projects.
-
Project UI API -
The module supplies the APIs for the basic, generic UI infrastructure for projects: list of opened projects, main project, basic project-sensitive actions, template wizards, etc.
-
Refactoring API -
Refactoring module allows developer to do high level code transformations aka refactorings.
-
Registry -
The Registry API provides unified access to settings.
-
Registry over FileSystem -
The Registry over FileSystem is a library implementing registry contexts over the filesystem.
-
Search API -
It allows other modules to define how the nodes they define should be searched, without depending on any concrete module containing the search feature.
-
Settings API -
Settings are persistent objects with a set of properties, that should be available via lookup.
-
Settings Options API -
org.openide.options
.
-
Tab Control -
The tab control is a swing control used by NetBeans window system, similar in function to a JTabbedPane, which allows the user to see and select tabs that contain different components.
-
Terminal Emulator -
The Terminal Emulator is a library used to display process output.
-
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.
-
TreeTableView Model -
The debuggercore/ViewModel module (View Model) allows to share one TreeTableView among different modules.
-
UI Gestures Collector -
XXX no answer for arch-what
.
-
UI Handler Library -
XXX no answer for arch-what
.
-
UI Utilities API -
The org.openide.awt provides API/SPI for UI related aspects of application.
-
Utilities API -
Described in the overall answer.
-
Visual Library API -
The Visual Library 2.0 is the next generation of the original Graph Library 1.0.
-
Window System API -
Window System API is used to display and control application GUI: Main window, frames, components.
-
XML Tools API -
It helps with editing XML files and supports leveraging XML in developed application.
javadoc |
download
|
architecture
|
usecases
The Ant integration module recognizes Ant build scripts, facilitates
editing them as text or structurally, lets the user run targets or
create shortcuts to them, etc.
javadoc |
download
|
architecture
|
usecases
The debuggercore/api module (Debugger Core API) allows to install different debugger implementation to one IDE.
It allows to share some common UI components.
javadoc |
download
|
architecture
|
usecases
The debuggerjpda/api (Debugger JPDA API) defines API for NetBeans Java Debugger.
javadoc |
download
|
architecture
|
usecases
Models basic aspects of the metadata surrounding Java source files, such as
the classpath. More information in the Javadoc.
Interface Name | Stability Classification | Specified in What Document? |
JavaSupportAPIs | Official |
The Java Support APIs provides basic facilities for getting or supplying
information about Java-language source files. It is based on the query pattern
so implementations can be supplied from other modules or projects.
|
|
javadoc |
download
|
architecture
|
usecases
The progress API is good for tracking progress of long lasting tasks in the IDE.
javadoc |
download
|
architecture
|
usecases
The Visual Library 2.0 is the next generation of the original Graph Library 1.0.
It is designed for a general visualization with a support for graph-oriented modeling.
Its focus is to become a part of the NetBeans platform and unify the visualization (UI and API) used in NetBeans-Platform-based applications.
See http://graph.netbeans.org/ web-site for details.
See documentation for complete set of use-cases and code-snippets.
Usage:
No. Just set a normal project dependency on org.netbeans.api.visual (spec no.: 2.0) module.
Interface Name | Stability Classification | Specified in What Document? |
VisualLibraryAPI | Official |
The API provides a set of reusable pieces - widgets. By composing them you are creating a visualization.
Each widget has various properties including layout, border, assigned actions, ... The library contains a set of pre-defined widgets that can be extended.
All pluggable pieces are declared as interfaces or abstract classes - WidgetAction, Anchor, AnchorShape, PointShape, Animator, Border,
GraphLayout, LookFeel, Layout, SceneLayout, Router, CollisionsCollector.
Also they all have their built-in implementation.
|
|
javadoc |
download
|
architecture
It helps with editing XML files and supports leveraging XML in developed application.
javadoc |
download
|
architecture
|
usecases
Multi views are general mechanism for displaying several perspectives, or views of data,
which will be used consistently across whole IDE window system. Using multi views
will enable modules to visually represent data document or object in unified manner
at one specific place in the system, yet still allowing for different perspectives
of data viewing.
javadoc |
download
|
architecture
|
usecases
The Registry over FileSystem is a library implementing registry contexts over
the filesystem. The library has very limited API and allows just create
context for the FileObject. It is not expected that regular modules should
need to use this API.
RegistryOverFSAPI
javadoc |
download
|
architecture
The Terminal Emulator is a library used to display process output. It is
designed to operate in a variety of modes, up to and including full
emulation of an ANSI character terminal, similar to xterm
and so on. NetBeans normally uses it to implement the Output Window,
where it mostly acts as a "dumb terminal" for use in capturing output
from compilers and programs run by the user; it features hyperlinks which
may be used for e.g. compiler error messages. In more advanced modes it
can even be used to run e.g. VI or Emacs, display margin glyphs, and so
on.
TerminalEmulatorAPI
javadoc |
download
|
architecture
|
usecases
XXX no answer for arch-what
Usage:
XXX no answer for deploy-dependencies
Interface Name | Stability Classification | Specified in What Document? |
UIGestureCollectorLibrary | Under Development |
Library with utilities for UI Gesture Collector module as well as
for the server processing the results.
|
|
javadoc |
download
|
architecture
|
usecases
org.netbeans.api.autoupdate
org.netbeans.spi.autoupdate
javadoc |
download
|
architecture
|
usecases
The ClassFile API is designed as a fast, low memory-cost way to access classfile
information. It is useful for tools and modules that directly read classfiles,
such as the clazz and javacore modules.
Interface Name | Stability Classification | Specified in What Document? |
classfile | Stable |
|
|
javadoc |
download
|
architecture
The Convertor API is infrastructure for conversion of
XML namespace aware fragments to objects and vice versa.
The module defines API for object conversions and SPI
for convertor implementors and how to register the convertors
to the system.
ConvertorAPI
javadoc |
download
|
architecture
|
usecases
This project provides access to objects defined in the Database Explorer.
Documentation is available in the Javadoc.
javadoc |
download
|
architecture
|
usecases
The diff module provides the ability to visualize differencies between source files.
It also has a graphical conflicts resolver tool and built-in patch algorithm.
List of the main features:
Simple APIs, that provide access to registered diff and merge engines and visualizers.
Built in and external diff engines defined.
Graphical diff vizualizer and conflicts resolver.
Extensible with additional diff and merge engines and vizualizers.
Patch algorithm implemented for UNIX-style, unidiff and contextual diff formats.
javadoc |
download
|
architecture
|
usecases
The editor module provides a full-featured source text editor
that is integrated with the Form Editor, Explorer, compiler, and debugger.
List of the main features:
Syntax highlighting of java, HTML, XML and other languages.
Code Completion enables to type a few characters
and then display a list of suggestions appropriate
in the given context that can be then used
to automatically complete the expression.
Word Matching enables enables to type the beginning characters
of a word used elsewhere in the code and then have the editor
generate the rest of the word.
Abbreviations allow to expand typed text from a few
predefined characters into a full word or phrase.
Goto Class enables to open a Java file in the Source Editor
by typing only the class name.
The IDE helps to identify the correct package name for the class.
The Fast Import feature enables to quickly add import statements
for Java classes in the source file.
Goto Declaration feature allows to quickly jump to a declaration
of a variable under the cursor.
Goto Source allows to open source file containing
definition of a type that the variable under the cursor is of.
Code folding allows to collapse sections of the code that are
unimportant to the user at the given time.
For example in java source the collapsable sections include
imports section, inner classes, methods and javadocs.
Interface Name | Stability Classification | Specified in What Document? |
EditorModuleAPI | Under Development |
Editor defines APIs and SPIs both by
- Providing java classes in public packages for further reuse.
Most of the classes were created spontaneously (several years ago)
without fulfilling of the rules imposed on APIs and SPIs
at the present time.
There is an ongoing work to revisit the existing classes
and create stable APIs and SPIs (and possibly extract functionality
into a submodule where appropriate). However this is a long-term
task spanning several promotions.
- Being sensitive to content of certain directories in xml layer.
|
Set of property APIs | Individual | table with definitions |
|
javadoc |
download
|
architecture
|
usecases
Code Completion provides users with a list of suggested completions for partially typed texts in the editor and various dialog input fields.
The Code Completion module was created to replace
the original legacy editor code completion which
lacked several key requirements:
Support for multiple independent code completion content providers.
Implied requirement for ordering and prioritization of the completion items.
Direct support for asynchronous completion result computation.
Missing separation to the API and SPI and implementation parts.
javadoc |
download
|
architecture
|
usecases
The Error Stripe shows an overview of important information of an edited source code.
It shows this information for the whole source code (regardless of its size).
javadoc |
download
|
architecture
|
usecases
The Code Folding is part of the editor module functionality and it's responsible for hiding of the portions
of the code that are less important for the user at the given time.
javadoc |
download
|
architecture
|
usecases
Guarded Sections protects user from modifying document content. The main goal is
to simplify work with such a content to module writers and preserve created
sections.
Usage:
A module using the Guarded Sections API should also require a proper
implementation. Eg in case of java content add to your module manifest file:
OpenIDE-Module-Requires: org.netbeans.api.editor.guards.Java
A module implementing the Guarded Sections SPI should provide a token in
the manifest file. Eg in case of java content add:
OpenIDE-Module-Provides: org.netbeans.api.editor.guards.Java
javadoc |
download
|
architecture
|
usecases
The editor library module provides subset of editor functionality independent
on the NetBeans IDE (except few specific standalone classes).
List of the main features:
Syntax highlighting of java, HTML, XML and other languages.
Code Completion enables to type a few characters
and then display a list of suggestions appropriate
in the given context that can be then used
to automatically complete the expression.
Word Matching enables enables to type the beginning characters
of a word used elsewhere in the code and then have the editor
generate the rest of the word.
Abbreviations allow to expand typed text from a few
predefined characters into a full word or phrase.
Goto Class enables to open a Java file in the Source Editor
by typing only the class name.
The IDE helps to identify the correct package name for the class.
The Fast Import feature enables to quickly add import statements
for Java classes in the source file.
Goto Declaration feature allows to quickly jump to a declaration
of a variable under the cursor.
Goto Source allows to open source file containing
definition of a type that the variable under the cursor is of.
Code folding allows to collapse sections of the code that are
unimportant to the user at the given time.
For example in java source the collapsable sections include
imports section, inner classes, methods and javadocs.
Interface Name | Stability Classification | Specified in What Document? |
EditorHyperlinkSPI | Under Development |
Hyperlink SPI in org.netbeans.lib.editor.hyperlink.spi
allows the editors for a particular mime-type to respond to the situation
when a user hovers over the text with a Ctrl key pressed.
|
EditorLibraryModuleAPI | Under Development |
Editor defines APIs and SPIs both by
- Providing java classes in public packages for further reuse.
Most of the classes were created spontaneously (several years ago)
without fulfilling of the rules imposed on APIs and SPIs
at the present time.
There is an ongoing work to revisit the existing classes
and create stable APIs and SPIs (and possibly extract functionality
into a submodule where appropriate). However this is a long-term
task spanning several promotions.
- Being sensitive to content of certain directories in xml layer.
|
Set of property APIs | Individual | table with definitions |
|
javadoc |
download
|
architecture
|
usecases
The Editor Library 2 module is a set of official APIs and SPIs, designed to
replaces the original Editor Library with legacy APIs
that are not properly structured and do not conform to the rules
implied on the current NB APIs.
The APIs currently offered in Editor Library 2 module include:
editor-highlighting
Usage:
Just normal module dependency.
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
|
usecases
The legacy settings system in the editor module is complicated, error prone
and hard to use. It'd been created spontaneously over the years to support
immediate needs at that time without paying enough attention to extensibility
and interoperability. Historically any module providing editor settings needed
to depend on the whole editor module.
The main purpose of this project is to define API for editor settings, that
is lightweight and easily extensible. The API relies on MimeLookup
to provide a way of registering and looking up settings.
The aim is NOT to provide an implementation of a storage for editor settings,
but to define an interface between this storage and clients
like <mime-type> editors, externaleditor, etc.
javadoc |
download
|
architecture
|
usecases
The module is an implementation of the
org.netbeans.modules.editor.settings
providing a settings storage on the default filesystem.
javadoc |
download
|
architecture
|
usecases
Editor Utilities module contains useful utility classes and methods used
by other editor related modules.
javadoc |
download
|
architecture
|
usecases
The project provides a generic framework for accessing Java EE metadata models.
Usage:
XXX no answer for deploy-dependencies
javadoc |
download
|
architecture
|
usecases
Provides a project type for plain Java projects. J2SE projects can be created
from scratch, or you can import existing Java source trees. Creates an Ant
script letting you build the project (and subprojects), run it, debug it, run
JUnit-format tests, and build Javadoc. GUI customizer permits easy
customization of the most commonly needed project parameters. Provides code
completion and other services for editing Java sources. Classpaths can include
other projects, raw JARs, or configured libraries. Specific J2SE platforms may
be configured.
javadoc |
download
|
architecture
|
usecases
Many Java-based project types need to be able to configure the version and
location of Java to be used when building and running the project. This
API/SPI permits these platforms to be registered and queried, and any
customizations made in an appropriate GUI and persisted to disk.
Interface Name | Stability Classification | Specified in What Document? |
JavaPlatformAPI | Official |
The Java Platform API permits access to installed Java platforms (for example,
the J2SE JDK, or various mobile-device emulators for J2ME). Particular platform
types are registered by modules and can store customized information about the
platform to disk.
|
|
javadoc |
download
|
architecture
|
usecases
Provides support infrastructure for projects working with the Java language.
javadoc |
download
|
architecture
|
usecases
XXX no answer for arch-what
Usage:
XXX no answer for deploy-dependencies
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
The module makes creating, running and navigation between tests easier.
(Actual test running is typically performed directly by a
project type provider using Ant.)
Interface Name | Stability Classification | Specified in What Document? |
org.netbeans.modules.junit.plugin | Under Development |
This SPI describes services provided by the
custom JUnit support plugin which are not desribed by the existing
public SPI (UnitTestForSourceQuery ). This SPI
represents an additional source of information for the JUnit module
and allows a custom test-skeleton generator to be plugged.
|
Set of lookup APIs | Individual | table with definitions |
|
javadoc |
download
|
architecture
|
usecases
Lexer module provides token lists for various
text inputs. Token lists can either be flat or they can form
tree token hierarchies if any language embedding is present.
Tokens
Usage:
OpenIDE-Module-Module-Dependencies: org.netbeans.modules.lexer/2 > @SPECIFICATION-VERSION@
javadoc |
download
|
architecture
Looks provides an SPI for converting arbitrary objects into displayable
form. It allows more modules to take part in the object visualisation.
LooksAPI
javadoc |
download
|
architecture
|
usecases
MasterFileSystems is just implementation of FileSystem provided in standalone
module including implementation of URLMapper that resolves file protocol and
is responsible for conversion from URL into FileObject and vice versa.
Implementation just delegates to the other FileSystem implementations
(LocalFileSystem, VCSFileSystem, ...) and playes the role of arbiter that controls
instantiation and life cycle of provided FileObjects.
MasterFileSystemAPI
Usage:
Nothing currently. Most "clients" are really callers of
FileUtil.toFileObject
and so on, and thus
implicitly depend on the existence of this module. In the
future a provide-require token might make sense.
javadoc |
download
|
architecture
|
usecases
Module contains NetBeans extension to JUnit. It is a library used in XTest
and library wrapper module.
Interface Name | Stability Classification | Specified in What Document? |
Set of property APIs | Individual | table with definitions |
|
javadoc |
download
|
architecture
|
usecases
This module contains implementation of Options Panel and simple SPI.
javadoc |
download
|
architecture
|
usecases
Provides the basic infrastructure by which Ant-based projects can be created,
read and write configuration parameters and properties from/to disk, satisfy
common queries and interfaces, etc. See Javadoc and build system design
document.
Interface Name | Stability Classification | Specified in What Document? |
AntProjectAPI | Official |
Mostly an SPI for creating project types centered around the Ant build tool.
Permits Ant-based project types to be registered and supplies various support
implementations to help satisfy the contract of Project and
various optional interfaces.
|
Set of property APIs | Individual | table with definitions |
|
javadoc |
download
|
architecture
|
usecases
Permits libraries to be defined, customized, and stored by the user for
reuse in multiple projects. For example, a Java JAR library has a classpath
(usually one JAR), and an optional source path and Javadoc path that may be
used for development-time features.
Interface Name | Stability Classification | Specified in What Document? |
ProjectLibrariesAPI | Official |
The Project Libraries API permits definitions of libraries to be
registered and persisted. Library type providers may be registered and can
construct memory objects corresponding to persistent library definitions.
|
Set of dtd APIs | Individual | table with definitions |
|
javadoc |
download
|
architecture
|
usecases
Provides a generic infrastructure for modelling projects.
Documentation available in the Javadoc. The build system design overview
describes the basic purpose of modelling projects.
Interface Name | Stability Classification | Specified in What Document? |
ProjectAPI | Official |
The Project API defines abstract projects, i.e. groupings of files built and
manipulated as units. It is used for Ant-based projects but could support
other scenarios such as makefiles. Modules can plug in project types which can
recognize certain folders as being projects, and define their behaviors.
|
|
javadoc |
download
|
architecture
|
usecases
The module supplies the APIs for the basic, generic UI infrastructure for
projects: list of opened projects, main project, basic project-sensitive
actions, template wizards, etc.
Interface Name | Stability Classification | Specified in What Document? |
ProjectUIAPI | Official |
The Project UI API provides some miscellaneous APIs and SPIs relating to the
appearance and UI behavior of generic projects. Most importantly, it permits
the customizer and logical view of a project to be defined.
|
ProjectUIAPI-provider | Friend |
Callbacks intended to let the Project UI module plug in implementations of
APIs defined here. Uses implementation dependencies.
|
Set of layer APIs | Individual | table with definitions |
Set of property APIs | Individual | table with definitions |
Set of lookup APIs | Individual | table with definitions |
|
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
Refactoring module allows developer to do high level code transformations aka refactorings.
javadoc |
download
|
architecture
The Registry API provides unified access to settings. The module defines
API and SPI and does not provide any concrete implementation.
RegistryAPI
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
XXX no answer for arch-what
Usage:
Modules may use functionality of this module either by depending on its presence
and registering callback interfaces
provided by its API. Or the modules do not need to depend on this module at all,
and just generate log records
to the org.netbeans.ui.someloggername
log. These records are
then going to be consumed by this module, if enabled.
javadoc |
download
|
architecture
|
usecases
The debuggercore module (Debugger Core UI) contains shared UI components for all debugger implementations, and defines some SPI
for sharing of them.
javadoc |
download
|
architecture
|
usecases
Navigator module is a base API module which provides:
A place for modules to show structure/outline of their documents
Ability for modules to show their view only when special document(node)
is active in the system
UI for switching between multiple views available for currently active document(node)
Coalescing of fast coming selected node changes to show content for
javadoc |
download
|
architecture
|
usecases
The project implements a new component palette that will be reused by other
projects. The new palette should provide a common look and feel for Form editor,
Mobility, J2EE and possible other modules as well.
UI draft specification is available at http://ui.netbeans.org/docs/ui/palette/index.html
javadoc |
download
|
architecture
|
usecases
The debuggercore/ViewModel
module (View Model) allows to share one TreeTableView among different modules.
javadoc |
download
|
architecture
|
usecases
The plaf library consists primarily of code that used to be in core. What it does:
Installs a custom look and feel if a custom look and feel class is passed to it
Sets the correct fonts in the Swing UIDefaults if a custom fontsize is desired for the application's UI
Loads a UI theme if a URL for the theme file (no format changes since NetBeans 3.4) is passed to it
Installs custom UI keys and values used by other components of NetBeans, such as colors and UI delegate class names used by
other parts NetBeans. Examples of these:
Tab control UI delegate class name, depending on the look and feel, for the window system
Definitions of colors which the tab control, property sheet and output window will use, if present in
UIDefaults, to color themselves in accordance with the UI spec for them on a given look and feel
Custom border implementations NetBeans uses for scroll panes to reduce "border-buildup"
A custom implementation of ToolbarUI which NetBeans uses for its toolbars, and a custom UI for
toolbar buttons which sizes them correctly (GTK and Aqua only, currently)
Insets definition for the editor scrollbar, used to get the height of the upper and lower button of the scrollbar
for purposes of the Error Stripe. The appropriate key value is "Nb.Editor.ErrorStripe.ScrollBar.Insets".
Compensate for missing elements on some (GTK) look and feels, which standard Swing code expects to be
present, i.e. UIManager.getColor ("control"), to enable older code to run unmodified on newer
look and feels.
Its API consists of a single method, org.netbeans.swing.plaf.Startup.run (Class lookAndFeel, int fontSize, URL themeFile),
which should be called early in NetBeans startup sequence by core, to initialize UIDefaults values before any main window
GUI is constructed. It provides a minimal SPI in the form of the abstract class LFCustoms, which an alternate look and
feel could use to provide lists of keys and values which should be installed into UIDefaults, via the mechanism documented
in the documentation for LFCustoms.
PlafAPI
Usage:
Components such as the window system, which use values defined here, will behave in a reasonable
way if those values are not defined. However, it is preferable that they declare a runtime
dependency on the plaf library.
javadoc |
download
|
architecture
|
usecases
The tab control is a swing control used by NetBeans window system, similar in function to a JTabbedPane, which
allows the user to see and select tabs that contain different components. It defines two GUI components:
TabbedContainer (similar to JTabbedPane) and TabDisplayer, a generic component for displaying tabs which
is not associated with any particular container. Several different types of UIs (view, editor, sliding)
are provided, each of which is handled by a different UI delegate class; UI delegate subclasses designed
to fit with Windows, Metal, Aqua and GTK look and feels are provided.
TabbedContainerAPI
PopupSwitcherAPI
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
XXX no answer for arch-what
Usage:
XXX no answer for deploy-dependencies
Interface Name | Stability Classification | Specified in What Document? |
CompatibilityAPIs | Deprecated |
This module is deprecated, do not use any classes herein.
|
|
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
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.
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
The EditorAPI is used for accessing editor-related functionality from within the IDE
for use by other modules and the core IDE itself.
javadoc |
download
|
architecture
|
usecases
Described in the overall answer.
javadoc |
download
|
architecture
|
usecases
OldEnumerationsAPI
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.
javadoc |
download
|
architecture
|
usecases
It allows other modules to define how the nodes they define should be
searched, without depending on any concrete module containing the search
feature.