public void setup(boolean doPlay, boolean doPb, boolean doAt) {
   play.setSelected(doPlay);
   this.doPlay = doPlay;
   pb.setSelected(doPb);
   this.doPb = doPb;
   at.setSelected(doAt);
   this.doAt = doAt;
   configure();
 }
      public NotePlayerConfigurationPanel() {
        setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
        JPanel panel = new JPanel(new MigLayout());
        add(panel);

        play = new JCheckBox("Play notes", true);
        play.addActionListener(
            new AbstractAction() {
              public void actionPerformed(ActionEvent e) {
                doPlay = !doPlay;
                if (doPlay) {
                  pb.setEnabled(true);
                  at.setEnabled(true);
                } else {
                  pb.setEnabled(false);
                  at.setEnabled(false);
                }
                configure();
              }
            });
        panel.add(play, "wrap");

        pb = new JCheckBox("Pitch Bend", false);
        pb.addActionListener(
            new AbstractAction() {
              public void actionPerformed(ActionEvent e) {
                doPb = !doPb;
                configure();
              }
            });
        panel.add(pb, "wrap");

        at = new JCheckBox("Aftertouch", false);
        at.addActionListener(
            new AbstractAction() {
              public void actionPerformed(ActionEvent e) {
                doAt = !doAt;
                configure();
              }
            });
        panel.add(at, "wrap");

        panel = new JPanel(new MigLayout());
        add(panel);

        panel.add(new Label("Follow Mode"), "label");
        JComboBox box = new JComboBox(sender.getFollowModes());
        box.setSelectedItem(eventhandler.getConfigurationMode(getOperationMode()).getFollowMode());
        box.addActionListener(
            new AbstractAction() {
              public void actionPerformed(ActionEvent e) {
                JComboBox box = (JComboBox) e.getSource();
                String name = (String) box.getSelectedItem();
                eventhandler.getConfigurationMode(getOperationMode()).setFollowMode(name);
                sender.setFollowMode(name);
              }
            });
        panel.add(box, "wrap");

        panel.add(new Label("Scale"), "label");
        scale = new JComboBox(eventhandler.getScaleMapper().getScaleNames());
        scale.setSelectedItem(eventhandler.getCurrentScale());
        scale.addActionListener(
            new AbstractAction() {
              public void actionPerformed(ActionEvent e) {
                String scalename = (String) scale.getSelectedItem();
                eventhandler.getScaleMapper(getOperationMode()).setScale(scalename);
              }
            });
        panel.add(scale, "wrap");

        panel.add(new Label("Basenote"), "label");
        basenote = new JSpinner(new SpinnerNumberModel(1, 1, 127, 1));
        basenote.setValue(eventhandler.getBaseNote());
        basenote.addChangeListener(
            new ChangeListener() {
              public void stateChanged(ChangeEvent e) {
                Integer value = (Integer) basenote.getValue();
                eventhandler.setBaseNote(getOperationMode(), value);
              }
            });
        panel.add(basenote, "wrap");
      }