home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / inprise / JSAMPLES.Z / TableMap.java < prev    next >
Text File  |  1998-05-08  |  3KB  |  89 lines

  1. /*
  2.  * @(#)TableMap.java    1.4 97/12/17
  3.  *
  4.  * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  *
  19.  */
  20.  
  21. /** 
  22.  * In a chain of data manipulators some behaviour is common. TableMap
  23.  * provides most of this behavour and can be subclassed by filters
  24.  * that only need to override a handful of specific methods. TableMap 
  25.  * implements TableModel by routing all requests to its model, and
  26.  * TableModelListener by routing all events to its listeners. Inserting 
  27.  * a TableMap which has not been subclassed into a chain of table filters 
  28.  * should have no effect.
  29.  *
  30.  * @version 1.4 12/17/97
  31.  * @author Philip Milne */
  32.  
  33. import com.sun.java.swing.table.*; 
  34. import com.sun.java.swing.event.TableModelListener; 
  35. import com.sun.java.swing.event.TableModelEvent; 
  36.  
  37. public class TableMap extends AbstractTableModel implements TableModelListener
  38. {
  39.     protected TableModel model; 
  40.  
  41.     public TableModel  getModel() {
  42.         return model;
  43.     }
  44.  
  45.     public void  setModel(TableModel model) {
  46.         this.model = model; 
  47.         model.addTableModelListener(this); 
  48.     }
  49.  
  50.     // By default, Implement TableModel by forwarding all messages 
  51.     // to the model. 
  52.  
  53.     public Object getValueAt(int aRow, int aColumn) {
  54.         return model.getValueAt(aRow, aColumn); 
  55.     }
  56.     
  57.     public void setValueAt(Object aValue, int aRow, int aColumn) {
  58.         model.setValueAt(aValue, aRow, aColumn); 
  59.     }
  60.  
  61.     public int getRowCount() {
  62.         return (model == null) ? 0 : model.getRowCount(); 
  63.     }
  64.  
  65.     public int getColumnCount() {
  66.         return (model == null) ? 0 : model.getColumnCount(); 
  67.     }
  68.     
  69.     public String getColumnName(int aColumn) {
  70.         return model.getColumnName(aColumn); 
  71.     }
  72.  
  73.     public Class getColumnClass(int aColumn) {
  74.         return model.getColumnClass(aColumn); 
  75.     }
  76.     
  77.     public boolean isCellEditable(int row, int column) { 
  78.          return model.isCellEditable(row, column); 
  79.     }
  80. //
  81. // Implementation of the TableModelListener interface, 
  82. //
  83.  
  84.     // By default forward all events to all the listeners. 
  85.     public void tableChanged(TableModelEvent e) {
  86.         fireTableChanged(e);
  87.     }
  88. }
  89.