private void buildLeftPanel() {
    leftPanel = new JPanel();
    leftPanel.setLayout(new GridBagLayout());
    listData = new MutableList<Archetype>();
    listData.addAll(ArchetypesManager.getInstance().getArchetypes());
    archetypeList = new JList(listData);
    archetypeList.setCellRenderer(new ArchetypesCellRenderer());
    archetypeList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    scroller = new JScrollPane(archetypeList);
    Insets buttonInsets = new Insets(0, 2, 5, 2);
    leftPanel.add(
        scroller,
        new GridBagConstraints(
            0,
            2,
            2,
            1,
            0.25,
            1.0,
            GridBagConstraints.CENTER,
            GridBagConstraints.BOTH,
            new Insets(0, 2, 0, 2),
            0,
            0));

    addButton = new JButton(newArchetypeAction);
    deleteButton = new JButton(deleteArchetypeAction);
    saveButton = new JButton(saveListAction);
    revertButton = new JButton(revertListAction);

    leftPanel.add(
        addButton,
        new GridBagConstraints(
            0,
            0,
            1,
            1,
            0,
            0,
            GridBagConstraints.NORTH,
            GridBagConstraints.HORIZONTAL,
            buttonInsets,
            0,
            0));
    leftPanel.add(
        deleteButton,
        new GridBagConstraints(
            1,
            0,
            1,
            1,
            0,
            0,
            GridBagConstraints.NORTH,
            GridBagConstraints.HORIZONTAL,
            buttonInsets,
            0,
            0));

    addButton.setMargin(new Insets(0, 2, 0, 2));
    deleteButton.setMargin(new Insets(0, 2, 0, 2));
    saveButton.setMargin(new Insets(0, 2, 0, 2));
    revertButton.setMargin(new Insets(0, 2, 0, 2));
    deleteArchetypeAction.setEnabled(false);
    // leftPanel.setBorder( BorderFactory.createTitledBorder("Archetypes") );
    exportArchetypeAction.setEnabled(false);
    archetypeList.addListSelectionListener(
        new ListSelectionListener() {

          public void valueChanged(ListSelectionEvent e) {
            respondToListClick();
          }
        });
  }