01: package prefuse.data.util;
02:
03: import prefuse.data.column.Column;
04: import prefuse.data.event.ProjectionListener;
05:
06: /**
07: * Interface for filtering only a subset of a Table columns, computing
08: * a projection of the available data fields. Used in conjunction with
09: * CascadedTable instances to control what fields are inherited from
10: * a parent table.
11: *
12: * @author <a href="http://jheer.org">jeffrey heer</a>
13: */
14: public interface ColumnProjection {
15:
16: /**
17: * Determine if the given Column should be included.
18: * @param col the Column to test
19: * @param name the name of the column
20: * @return true if the column passes the projection, false otherwise
21: */
22: public boolean include(Column col, String name);
23:
24: /**
25: * Add a listener to this column projection
26: * @param lstnr the listener to add
27: */
28: public void addProjectionListener(ProjectionListener lstnr);
29:
30: /**
31: * Remove a listener from this column projection
32: * @param lstnr the listener to remove
33: */
34: public void removeProjectionListener(ProjectionListener lstnr);
35:
36: } // end of interface ColumnProjection
|