1 package snow.sortabletable; 2 3 4 import java.awt.*; 5 import java.awt.event.*; 6 import javax.swing.*; 7 import javax.swing.event.*; 8 import javax.swing.table.*; 9 10 import java.util.*; 11 12 13 15 public class RowHeaderExtractorWrapperTableModel extends FineGrainTableModel 16 { 17 boolean first; 18 FineGrainTableModel baseModel; 19 int numberOfColumnHeaders; 20 21 public RowHeaderExtractorWrapperTableModel(boolean first, FineGrainTableModel baseModel, int numberOfColumnHeaders) 22 { 23 this.first = first; 24 this.baseModel = baseModel; 25 this.numberOfColumnHeaders = numberOfColumnHeaders; 26 27 baseModel.addTableModelListener(new TableModelListener() 29 { 30 public void tableChanged(TableModelEvent e) 31 { 32 fireTableDataChanged(); 33 } 34 }); 35 } 37 38 private int getColumn(int col) 39 { 40 if(first) return col; 41 return col + numberOfColumnHeaders; 42 } 43 44 47 48 49 public int getRowCount() {return baseModel.getRowCount();} 50 51 public int getColumnCount() 52 { 53 return (first? 54 numberOfColumnHeaders 55 :baseModel.getColumnCount()-numberOfColumnHeaders); 56 } 57 58 59 public Object getValueAt(int row, int column) 60 { 61 return baseModel.getValueAt(row, getColumn(column)); 62 } 63 64 public boolean hitForTextSearch(int row, String str) 65 { 66 return baseModel.hitForTextSearch(row, str, null); 67 } 68 69 public boolean isCellEditable(int row, int col) 70 { 71 return baseModel.isCellEditable(row, getColumn(col)); 72 } 73 74 public void setValueAt(Object val, int row, int col) 75 { 76 super.setValueAt(val, row, getColumn(col)); 77 } 78 79 public String getColumnName(int column) 80 { 81 return baseModel.getColumnName( getColumn(column) ); 82 83 } 84 85 public Class getColumnClass(int col) 86 { 87 return baseModel.getColumnClass(getColumn(col)); 88 } 89 90 public int compareForColumnSort(int pos1, int pos2, int col) 91 { 92 return baseModel.compareForColumnSort(pos1, pos2, getColumn(col) ); 93 } 94 95 public int getPreferredColumnWidth(int col) 96 { 97 return baseModel.getPreferredColumnWidth( getColumn(col) ); 98 } 99 100 101 102 } | Popular Tags |