NetBeans Architecture Answers for Options Dialog and SPI module


Interfaces table

Group of java interfaces
Interface Name In/Out Stability Specified in What Document?
OptionsDialogSPI Exported Official .../spi/options/OptionsCategory.html

Progress Imported Official .../overview-summary.html

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

org.netbeans.libs.formlayout Imported Private

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

FilesystemsAPI Imported Official .../overview-summary.html

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

UtilitiesAPI Imported Official .../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.awt Imported Official ../org-openide-awt/overview-summary.html

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

DialogsAPI Imported Official .../overview-summary.html

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

WindowSystemAPI Imported Official .../overview-summary.html

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

ActionsAPI Imported Official .../overview-summary.html

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

ExplorerAPI Imported Official .../overview-summary.html

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

NodesAPI Imported Official .../org-openide-nodes/overview-summary.html

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

LoadersAPI Imported Official .../overview-summary.html

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

Group of property interfaces
Interface Name In/Out Stability Specified in What Document?
org.netbeans.core.actions.OptionsAction.additionalActionName Imported Private

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

org.netbeans.core.actions.OptionsAction.additionalActionListener Imported Private

Given ActionListener is notified when custom button is pressed.

Group of layer interfaces
Interface Name In/Out Stability Specified in What Document?
OptionsDialogSPILayers Exported Under 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.

AdvancedPanelSPILayers Exported Under 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.

OptionsExportLayers Exported Under 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 February 22 2011.  |  Portions Copyright 1997-2011 Sun Microsystems, Inc. All rights reserved.