package gui; import java.awt.Dimension; import javax.swing.DefaultComboBoxModel; import javax.swing.DefaultListModel; import javax.swing.JPanel; import javax.swing.BoxLayout; import javax.swing.JScrollPane; import javax.swing.JList; import javax.swing.ListSelectionModel; import javax.swing.JButton; import javax.swing.JComboBox; import database.DatabaseItem; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionEvent; public class ItemListEditUI extends JPanel { /** * */ private static final long serialVersionUID = 5920606904420208505L; private JComboBox _itemSelectComboBox; private JList _itemList; /** * Create the panel. */ public ItemListEditUI() { 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 arg0) { if(_itemSelectComboBox.getSelectedItem() != null) { DefaultListModel listModel = (DefaultListModel)_itemList.getModel(); listModel.addElement(_itemSelectComboBox.getSelectedItem()); } } }); addDeletePanel.add(btnAdd); _itemSelectComboBox = new JComboBox(); _itemSelectComboBox.setMaximumSize(new Dimension(Integer.MAX_VALUE, btnAdd.getPreferredSize().height)); addDeletePanel.add(_itemSelectComboBox); final JButton btnRemoveSelectedItem = new JButton("Remove Selected Item"); btnRemoveSelectedItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(_itemList.getSelectedValue() != null) { DefaultListModel listModel = (DefaultListModel)_itemList.getModel(); listModel.removeElement(_itemList.getSelectedValue()); } } }); btnRemoveSelectedItem.setVisible(false); addDeletePanel.add(btnRemoveSelectedItem); JScrollPane itemListScroll = new JScrollPane(); add(itemListScroll); _itemList = new JList(); _itemList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent arg0) { if(_itemList.getSelectedValue() != null) btnRemoveSelectedItem.setVisible(true); } }); _itemList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); itemListScroll.setViewportView(_itemList); DefaultListModel listModel = new DefaultListModel(); _itemList.setModel(listModel); } public void setItemSelect(Object[] itemList) { _itemSelectComboBox.setModel(new DefaultComboBoxModel(itemList)); } public void setItemList(DatabaseItem[] itemList) { DefaultListModel listModel = new DefaultListModel(); for (DatabaseItem item : itemList) { listModel.addElement(item); } _itemList.setModel(listModel); _itemList.setSelectedValue(null, true); } public DatabaseItem[] getItemList() { DatabaseItem[] retVal = new DatabaseItem[_itemList.getModel().getSize()]; for (int i = 0; i < _itemList.getModel().getSize(); i++) { retVal[i] = (DatabaseItem)_itemList.getModel().getElementAt(i); } return retVal; } }