Skip navigation links

NetBeans Architecture Answers for Project UI API module

WARNING: answering questions version 1.25 rather than the current 1.29.

Interfaces table

Group of java interfaces
Interface NameIn/OutStabilitySpecified in What Document?
ProjectUIAPIExportedOfficial

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-providerExportedFriend

Callbacks intended to let the Project UI module plug in implementations of APIs defined here. Uses implementation dependencies.

ProjectAPIImportedUnder Development

For various purposes.

The module is needed for compilation. The module is used during runtime. Specification version 1.56 is required.

FilesystemsImportedOfficial

For various purposes.

DatasystemsImportedOfficial

For just internal purposes.

NodesImportedOfficial

Part of API.

CommonAnnotationsAPIImportedStable

The module is needed for compilation. The module is used during runtime. Specification version 1.10 is required.

ProgressImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 1.40 is required.

ProgressSwingImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 1.40 is required.

DataSystemsAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 1.5 is required.

BaseProjectUIAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 1.77 is required.

GeneralQueriesAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 1.27 is required.

org.openide.awtImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 6.2 is required.

DialogsAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 6.2 is required.

ExplorerAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 6.8 is required.

FilesystemsAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 9.0 is required.

org.openide.filesystem.spiImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 9.0 is required.

LoadersAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 7.61 is required.

ModulesAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 7.44 is required.

NodesAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 6.2 is required.

WeakListener.setAccessibleImportedUnder Development

The module is needed for compilation. The module is used during runtime. Specification version 9.3 is required.

LookupAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 8.0 is required.

UtilitiesAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 9.3 is required.

WindowSystemAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 6.16 is required.

Group of property interfaces
Interface NameIn/OutStabilitySpecified in What Document?
willOpenProjectsExportedFriend

Since version 1.55 a special PropertyChangeEvent is generated for benefit of ide.ergonomics module by OpenProjects.getDefault(). The property name of the event is "willOpenProjects" and its new value contains an array of projects that will be opened (a type Project[]). Ergonomics module uses this information to enable modules that seem to provide support for technologies used in the about to be opened projects.

project.licenseExportedOfficial

project.license attribute contains project license as String for newly created templates. It is used to import license templates. The default is used if the attribute was not found in any project lookup.

project.encodingExportedOfficial

project.encoding attribute contains the project encoding as String for newly created templates. The encoding of the parent folder of the new file is used if the attribute was not found in any project lookup.

project.licensePathExportedStable

contains String path to the license header include file, by default as path to Templates/Licenses/license-${project.license}.txt system filesystem location, but a local filesystem (file:) url is also supported.

Group of lookup interfaces
Interface NameIn/OutStabilitySpecified in What Document?
org.openide.loaders.CreateFromTemplateAttributesProviderInProjectLookupImportedOfficial

The attribute providers registered in project lookups. Collected template attributes are exposed by org.openide.loaders.CreateFromTemplateAttributesProvider.

org.openide.loaders.CreateFromTemplateAttributesProviderExportedOfficial

The attributes provider is registered in META-INF/services. It collects attributes from org.openide.loaders.CreateFromTemplateAttributesProviders registered in project lookups. It provides the project.license and project.encoding attributes for file templates using scripting support.

Group of layer interfaces
Interface NameIn/OutStabilitySpecified in What Document?
RegisteredActionsExportedUnder Development

Several project related actions are registered in the Actions folder in the layer. Product branding is intended to use those actions to build main menu, toolbars and shortcuts.

  • Actions/Project/org-netbeans-modules-project-ui-BuildMainProject.instance
  • Actions/Project/org-netbeans-modules-project-ui-CleanMainProject.instance
  • Actions/Project/org-netbeans-modules-project-ui-RebuildMainProject.instance
  • Actions/Project/org-netbeans-modules-project-ui-RunMainProject.instance
  • Actions/Project/org-netbeans-modules-project-ui-DebugMainProject.instance
  • Actions/Project/org-netbeans-modules-project-ui-TestProject.instance
  • Actions/Project/org-netbeans-modules-project-ui-BuildProject.instance
  • Actions/Project/org-netbeans-modules-project-ui-CleanProject.instance
  • Actions/Project/org-netbeans-modules-project-ui-RebuildProject.instance
  • Actions/Project/org-netbeans-modules-project-ui-RunProject.instance

ProjectTemplatesExportedOfficial

New (or import) project wizards can be registered in a special folder Templates/Projects/.

ProjectActionsExportedOfficial

Providers of generic project actions can register Action and JSeparator instances in a special folder Projects/Actions/. So if any module wishes to extend, hide or reorder some of them it can just register its actions there. Example:

    <folder name="Projects" >
        <folder name="Actions" >
            <file name="org-mymodule-MyAction.instance" >
                <attr name="instanceCreate" stringvalue="org.mymodule.MyAction" />
            </file>
        </folder>
    </folder>
    

TemplatesExportedOfficial

File templates can be registered with various attributes, some specific to the project system.

TemplatesLicensesExportedOfficial

Under Templates/Licenses folder should be registered various license headers that can be imported by templates using scripting. The recommended format of filename is license-[licensename].txt e.g. license-cddl.txt.


General Information


Project and platform dependencies


Deployment


Compatibility with environment


Access to resources


Lookup of components


Execution Environment


Format of files and protocols


Performance and Scalability