package gui;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import utils.StringPair;
public class StringPairListEditUI extends JPanel {
/**
*
*/
private static final long serialVersionUID = -6211243873148848369L;
private JTextField _string1Select;
private JTextField _string2Select;
private JList _pairList;
public StringPairListEditUI() {
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
JPanel addDeletePanel = new JPanel();
add(addDeletePanel);
addDeletePanel.setLayout(new BoxLayout(addDeletePanel, BoxLayout.X_AXIS));
JButton btnAdd = new JButton("Add:");
btnAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
DefaultListModel listModel = (DefaultListModel)_pairList.getModel();
listModel.addElement(new StringPair(_string1Select.getText(), _string2Select.getText()));
}
});
addDeletePanel.add(btnAdd);
JLabel string1Label = new JLabel("Element 1:");
addDeletePanel.add(string1Label);
_string1Select = new JTextField();
_string1Select.setMaximumSize(new Dimension(Integer.MAX_VALUE, string1Label.getPreferredSize().height*2));
_string1Select.setColumns(10);
addDeletePanel.add(_string1Select);
JLabel string2Label = new JLabel("Element 2:");
addDeletePanel.add(string2Label);
_string2Select = new JTextField();
_string2Select.setMaximumSize(new Dimension(Integer.MAX_VALUE, string2Label.getPreferredSize().height*2));
_string2Select.setColumns(10);
addDeletePanel.add(_string2Select);
final JButton btnRemovePair = new JButton("Remove Pair");
btnRemovePair.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (_pairList.getSelectedValue() != null) {
DefaultListModel listModel = (DefaultListModel)_pairList.getModel();
listModel.removeElement(_pairList.getSelectedValue());
}
}
});
btnRemovePair.setVisible(false);
addDeletePanel.add(btnRemovePair);
JScrollPane pairListScroll = new JScrollPane();
add(pairListScroll);
_pairList = new JList();
_pairList.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent evt) {
if (_pairList.getSelectedValue() != null)
btnRemovePair.setVisible(true);
else
btnRemovePair.setVisible(false);
}
});
_pairList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
pairListScroll.setViewportView(_pairList);
DefaultListModel listModel = new DefaultListModel();
_pairList.setModel(listModel);
}
public void setPairList(StringPair[] pairList) {
DefaultListModel listModel = new DefaultListModel();
for (StringPair pair : pairList) {
listModel.addElement(pair);
}
_pairList.setModel(listModel);
_pairList.setSelectedValue(null, true);
}
public StringPair[] getPairList() {
StringPair[] retVal = new StringPair[_pairList.getModel().getSize()];
for (int i = 0; i < _pairList.getModel().getSize(); i++) {
retVal[i] = (StringPair)_pairList.getModel().getElementAt(i);
}
return retVal;
}
}