This guide lists the actions necessary in order to migrate the preferences system from BEAM to SNAP
Step-by-step guide for creating a primary panel
Plug into NetBeans Preferences Dialog and extend it with a primary panel. See here for a tutorial. Anyway, the necessary actions are:
- In the module
snap-gui, create a controller class extending
- Annotate the class with
- Create a class which extends or wraps
JComponent. According to the tutorial, it makes sense to create the methods
valid(), as described in the tutorial.
- Implement the abstract methods in the controller class, call the
- Be sure to have a dependency on the artifact
org-netbeans-modules-options-api in the group
- Maybe you need to do a clean of the
snap-gui-module in order to see the extensions in the GUI.
- In order to store the user preference
somePreference which the user edits in the component
someTextField, add a line similar to
NbPreferences.forModule(YourPanel.class).put("somePreference", someTextField.getText()) to the
- Add a line similar to
someTextField.setText(NbPreferences.forModule(YourPanel.class).get("somePreference", "") to the
load()-method in order to load the user preference
Step-by-step guide for creating a secondary panel
Plug into NetBeans Preferences Dialog and extend it with a secondary panel. See here for a tutorial. Anyway, the necessary actions are:
- In the module
snap-gui, create a new package, and a file
- Within that file, annotate the package with
- Create a class within the package that extends
- Annotate it with
- As value for the annotation field
location use the id you set in step 2.
- Do steps 4-8 of the previous section accordingly
If your code does not compile due to a
Bundle.properties not found error: remove the annotations, compile again, put the annotations in again.
Be sure to add the
org.openide.util.NbBundle.Messages annotation, especially when you are creating a secondary panel. This is not mentioned in the tutorial!
After adding a new panel, you'll need to do a
mvn clean package. Make is not sufficient, nor is an easy package; clean is mandatory.
Be sure that you don't have duplicate display names; see http://stackoverflow.com/q/27376939/2043113.