NetBeans Architecture Answers for Options Dialog and SPI module


Interfaces table

Group of java interfaces
Interface NameIn/OutStabilitySpecified in What Document?
OptionsDialogSPIExportedOfficial .../spi/options/OptionsCategory.html

ProgressImportedOfficial .../overview-summary.html

The module is needed for compilation. The module is used during runtime.

org.netbeans.libs.formlayoutImportedPrivate

Additional library to simplify Hanz the work and create a nightmare for rest of us. It is needed for compilation and used during runtime.

FilesystemsAPIImportedOfficial .../overview-summary.html

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

UtilitiesAPIImportedOfficial .../org-openide-util/overview-summary.html

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

org.openide.awtImportedOfficial../org-openide-awt/overview-summary.html

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

DialogsAPIImportedOfficial .../overview-summary.html

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

WindowSystemAPIImportedOfficial .../overview-summary.html

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

ActionsAPIImportedOfficial .../overview-summary.html

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

ExplorerAPIImportedOfficial .../overview-summary.html

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

NodesAPIImportedOfficial .../org-openide-nodes/overview-summary.html

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

LoadersAPIImportedOfficial .../overview-summary.html

The module is needed for compilation. The module is used during runtime.

Group of property interfaces
Interface NameIn/OutStabilitySpecified in What Document?
org.netbeans.core.actions.OptionsAction.additionalActionNameImportedPrivate

Crates button with given string in bottom left corner of Advanced Options Dialog.

org.netbeans.core.actions.OptionsAction.additionalActionListenerImportedPrivate

Given ActionListener is notified when custom button is pressed.

Group of layer interfaces
Interface NameIn/OutStabilitySpecified in What Document?
OptionsDialogSPILayersExportedUnder Development .../spi/options/OptionsCategory.html

Use OptionsDialog folder for registration of custom top level options panels. Register your implementation of OptionsCategory there (*.instance file). Standard file systems sorting mechanism is used.

AdvancedPanelSPILayersExportedUnder Development .../netbeans/spi/options/AdvancedOption.html

Use OptionsDialog/Advanced folder for registration of custom panels to Miscellaneous Panel. Register your implementation of AdvancedCategory there (*.instance file). Standard file systems sorting mechanism is used.

OptionsExportLayersExportedUnder Development

Use OptionsExport/<MyCategory> folder for registration of items for export/import of options. Registration in layers looks as follows
 <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.

Group of branding interfaces
Interface NameIn/OutStabilitySpecified in What Document?
OPT_RestartAfterImportExportedUnder Development

By default importing settings (as described by
OptionsExport API does not require restart. Some systems may however support complex modifications to the installation structure. Then they should brand the OPT_RestartAfterImport to true. NetBeans IDE does require restart after settings import.


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


Built on October 22 2017.  |  Portions Copyright 1997-2017 Oracle. All rights reserved.