public final void setup()

in jflex/src/main/java/jflex/gui/OptionsDialog.java [78:219]


  public final void setup() {
    // create components
    Button ok = new Button("Ok");
    Button defaults = new Button("Defaults");
    Button skelBrowse = new Button(" Browse");
    skelFile = new TextField();
    skelFile.setEditable(false);

    legacy_dot =
        new Checkbox(
            " dot (.) matches [^\\n] instead of " + "[^\\n\\r\\000B\\u000C\\u0085\\u2028\\u2029]");

    dump = new Checkbox(" dump");
    verbose = new Checkbox(" verbose");
    time = new Checkbox(" time statistics");

    no_minimize = new Checkbox(" skip minimization");
    no_backup = new Checkbox(" no backup file");

    jlex = new Checkbox(" JLex compatibility");
    dot = new Checkbox(" dot graph files");

    // setup interaction
    ok.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            close();
          }
        });

    defaults.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            setDefaults();
          }
        });

    skelBrowse.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            skelBrowse();
          }
        });

    verbose.addItemListener(
        new ItemListener() {
          @Override
          public void itemStateChanged(ItemEvent e) {
            Options.verbose = verbose.getState();
          }
        });

    dump.addItemListener(
        new ItemListener() {
          @Override
          public void itemStateChanged(ItemEvent e) {
            Options.dump = dump.getState();
          }
        });

    jlex.addItemListener(
        new ItemListener() {
          @Override
          public void itemStateChanged(ItemEvent e) {
            Options.jlex = jlex.getState();
            // JLex compatibility implies that dot (.) metachar matches [^\n]
            legacy_dot.setState(false);
            legacy_dot.setEnabled(!jlex.getState());
          }
        });

    no_minimize.addItemListener(
        new ItemListener() {
          @Override
          public void itemStateChanged(ItemEvent e) {
            Options.no_minimize = no_minimize.getState();
          }
        });

    no_backup.addItemListener(
        new ItemListener() {
          @Override
          public void itemStateChanged(ItemEvent e) {
            Options.no_backup = no_backup.getState();
          }
        });

    dot.addItemListener(
        new ItemListener() {
          @Override
          public void itemStateChanged(ItemEvent e) {
            Options.dot = dot.getState();
          }
        });

    legacy_dot.addItemListener(
        new ItemListener() {
          @Override
          public void itemStateChanged(ItemEvent e) {
            Options.legacy_dot = legacy_dot.getState();
          }
        });

    time.addItemListener(
        new ItemListener() {
          @Override
          public void itemStateChanged(ItemEvent e) {
            Options.time = time.getState();
          }
        });

    // setup layout
    GridPanel panel = new GridPanel(4, 5, 10, 10);
    panel.setInsets(new Insets(10, 5, 5, 10));

    panel.add(3, 0, ok);
    panel.add(3, 1, defaults);

    panel.add(0, 0, 2, 1, Handles.BOTTOM, new Label("skeleton file:"));
    panel.add(0, 1, 2, 1, skelFile);
    panel.add(2, 1, 1, 1, Handles.TOP, skelBrowse);

    panel.add(0, 4, 4, 1, legacy_dot);

    panel.add(0, 2, 1, 1, dump);
    panel.add(0, 3, 1, 1, verbose);

    panel.add(1, 2, 1, 1, time);
    panel.add(1, 3, 1, 1, no_minimize);

    panel.add(2, 2, 1, 1, no_backup);

    panel.add(3, 2, 1, 1, jlex);
    panel.add(3, 3, 1, 1, dot);

    add("Center", panel);

    updateState();
  }