public void setup(String type, int channel, int cc, int min, int max) {
   //                 setType(type);
   typeList.setSelectedItem(type);
   this.channel.setValue(channel);
   this.cc.setValue(cc);
   this.min.setValue(min);
   this.max.setValue(max);
 }
 public void setType(String type) {
   if ("Control Change".equals(type)) {
     channel.setEnabled(true);
     cc.setEnabled(true);
     min.setEnabled(true);
     max.setEnabled(true);
     min.setValue(0);
     max.setValue(127);
     modeList.setEnabled(false);
   } else if ("NRPN".equals(type)) {
     channel.setEnabled(true);
     cc.setEnabled(true);
     min.setEnabled(true);
     max.setEnabled(true);
     min.setValue(0);
     max.setValue(127);
     modeList.setEnabled(false);
   } else if ("Pitch Bend".equals(type)) {
     channel.setEnabled(true);
     cc.setEnabled(false);
     min.setEnabled(true);
     max.setEnabled(true);
     min.setValue(-8192);
     max.setValue(8191);
     modeList.setEnabled(false);
   } else if ("Basenote".equals(type)) {
     channel.setEnabled(false);
     cc.setEnabled(false);
     min.setEnabled(true);
     max.setEnabled(true);
     min.setValue(0);
     max.setValue(127);
     modeList.setEnabled(false);
   } else if ("Scale".equals(type)) {
     channel.setEnabled(false);
     cc.setEnabled(false);
     min.setEnabled(false);
     max.setEnabled(false);
     modeList.setEnabled(false);
   } else if ("Mode Change".equals(type)) {
     channel.setEnabled(false);
     cc.setEnabled(false);
     min.setEnabled(false);
     max.setEnabled(false);
     modeList.setEnabled(true);
   } else if ("Unassigned".equals(type)) {
     channel.setEnabled(false);
     cc.setEnabled(false);
     min.setEnabled(false);
     max.setEnabled(false);
     modeList.setEnabled(false);
   }
 }
 public void configure() {
   String type = (String) typeList.getSelectedItem();
   if ("Control Change".equals(type)) {
     eventhandler.configureControlChange(
         getOperationMode(),
         this.type,
         (Integer) channel.getValue(),
         (Integer) cc.getValue(),
         (Integer) min.getValue(),
         (Integer) max.getValue());
   } else if ("NRPN".equals(type)) {
     eventhandler.configureNRPN(
         getOperationMode(),
         this.type,
         (Integer) channel.getValue(),
         (Integer) cc.getValue(),
         (Integer) min.getValue(),
         (Integer) max.getValue());
   } else if ("Pitch Bend".equals(type)) {
     eventhandler.configurePitchBend(
         getOperationMode(),
         this.type,
         (Integer) channel.getValue(),
         (Integer) min.getValue(),
         (Integer) max.getValue());
   } else if ("Basenote".equals(type)) {
     eventhandler.configureBaseNoteChange(
         getOperationMode(), this.type, (Integer) min.getValue(), (Integer) max.getValue());
   } else if ("Scale".equals(type)) {
     eventhandler.configureScaleChange(getOperationMode(), this.type);
   } else if ("Mode Change".equals(type)) {
     eventhandler.configureModeChange(
         getOperationMode(), this.type, (String) modeList.getSelectedItem());
   } else if ("Unassigned".equals(type)) {
     eventhandler.configureUnassigned(getOperationMode(), this.type);
   }
 }
      public ParameterConfigurationPanel(String name, SensorType type) {
        this.type = type;
        this.name = name;
        setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));

        add(new Label(name));
        typeList = new JComboBox(controlTypes);
        typeList.addActionListener(
            new AbstractAction() {
              public void actionPerformed(ActionEvent e) {
                setType((String) typeList.getSelectedItem());
                configure();
              }
            });
        add(typeList);

        add(new Label("channel"));
        channel = new JSpinner(new SpinnerNumberModel(1, 1, 16, 1));
        channel.setValue(1);
        channel.addChangeListener(
            new ChangeListener() {
              public void stateChanged(ChangeEvent e) {
                configure();
              }
            });
        add(channel);

        add(new Label("cc"));
        cc = new JSpinner(new SpinnerNumberModel(21, 1, 127, 1));
        cc.setValue(21);
        cc.addChangeListener(
            new ChangeListener() {
              public void stateChanged(ChangeEvent e) {
                configure();
              }
            });
        add(cc);

        add(new Label("min"));
        min = new JSpinner();
        min.addChangeListener(
            new ChangeListener() {
              public void stateChanged(ChangeEvent e) {
                configure();
              }
            });
        add(min);

        add(new Label("max"));
        max = new JSpinner();
        max.setValue(127);
        max.addChangeListener(
            new ChangeListener() {
              public void stateChanged(ChangeEvent e) {
                configure();
              }
            });
        add(max);

        JButton button = new JButton("invert");
        button.addActionListener(
            new AbstractAction() {
              public void actionPerformed(ActionEvent e) {
                int saved = (Integer) min.getValue();
                min.setValue(max.getValue());
                max.setValue(saved);
              }
            });
        add(button);

        modeList = new JComboBox(eventhandler.getModeNames());
        modeList.addActionListener(
            new AbstractAction() {
              public void actionPerformed(ActionEvent e) {
                configure();
              }
            });
        add(modeList);
      }
      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");
      }
 public void setup(String type, String mode) {
   typeList.setSelectedItem(type);
   modeList.setSelectedItem(mode);
 }