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.


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 May 5 2012.  |  Portions Copyright 1997-2012 Sun Microsystems, Inc. All rights reserved.