package uk.ac.cam.cstibhotel.otcanalyser.gui; import java.util.List; import javax.swing.JTable; import javax.swing.table.TableColumn; import javax.swing.table.TableModel; import uk.ac.cam.cstibhotel.otcanalyser.trade.Trade; public class DataTable extends JTable { private static final long serialVersionUID = 1L; public DataTable(List<Trade> t) { super(new DataTableModel(t)); setFillsViewportHeight(true); setAutoCreateRowSorter(true); //sortable columns setDefaultRenderer(Object.class, new DataTableCellRenderer()); } @Override public void setModel(TableModel m) { super.setModel(m); //if it isn't checked, don't display it for (int i = 0; i < DataTableModel.columnNames.length; i++){ if (!ColumnChooser.columnChooser.getChecked(i)){ removeColumn(DataTableModel.columnNames[i]); } } } public final void removeColumn(String s) { getColumnModel().removeColumn(getColumn(s)); } public final void addColumn(String s, int c) { TableColumn col = new TableColumn(c); col.setIdentifier(s); col.setHeaderValue(s); getColumnModel().addColumn(col); } public void addRow(Trade t){ ((DataTableModel)getModel()).addRow(t, false); } public void addRowToStart(Trade t){ ((DataTableModel)getModel()).addRow(t, true); } }