package prefuse.visual.expression; import prefuse.data.Schema; import prefuse.data.Tuple; import prefuse.data.expression.Predicate; import prefuse.visual.VisualItem; /** * Expression that indicates if an item is currently a member of a particular * data group. The data group name is provided by a String-valued * sub-expression. * * @author <a href="http://jheer.org">jeffrey heer</a> */ public class InGroupPredicate extends GroupExpression implements Predicate { /** * Create a new InGroupPredicate. */ public InGroupPredicate() { } /** * Create a new InGroupPredicate. * @param group @param group the data group name to use as a parameter */ public InGroupPredicate(String group) { super(group); } /** * @see prefuse.data.expression.Expression#get(prefuse.data.Tuple) */ public Object get(Tuple t) { return getBoolean(t) ? Boolean.TRUE : Boolean.FALSE; } /** * @see prefuse.data.expression.Expression#getBoolean(prefuse.data.Tuple) */ public boolean getBoolean(Tuple t) { if ( !(t instanceof VisualItem) ) return false; String group = getGroup(t); if ( group == null ) { return false; } VisualItem item = (VisualItem)t; return item.getVisualization().isInGroup(item, group); } /** * @see prefuse.data.expression.Function#getName() */ public String getName() { return "INGROUP"; } /** * @see prefuse.data.expression.Expression#getType(prefuse.data.Schema) */ public Class getType(Schema s) { return boolean.class; } } // end of class InGroupPredicate