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 import net.sf.openrocket.startup.Application;
9 public abstract class ColumnTableModel extends AbstractTableModel {
10 private final Column[] columns;
12 public ColumnTableModel(Column... columns) {
13 this.columns = columns;
16 public void setColumnWidths(TableColumnModel model) {
17 for (int i = 0; i < columns.length; i++) {
18 if (columns[i].getExactWidth() > 0) {
19 TableColumn col = model.getColumn(i);
20 int w = columns[i].getExactWidth();
21 col.setResizable(false);
24 col.setPreferredWidth(w);
26 model.getColumn(i).setPreferredWidth(columns[i].getDefaultWidth());
32 public int getColumnCount() {
33 return columns.length;
37 public String getColumnName(int col) {
38 return columns[col].toString();
42 public Class<?> getColumnClass(int col) {
43 return columns[col].getColumnClass();
47 public Object getValueAt(int row, int col) {
48 if ((row < 0) || (row >= getRowCount()) ||
49 (col < 0) || (col >= columns.length)) {
50 Application.getExceptionHandler().handleErrorCondition("Error: Requested illegal column/row, col=" + col + " row=" + row);
53 return columns[col].getValueAt(row);
57 public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
58 columns[columnIndex].setValueAt(rowIndex, aValue);