Registration of various objects, files and hints into layer is pretty central to the way NetBeans based applications handle communication between modules. This page summarizes the list of such extension points defined by modules with API.
<folder name="OptionsExport">
<!-- category -->
<folder name="MyCategory">
<!-- category display name -->
<attr name="displayName"
bundlevalue="org.netbeans.modules.mymodule.options.Bundle#Category_Display_Name"/>
<!-- item -->
<file name="MyItem1">
<attr name="displayName" bundlevalue="org.netbeans.modules.mymodule.options.Bundle#Item1_Display_Name"/>
<!-- include regex pattern rooted to userdir -->
<attr name="include" stringvalue="config/Preferences/org/netbeans/modules/mymodule/.*|config/mymodule/.*"/>
<!-- exclude regex pattern rooted to userdir -->
<attr name="exclude" stringvalue="config/mymodule/obsolete/.*"/>
</file>
<!-- item -->
<file name="MyItem2">
<attr name="displayName" bundlevalue="org.netbeans.modules.mymodule.options.Bundle#Item2_Display_Name"/>
<!-- include pattern with properties constrain -->
<attr name="include" stringvalue="config/mymodule[.]properties#key[1-9].*|keyA.*#|config/mymodule[.]xml"/>
<!-- exclude pattern with properties constrain -->
<attr name="exclude" stringvalue="config/obsolete[.]properties#key5"/>
</file>
</folder>
</folder>
Include/exclude patterns may contain either a regular expression defining
files relatively to userdir (see MyItem1) or a compound pattern defining
files and property keys (see MyItem2). A compound pattern consists of
file regex pattern followed by hash delimiter (#) then property key
regex pattern followed by another hash delimiter. Hash delimiter can be
ommited at the end of compound pattern. For example, a compound pattern
can have the following structure
filePattern1#keyPattern1#|filePattern2|filePattern3#keyPattern3
.
UI/ToolActions
folder to make them known
to ToolsAction.
setAttribute
is supported by the filesystem, the
getAttribute
can behave like
XMLFileSystem's
methodvalue
and newvalue
attributes:
getAttribute
with raw:
prefix to evaluate the attribute without instantiating it
(e.g. get Method or
Class values from
methodvalue
and newvalue
attributes. This API
is not intended for public use at present and can change in future.
Loaders/folder/any/Actions
so if any module wishes
to extend, hide or reorder some of them it can just register its actions there.
Loaders/text/xml/Actions
Loaders/content/unknown/Actions
Loaders/application/x-nbsettings/Actions
Loaders/folder/any/Actions
so if any module wishes
to extend, hide or reorder some of them it can just register its actions there.
Loaders/text/xml/Actions
Loaders/content/unknown/Actions
Loaders/application/x-nbsettings/Actions
Loaders/mime/type/Factories
.
The main menu of the application is composed by reading
Since version 7.44 one can attach Menu/
folder in the layer. A sub folder is treated as a sub menu.
Instances of individual files (usually .instance
or .shadow
) may then represent Action
or JMenuItem
or JSeparator.
property-prefix
attribute
to every folder. Then all the file attributes are scanned and if some
of them start with the specified prefix they are placed a
client
properties on the JMenu
instance (after stripping the prefix off).
Editors/TabActions
.
To get your API listed here, use
<api type='export' group='layer' ... />
in
your module arch.xml document.