private void initialise() {
    // presetManager.sort();
    presetCombo = new JComboBox();
    for (Preset<T> p : presetManager.list()) {
      presetCombo.addItem(p);
    }
    presetCombo.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            Preset<T> p = (Preset<T>) presetCombo.getSelectedItem();

            if (p == null) {
              return;
            }

            if (p.isBuiltIn()) {
              updatePresetButton.setEnabled(false);
              updatePresetButton.setToolTipText("Cannot make changes to a built-in preset");
            } else {
              updatePresetButton.setEnabled(true);
              updatePresetButton.setToolTipText(
                  "Save these settings to the currently selected preset");
            }

            T settings = p.getSettings();
            guiMapper.applySettingsToControls(settings);
          }
        });

    JButton manageButton = new JButton("Manage...");
    manageButton.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            boolean haveCustomPresets = false;
            for (Preset<T> p : presetManager.list()) {
              if (!p.isBuiltIn()) {
                haveCustomPresets = true;
                break;
              }
            }
            if (haveCustomPresets) {
              managePresets();
            } else {
              JOptionPane.showMessageDialog(
                  PresetManagerPanel.this, "There are no custom presets to manage.");
            }
          }
        });

    updatePresetButton = new JButton("Update");
    updatePresetButton.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            Preset<T> selected = (Preset<T>) presetCombo.getSelectedItem();
            presetManager.update(selected, guiMapper.getSettingsFromControls());
          }
        });

    JButton saveAsButton = new JButton("Save as...");
    saveAsButton.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            createPreset();
          }
        });

    JPanel buttonsPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    buttonsPanel.add(updatePresetButton);
    buttonsPanel.add(saveAsButton);
    buttonsPanel.add(manageButton);

    setBorder(BorderFactory.createTitledBorder("Presets"));
    setLayout(
        new BorderLayout(SizeHelper.getCompactLayoutHGap(), SizeHelper.getCompactLayoutVGap()));
    add(presetCombo, BorderLayout.CENTER);
    add(buttonsPanel, BorderLayout.SOUTH);
  }