Example Code Dialog


Here is the code that creates the above dialog:

Example #1

  	/**   * The new default dialog class must be derived from DefaultNodeSettingsPane.   */  public class DemoNodeDialogPane extends DefaultNodeSettingsPane {        /**       * Instantiate and add all needed components here in the constructor.       * (The suppress warnings is used to avoid compiler warnings from the       * constructor with generic varargs.)       */      @SuppressWarnings("unchecked")      DemoNodeDialogPane() {          // following components are bordered          createNewGroup("Group 1:");           addDialogComponent(new DialogComponentString(new SettingsModelString(                  DemoNodeModel.STR, null), "Enter a string value:"));          addDialogComponent(new DialogComponentNumber(new SettingsModelInteger(                  DemoNodeModel.INT, 3), "Enter an integer (1-17):", 1));          addDialogComponent(new DialogComponentNumber(new SettingsModelDouble(                  DemoNodeModel.DBL, 3.0),                  "Enter a floating point number:", 0.1));          // closes the prev group, opens a new one>          createNewGroup("Group 2:");           addDialogComponent(new DialogComponentBoolean(new SettingsModelBoolean(                  DemoNodeModel.BOOL, false), "Checkit or leave it:"));          addDialogComponent(new DialogComponentStringSelection(                  new SettingsModelString(DemoNodeModel.STRSEL, null),                  "Your choice:", "First", "Second", "Third"));          closeCurrentGroup();          addDialogComponent(new DialogComponentColumnNameSelection(                  new SettingsModelString(DemoNodeModel.COLSEL, ""),                  "Select a column", 0, true, IntValue.class, DoubleValue.class));      }  }  

This code adds 6 components grouped by two borders. All components following the createNewGroup(

Each component's constructor requires a new instance of a SettingsModel. The settings model expects a string identifier that it uses to store and load the value of the component, and a default value which it holds until a new value is loaded. Additional parameters are necessary, depending on the type of component (most require a string) that will be displayed in front of the component as label. For more details, please refer to the documentation on the specific component.