Package charvax.swing.table

Source Code of charvax.swing.table.AbstractTableModel

/* class AbstractTableModel
*
* Copyright (C) 2001  R M Pitman
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

package charvax.swing.table;

import java.util.Enumeration;
import java.util.Vector;

import charvax.swing.event.TableModelEvent;
import charvax.swing.event.TableModelListener;

/**
* This abstract class provides default implementations for most of the methods
* in the TableModel class. It takes care of the management of listeners, and
* provides some convenience methods for generating TableModeEvents and
* dispatching them to the listeners. To implement a concrete TableModel as a
* subclass of AbstractTableModel, you only need to provide implementations of
* the following methods:<pre>
    public int getRowCount();
    public int getColumnCount();
    public Object getValueAt(int row, int column);
</pre>
*/
public abstract class AbstractTableModel
    implements TableModel
{
    /** Adds a listener that will be notified each time the data model
     * changes.
     */
    public void addTableModelListener(TableModelListener l) {
  _listeners.add(l);
    }

    /** Removes the specified listener from the list of listeners.
     */
    public void removeTableModelListener(TableModelListener l) {
  _listeners.remove(l);
    }

    /** Returns a default name for the column using spreadsheet conventions: A,
     * B, C...
     */
    public String getColumnName(int column_) {
  StringBuffer buf = new StringBuffer('A' + column_);
  return buf.toString();
    }

    /** This empty implementation is provided so that users don't have to
     * provide their own implementation if their table is not editable.
     */
    public void setValueAt(Object value_, int row_, int column_) {}

    /** Forwards the specified event to all TableModelListeners that
     * registered themselves as listeners for this TableModel.
     */
    public void fireTableChanged(TableModelEvent evt_) {
  Enumeration<TableModelListener> e = _listeners.elements();
  while (e.hasMoreElements()) {
      TableModelListener l = (TableModelListener) e.nextElement();
      l.tableChanged(evt_);
  }
    }

    /** Notifies all listeners that the value at [row, column] has been
     * updated.
     */
    public void fireTableCellUpdated(int row_, int column_) {
  TableModelEvent evt = new TableModelEvent(this, row_, row_, column_);
  fireTableChanged(evt);
    }

    /** Notifies all listeners that all cell values in the table may have
     * changed.
     */
    public void fireTableDataChanged() {
  TableModelEvent evt = new TableModelEvent(
      this, 0, this.getRowCount()-1, TableModelEvent.ALL_COLUMNS);
  fireTableChanged(evt);
    }

    /** Notifies all listeners that rows in the range [firstRow_, lastRow_],
     * inclusive, have been deleted.
     */
    public void fireTableRowsDeleted(int firstRow_, int lastRow_) {
  TableModelEvent evt = new TableModelEvent(
      this, firstRow_, lastRow_, TableModelEvent.ALL_COLUMNS,
      TableModelEvent.DELETE);
  fireTableChanged(evt);
    }

    /** Notifies all listeners that rows in the range [firstRow_, lastRow_],
     * inclusive, have been inserted.
     */
    public void fireTableRowsInserted(int firstRow_, int lastRow_) {
  TableModelEvent evt = new TableModelEvent(
      this, firstRow_, lastRow_, TableModelEvent.ALL_COLUMNS,
      TableModelEvent.INSERT);
  fireTableChanged(evt);
    }

    //====================================================================
    // INSTANCE VARIABLES
    private Vector<TableModelListener> _listeners = new Vector<TableModelListener>();
}
TOP

Related Classes of charvax.swing.table.AbstractTableModel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.