package uk.ac.cam.cstibhotel.otcanalyser.gui; import java.awt.GridLayout; import java.awt.event.ItemListener; import javax.swing.BorderFactory; import javax.swing.JDialog; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; public class ColumnChooser extends JDialog{ private static final long serialVersionUID = 1L; public static ColumnChooser columnChooser = new ColumnChooser(); private final ColCheckBox[] boxes; private ColumnChooser() { JPanel panel = new JPanel(new GridLayout(15,3)); panel.setBorder( BorderFactory.createCompoundBorder(new EmptyBorder(10, 10, 10, 10), BorderFactory.createTitledBorder("Choose Columns to Display"))); add(panel); boxes = new ColCheckBox[DataTableModel.columnNames.length]; for (int i = 0; i < DataTableModel.columnNames.length; i++) { boxes[i] = new ColCheckBox (DataTableModel.columnNames[i], i); panel.add(boxes[i]); } //some default settings boxes[3].setSelected(true); boxes[4].setSelected(true); boxes[25].setSelected(true); boxes[27].setSelected(true); pack(); } public void addItemListener(ItemListener listener){ for (ColCheckBox box : boxes){ box.addItemListener(listener); } } public boolean getChecked(int i){ if (i < boxes.length && i > -1) { return boxes[i].isSelected(); } return false; } }