1 package prefuse.action.assignment; 2 3 import java.awt.BasicStroke ; 4 import java.awt.Stroke ; 5 import java.util.logging.Logger ; 6 7 import prefuse.action.EncoderAction; 8 import prefuse.data.expression.Predicate; 9 import prefuse.data.expression.parser.ExpressionParser; 10 import prefuse.util.StrokeLib; 11 import prefuse.visual.VisualItem; 12 13 14 35 public class StrokeAction extends EncoderAction { 36 37 protected BasicStroke defaultStroke = StrokeLib.getStroke(1.0f); 38 39 42 public StrokeAction() { 43 super(); 44 } 45 46 50 public StrokeAction(String group) { 51 super(group); 52 } 53 54 59 public StrokeAction(String group, BasicStroke defaultStroke) { 60 super(group); 61 this.defaultStroke = defaultStroke; 62 } 63 64 66 71 public void setDefaultStroke(BasicStroke f) { 72 defaultStroke = f; 73 } 74 75 79 public BasicStroke getDefaultStroke() { 80 return defaultStroke; 81 } 82 83 90 public void add(Predicate p, BasicStroke stroke) { 91 super.add(p, stroke); 92 } 93 94 104 public void add(String expr, BasicStroke stroke) { 105 Predicate p = (Predicate)ExpressionParser.parse(expr); 106 add(p, stroke); 107 } 108 109 116 public void add(Predicate p, StrokeAction f) { 117 super.add(p, f); 118 } 119 120 130 public void add(String expr, StrokeAction f) { 131 Predicate p = (Predicate)ExpressionParser.parse(expr); 132 super.add(p, f); 133 } 134 135 137 140 public void process(VisualItem item, double frac) { 141 item.setStroke(getStroke(item)); 142 } 143 144 150 public BasicStroke getStroke(VisualItem item) { 151 Object o = lookup(item); 152 if ( o != null ) { 153 if ( o instanceof StrokeAction ) { 154 return ((StrokeAction)o).getStroke(item); 155 } else if ( o instanceof Stroke ) { 156 return (BasicStroke )o; 157 } else { 158 Logger.getLogger(this.getClass().getName()) 159 .warning("Unrecognized Object from predicate chain."); 160 } 161 } 162 return defaultStroke; 163 } 164 165 } | Popular Tags |