package forkk.multimc.gui;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import forkk.multimc.data.Instance;
import forkk.multimc.instIcons.InstIconList;
public class ChangeIconDialog extends JDialog
{
private static final long serialVersionUID = 2986256150660257570L;
private final JPanel contentPanel = new JPanel();
Instance instance;
private JList iconListView;
DefaultListModel iconList;
private JButton okButton;
/**
* Create the dialog.
*/
public ChangeIconDialog(Instance inst)
{
instance = inst;
setBounds(100, 100, 620, 400);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(new BorderLayout(0, 0));
{
iconListView = new JList();
iconListView.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
if (e.getClickCount() >= 2)
okButton.doClick();
}
});
iconListView.setVisibleRowCount(0);
iconListView.setLayoutOrientation(JList.HORIZONTAL_WRAP);
iconListView.setCellRenderer(new IconListRenderer());
iconListView.setModel(iconList = new DefaultListModel());
contentPanel.add(iconListView);
for (String key : InstIconList.getList().keySet())
{
iconList.addElement(key);
}
}
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
okButton = new JButton("OK");
okButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
instance.setIconKey(iconListView.getSelectedValue().toString());
setVisible(false);
}
});
okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
{
JButton cancelButton = new JButton("Cancel");
cancelButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
setVisible(false);
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}