home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 July / CHIP-1999-07.iso / software / jdk / jdk121.exe / disk1 / data1.cab / demos / demo / jfc / Table / TableMap.java < prev    next >
Encoding:
Java Source  |  1999-03-27  |  2.4 KB  |  83 lines

  1. /*
  2.  * @(#)TableMap.java    1.6 98/08/26
  3.  *
  4.  * Copyright 1997 by Sun Microsystems, Inc.,
  5.  * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
  6.  * All rights reserved.
  7.  *
  8.  * This software is the confidential and proprietary information
  9.  * of Sun Microsystems, Inc. ("Confidential Information").  You
  10.  * shall not disclose such Confidential Information and shall use
  11.  * it only in accordance with the terms of the license agreement
  12.  * you entered into with Sun.
  13.  */
  14.  
  15. /** 
  16.  * In a chain of data manipulators some behaviour is common. TableMap
  17.  * provides most of this behavour and can be subclassed by filters
  18.  * that only need to override a handful of specific methods. TableMap 
  19.  * implements TableModel by routing all requests to its model, and
  20.  * TableModelListener by routing all events to its listeners. Inserting 
  21.  * a TableMap which has not been subclassed into a chain of table filters 
  22.  * should have no effect.
  23.  *
  24.  * @version 1.6 08/26/98
  25.  * @author Philip Milne */
  26.  
  27. import javax.swing.table.*; 
  28. import javax.swing.event.TableModelListener; 
  29. import javax.swing.event.TableModelEvent; 
  30.  
  31. public class TableMap extends AbstractTableModel implements TableModelListener
  32. {
  33.     protected TableModel model; 
  34.  
  35.     public TableModel  getModel() {
  36.         return model;
  37.     }
  38.  
  39.     public void  setModel(TableModel model) {
  40.         this.model = model; 
  41.         model.addTableModelListener(this); 
  42.     }
  43.  
  44.     // By default, Implement TableModel by forwarding all messages 
  45.     // to the model. 
  46.  
  47.     public Object getValueAt(int aRow, int aColumn) {
  48.         return model.getValueAt(aRow, aColumn); 
  49.     }
  50.     
  51.     public void setValueAt(Object aValue, int aRow, int aColumn) {
  52.         model.setValueAt(aValue, aRow, aColumn); 
  53.     }
  54.  
  55.     public int getRowCount() {
  56.         return (model == null) ? 0 : model.getRowCount(); 
  57.     }
  58.  
  59.     public int getColumnCount() {
  60.         return (model == null) ? 0 : model.getColumnCount(); 
  61.     }
  62.     
  63.     public String getColumnName(int aColumn) {
  64.         return model.getColumnName(aColumn); 
  65.     }
  66.  
  67.     public Class getColumnClass(int aColumn) {
  68.         return model.getColumnClass(aColumn); 
  69.     }
  70.     
  71.     public boolean isCellEditable(int row, int column) { 
  72.          return model.isCellEditable(row, column); 
  73.     }
  74. //
  75. // Implementation of the TableModelListener interface, 
  76. //
  77.  
  78.     // By default forward all events to all the listeners. 
  79.     public void tableChanged(TableModelEvent e) {
  80.         fireTableChanged(e);
  81.     }
  82. }
  83.