1 package net.sf.openrocket.gui.adaptors;
3 import javax.swing.table.AbstractTableModel;
4 import javax.swing.table.TableColumn;
5 import javax.swing.table.TableColumnModel;
7 public abstract class ColumnTableModel extends AbstractTableModel {
8 private final Column[] columns;
10 public ColumnTableModel(Column... columns) {
11 this.columns = columns;
14 public void setColumnWidths(TableColumnModel model) {
15 for (int i=0; i < columns.length; i++) {
16 if (columns[i].getExactWidth() > 0) {
17 TableColumn col = model.getColumn(i);
18 int w = columns[i].getExactWidth();
19 col.setResizable(false);
22 col.setPreferredWidth(w);
24 model.getColumn(i).setPreferredWidth(columns[i].getDefaultWidth());
30 public int getColumnCount() {
31 return columns.length;
35 public String getColumnName(int col) {
36 return columns[col].toString();
40 public Class<?> getColumnClass(int col) {
41 return columns[col].getColumnClass();
45 public Object getValueAt(int row, int col) {
46 if ((row < 0) || (row >= getRowCount()) ||
47 (col < 0) || (col >= columns.length)) {
48 System.err.println("Error: Requested illegal column/row = "+col+"/"+row+".");
52 return columns[col].getValueAt(row);