Save This Page
Home » openjdk-7 » net.sourceforge » jbird » [javadoc | source]
    1   /*
    2   	J-Bird net/sourceforge/jbird/SpeciesTable.java
    3   
    4   	Copyright 2001, 2002, 2003  Dick Repasky
    5   */
    6   package net.sourceforge.jbird;
    7   
    8   import java.awt.Point;
    9   
   10   import java.awt.event.MouseAdapter;
   11   import java.awt.event.MouseEvent;
   12   import java.awt.event.MouseListener;
   13   
   14   import javax.swing.JTable;
   15   
   16   import javax.swing.table.TableColumnModel;
   17   
   18   /**
   19     * A subclass of JTable that provides the mechanism for expanding
   20     * and collapsing families of species in a SpeciesTableModel.
   21     * <p>
   22     * The feature provided by this class is detection of mouse clicks
   23     * for expanding and collapsing families in the table.
   24     * @author Dick Repasky
   25     * @since J-Bird 0.1.3
   26     *
   27   */
   28   
   29   public class SpeciesTable extends JTable {
   30   
   31   	protected SpeciesTableModel table_model;
   32   	protected MouseListener mouse_listener;
   33   
   34   	public SpeciesTable(SpeciesTableModel tablemodel) {
   35   		super(tablemodel);
   36   		table_model = tablemodel;
   37   		setupCommon();
   38   	}
   39   
   40   	public SpeciesTable(SpeciesTableModel tablemodel, 
   41   			TableColumnModel columnmodel) {
   42   		super(tablemodel, columnmodel);
   43   		table_model = tablemodel;
   44   		setupCommon();
   45   	}
   46   
   47   	public final SpeciesTableModel getSpeciesTableModel() {
   48   		return table_model;
   49   	}
   50   
   51   	public void nullify() {
   52   		table_model = null;
   53   		mouse_listener = null;
   54   	}
   55   
   56   	///////////////// protected below ////////////////////////
   57   
   58   	protected final void checkMouseClick(Point point) {
   59   		if (columnAtPoint(point) < 1) {
   60   			int rowidx = rowAtPoint(point);
   61   			if (table_model.getSpeciesIdx(rowidx) < 0) {
   62   				table_model.toggleFamily(rowidx);
   63   			}
   64   		}
   65   	}
   66   
   67   	protected final void setupCommon() {
   68   		mouse_listener = new MouseAdapter() {
   69   			public void mouseClicked(MouseEvent me) {
   70   				checkMouseClick(me.getPoint());
   71   			}
   72   		};
   73   		if (table_model.isCollapsable()) {
   74   			addMouseListener(mouse_listener);
   75   		}
   76   	}
   77   	
   78   }
   79   

Save This Page
Home » openjdk-7 » net.sourceforge » jbird » [javadoc | source]