Brought to you by EarthWeb
ITKnowledge Logo Login Graphic Click Here!
Click Here!
ITKnowledge
Search this book:
 
Search the site:
 
EXPERT SEARCH ----- nav

EarthWeb Direct

EarthWeb Direct

EarthWeb sites: other sites

Previous Table of Contents Next


Listing 12.3 The TableModelListener Interface and TableModelEvent Class

public interface TableModelListener extends java.util.EventListener
{
    /**
     * This fine grain notification tells listeners the exact range
     * of cells, rows, or columns that changed.
     */
    public void tableChanged(TableModelEvent e);
}

public class TableModelEvent extends java.util.EventObject
{
    public static final int INSERT =  1;
    public static final int UPDATE =  0;
    public static final int DELETE = -1;

    public static final int HEADER_ROW = -1;

    public static final int ALL_COLUMNS = -1;

//
//  Instance Variables
//
    protected int       type;
    protected int     firstRow;
    protected int     lastRow;
    protected int     column;

//
// Constructors
//

    /**
     * All row data in the table has changed. Listeners should discard
     * any state that was based on the rows and requery the TableModel
     * to get the new row count and all the appropriate values.
     * The JTable will repaint the entire visible region on receiving
     * this event, querying the model for the cell values that are
     * visible. The structure of the table i.e. the column names, types,
     * and order have not changed.
     */
    public TableModelEvent(TableModel source) {
        // Use Integer.MAX_VALUE instead of getRowCount() in
        // case rows were deleted.
this(source, 0, Integer.MAX_VALUE, ALL_COLUMNS, UPDATE);
    }

    /**
     * This row of data has been updated.
     * To denote the arrival of a completely new table with a different
     * structure use <code>HEADER_ROW</code> as the value for the
     * <I>row</I>. When the JTable receives this event and its
     * <I>autoCreateColumnsFromModel</I> flag is set it discards any
     * TableColumns that it had and reallocates default ones in the
     * order they appear in the model. This is the same as calling
     * <code>setModel(TableModel)</code> on the JTable.
     */
    public TableModelEvent(TableModel source, int row) {
        this(source, row, row, ALL_COLUMNS, UPDATE);
    }
    
    /**
     * The data in rows [<I>firstRow</I>, <I>lastRow</I>] have been
     * updated.
     */
    public TableModelEvent(TableModel source, int firstRow, int lastRow) {
        this(source, firstRow, lastRow, ALL_COLUMNS, UPDATE);
    }

    /**
     * The cells in column <I>column</I> in the range
     * [<I>firstRow</I>, <I>lastRow</I>] have been updated.
     */
    public TableModelEvent( TableModel source, int firstRow,
                            int lastRow, int column ) {
        this(source, firstRow, lastRow, column, UPDATE);
    }
    
    /**
     * The cells from (firstRow, column) to (lastRow, column) have been
     * changed. The <I>column</I> refers to the column index of the cell
     * in the model’s coordinate system. When <I>column</I> is ALL_
     * COLUMNS, all cells in the specified range of rows are
     * considered changed.
     *  <p>
     *  The <I>type</I> should be one of: INSERT, UPDATE, and DELETE.
     */
    public TableModelEvent( TableModel source, int firstRow, int lastRow,
                            int column, int type) {
        super(source);
        this.firstRow = firstRow;
        this.lastRow = lastRow;
        this.column = column;
        this.type = type;
    }

//
// Querying Methods
//

   /** Returns the first row that changed.  HEADER_ROW means the meta
     * data, i.e. names, types, and order of the columns.
     */
    public int getFirstRow() { return firstRow; };

    /** Returns the last row that changed. */
    public int getLastRow() { return lastRow; };

    /**
     *  Returns the column for the event.  If the return
     *  value is ALL_COLUMNS; it means every column in the specified
     *  rows changed.
     */
    public int getColumn() { return column; };

    /**
     *  Returns the type of event - one of: INSERT, UPDATE, and DELETE.
     */
    public int getType() { return type; }
}


Previous Table of Contents Next
HomeAbout UsSearchSubscribeAdvertising InfoContact UsFAQs
Use of this site is subject to certain Terms & Conditions.
Copyright (c) 1996-1999 EarthWeb Inc. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Read EarthWeb's privacy statement.