1 package prefuse.render; 2 3 import prefuse.data.expression.Predicate; 4 import prefuse.data.expression.parser.ExpressionParser; 5 import prefuse.util.PredicateChain; 6 import prefuse.visual.EdgeItem; 7 import prefuse.visual.VisualItem; 8 9 10 40 public class DefaultRendererFactory implements RendererFactory { 41 42 private PredicateChain m_chain = new PredicateChain(); 43 private Renderer m_itemRenderer; 44 private Renderer m_edgeRenderer; 45 46 53 public DefaultRendererFactory() { 54 this(new ShapeRenderer()); 55 } 56 57 65 public DefaultRendererFactory(Renderer itemRenderer) { 66 this(itemRenderer, new EdgeRenderer()); 67 } 68 69 77 public DefaultRendererFactory(Renderer itemRenderer, Renderer edgeRenderer) 78 { 79 m_itemRenderer = itemRenderer; 80 m_edgeRenderer = edgeRenderer; 81 } 82 83 85 94 public void setDefaultRenderer(Renderer r) { 95 m_itemRenderer = r; 96 } 97 98 104 public Renderer getDefaultRenderer() { 105 return m_itemRenderer; 106 } 107 108 117 public void setDefaultEdgeRenderer(Renderer r) { 118 m_edgeRenderer = r; 119 } 120 121 127 public Renderer getDefaultEdgeRenderer() { 128 return m_edgeRenderer; 129 } 130 131 140 public void add(Predicate p, Renderer r) { 141 m_chain.add(p, r); 142 } 143 144 154 public void add(String predicate, Renderer r) { 155 Predicate p = (Predicate)ExpressionParser.parse(predicate); 156 add(p, r); 157 } 158 159 168 public Renderer getRenderer(VisualItem item) { 169 Renderer r = (Renderer)m_chain.get(item); 170 if ( r != null ) 171 return r; 172 else if ( item instanceof EdgeItem ) 173 return m_edgeRenderer; 174 else 175 return m_itemRenderer; 176 } 177 178 } | Popular Tags |