1 /*
   2  * CDDL HEADER START
   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License, Version 1.0 only
   6  * (the "License").  You may not use this file except in compliance
   7  * with the License.
   8  *
   9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  10  * or http://www.opensolaris.org/os/licensing.
  11  * See the License for the specific language governing permissions
  12  * and limitations under the License.
  13  *
  14  * When distributing Covered Code, include this CDDL HEADER in each
  15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16  * If applicable, add the following below this CDDL HEADER, with the
  17  * fields enclosed by brackets "[]" replaced with your own identifying
  18  * information: Portions Copyright [yyyy] [name of copyright owner]
  19  *
  20  * CDDL HEADER END
  21  */
  22 /*
  23  * Copyright 2000 Sun Microsystems, Inc.  All rights reserved.
  24  * Use is subject to license terms.
  25  *
  26  * ident        "%Z%%M% %I%     %E% SMI"
  27  */
  28 package com.sun.dhcpmgr.ui;
  29 
  30 /*
  31  * @(#)TableMap.java    1.4 97/12/17
  32  */
  33 
  34 /** 
  35  * In a chain of data manipulators some behaviour is common. TableMap
  36  * provides most of this behavour and can be subclassed by filters
  37  * that only need to override a handful of specific methods. TableMap 
  38  * implements TableModel by routing all requests to its model, and
  39  * TableModelListener by routing all events to its listeners. Inserting 
  40  * a TableMap which has not been subclassed into a chain of table filters 
  41  * should have no effect.
  42  *
  43  * @version 1.4 12/17/97
  44  * @author Philip Milne */
  45 
  46 import javax.swing.table.*; 
  47 import javax.swing.event.TableModelListener; 
  48 import javax.swing.event.TableModelEvent; 
  49 
  50 public class TableMap extends AbstractTableModel implements TableModelListener
  51 {
  52     protected TableModel model; 
  53 
  54     public TableModel  getModel() {
  55         return model;
  56     }
  57 
  58     public void  setModel(TableModel model) {
  59         this.model = model; 
  60         model.addTableModelListener(this); 
  61     }
  62 
  63     // By default, Implement TableModel by forwarding all messages 
  64     // to the model. 
  65 
  66     public Object getValueAt(int aRow, int aColumn) {
  67         return model.getValueAt(aRow, aColumn); 
  68     }
  69         
  70     public void setValueAt(Object aValue, int aRow, int aColumn) {
  71         model.setValueAt(aValue, aRow, aColumn); 
  72     }
  73 
  74     public int getRowCount() {
  75         return (model == null) ? 0 : model.getRowCount(); 
  76     }
  77 
  78     public int getColumnCount() {
  79         return (model == null) ? 0 : model.getColumnCount(); 
  80     }
  81         
  82     public String getColumnName(int aColumn) {
  83         return model.getColumnName(aColumn); 
  84     }
  85 
  86     public Class getColumnClass(int aColumn) {
  87         return model.getColumnClass(aColumn); 
  88     }
  89         
  90     public boolean isCellEditable(int row, int column) { 
  91          return model.isCellEditable(row, column); 
  92     }
  93 //
  94 // Implementation of the TableModelListener interface, 
  95 //
  96 
  97     // By default forward all events to all the listeners. 
  98     public void tableChanged(TableModelEvent e) {
  99         fireTableChanged(e);
 100     }
 101 }