-
BaseProjectUIAPI
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.
-
BaseProjectUIAPI-provider
Callbacks intended to let the Project UI module plug in implementations of
APIs defined here. Uses implementation dependencies.
Use Cases
The main use case is for project type providers to supply logical views and
customizers for the project. Also for template providers to create
project-aware file templates. Can also get a list of open projects, create
different kinds of project-related actions, and select projects on disk.
Exported Interfaces
This table lists all of the module exported APIs
with
defined stability classifications. It is generated
based on answers to questions about the architecture
of the module.
Read them all...
Group of java interfaces
Interface Name | In/Out | Stability | Specified in What Document? |
BaseProjectUIAPI | Exported | 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.
|
BaseProjectUIAPI-provider | Exported | Friend |
Callbacks intended to let the Project UI module plug in implementations of
APIs defined here. Uses implementation dependencies.
|
|
Group of property interfaces
Interface Name | In/Out | Stability | Specified in What Document? |
willOpenProjects | Exported | Friend |
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.license | Exported | Official |
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.encoding | Exported | Official |
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.licensePath | Exported | Stable |
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 Name | In/Out | Stability | Specified in What Document? |
org.openide.loaders.CreateFromTemplateAttributesProvider | Exported | Official |
The attributes provider is registered in META-INF/services . It collects
attributes from
org.openide.loaders.CreateFromTemplateAttributesProvider s
registered in project lookups.
It provides the
project.license and
project.encoding
attributes for file templates using scripting support.
|
|
Group of layer interfaces
Interface Name | In/Out | Stability | Specified in What Document? |
RegisteredActions | Exported | Under 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
|
RegistrationOfConvertors | Exported | Friend |
This module provides an
annotation
to register
project convertors
which generates registration in layer. This registration is used and
processed by ide.ergonomics module. The module especially relies
on the location of the registration (e.g. Services/ProjectConvertors/ )
and requiredFiles and delegate attributes.
|
ProjectTemplates | Exported | Official |
New (or import) project wizards can be registered in a special folder
Templates/Projects/ .
|
ProjectActions | Exported | Official |
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>
|
Templates | Exported | Official |
File templates can be registered with various attributes, some specific to
the project system.
|
TemplatesLicenses | Exported | Official |
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 .
|
|
Implementation Details
What do other modules need to do to declare a dependency on this one, in addition to or instead of a plain module dependency?
Nothing.
Read more about the implementation in the answers to
architecture questions.