KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > prefuse > action > filter > VisibilityFilter


1 package prefuse.action.filter;
2
3 import java.util.Iterator JavaDoc;
4
5 import prefuse.Visualization;
6 import prefuse.action.GroupAction;
7 import prefuse.data.expression.OrPredicate;
8 import prefuse.data.expression.Predicate;
9 import prefuse.util.PrefuseLib;
10 import prefuse.visual.VisualItem;
11 import prefuse.visual.expression.VisiblePredicate;
12
13 /**
14  * Filter Action that sets visible all items that meet a given Predicate
15  * condition and sets all other items invisible.
16  *
17  * @author <a HREF="http://jheer.org">jeffrey heer</a>
18  */

19 public class VisibilityFilter extends GroupAction {
20     
21     private Predicate m_filter;
22     private Predicate m_predicate;
23     
24     /**
25      * Create a new VisibilityFilter.
26      * @param p the test predicate used to determine visibility
27      */

28     public VisibilityFilter(Predicate p) {
29         setPredicate(p);
30     }
31
32     /**
33      * Create a new VisibilityFilter.
34      * @param group the data group to process
35      * @param p the test predicate used to determine visibility
36      */

37     public VisibilityFilter(String JavaDoc group, Predicate p) {
38         super(group);
39         setPredicate(p);
40     }
41
42     /**
43      * Create a new VisibilityFilter.
44      * @param vis the Visualization to process
45      * @param group the data group to process
46      * @param p the test predicate used to determine visibility
47      */

48     public VisibilityFilter(Visualization vis, String JavaDoc group, Predicate p) {
49         super(vis, group);
50         setPredicate(p);
51     }
52
53     /**
54      * Set the test predicate used to determine visibility.
55      * @param p the test predicate to set
56      */

57     protected void setPredicate(Predicate p) {
58         m_predicate = p;
59         m_filter = new OrPredicate(p, VisiblePredicate.TRUE);
60     }
61     
62     /**
63      * @see prefuse.action.Action#run(double)
64      */

65     public void run(double frac) {
66         Iterator JavaDoc items = m_vis.items(m_group, m_filter);
67         while ( items.hasNext() ) {
68             VisualItem item = (VisualItem)items.next();
69             PrefuseLib.updateVisible(item, m_predicate.getBoolean(item));
70         }
71     }
72
73 } // end of class VisibilityAction
74
Popular Tags