package uk.ac.cam.cstibhotel.otcanalyser.gui; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.ArrayList; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JScrollPane; import javax.swing.JToolBar; import uk.ac.cam.cstibhotel.otcanalyser.trade.Trade; public class DataWindow extends CBLPanel implements ActionListener, ItemListener{ private static final long serialVersionUID = 1L; private DataTable table; public DataWindow(){ super(); table = new DataTable(new ArrayList<Trade>()); JButton button = new JButton("Change Columns..."); button.setActionCommand("columns"); JToolBar toolbar = new JToolBar(); toolbar.setOpaque(true); toolbar.setRollover(true); toolbar.setFloatable(false); toolbar.add(button); add(toolbar, BorderLayout.PAGE_END); JScrollPane scrollPane = new JScrollPane(table); scrollPane.setBorder(BorderFactory.createEtchedBorder()); add(scrollPane, BorderLayout.CENTER); button.addActionListener(this); ColumnChooser.columnChooser.addItemListener(this); } public DataTable getTable() { return table; } @Override public void actionPerformed(ActionEvent e){ if ("columns".equals(e.getActionCommand())) { ColumnChooser.columnChooser.setVisible(true); } } @Override public void itemStateChanged(ItemEvent e){ ColCheckBox box = ((ColCheckBox)e.getItem()); if (e.getStateChange() == ItemEvent.DESELECTED){ table.removeColumn(box.getText()); } else { table.addColumn(box.getText(), box.colNumber); } } public void clear() { table.setModel(new DataTableModel(new ArrayList<Trade>())); } }