package prefuse.data.util;
import prefuse.data.column.Column;
import prefuse.data.event.ProjectionListener;
/**
* Interface for filtering only a subset of a Table columns, computing
* a projection of the available data fields. Used in conjunction with
* CascadedTable instances to control what fields are inherited from
* a parent table.
*
* @author <a href="http://jheer.org">jeffrey heer</a>
*/
public interface ColumnProjection {
/**
* Determine if the given Column should be included.
* @param col the Column to test
* @param name the name of the column
* @return true if the column passes the projection, false otherwise
*/
public boolean include(Column col, String name);
/**
* Add a listener to this column projection
* @param lstnr the listener to add
*/
public void addProjectionListener(ProjectionListener lstnr);
/**
* Remove a listener from this column projection
* @param lstnr the listener to remove
*/
public void removeProjectionListener(ProjectionListener lstnr);
} // end of interface ColumnProjection