- From: "Jacob M. H. Smith" <jacob.m.h.smith AT gmail.com>
- To: "graphstream-users AT litislab.fr" <graphstream-users AT litislab.fr>
- Subject: Problem with Diamond/Circle Arrowheads
- Date: Sun, 29 Sep 2013 11:40:43 +0200
Hello.
I am having some issues with the CSS code that makes the arrowheads a diamond
or a circle.
Here's my code (for the circle case):
/* =============================================== */
System.setProperty("org.graphstream.ui.renderer",
"org.graphstream.ui.j2dviewer.J2DGraphRenderer");
Graph graph = new SingleGraph("graph");
graph.display();
graph.clear();
graph.addAttribute("ui.quality");
graph.addAttribute("ui.antialias");
graph.addAttribute("ui.stylesheet",
"edge { arrow-shape: circle; }");
graph.addNode("A");
graph.addNode("B");
graph.addNode("C");
graph.addEdge("AB", "A", "B", true);
graph.addEdge("BC", "B", "C", true);
graph.addEdge("CA", "C", "A", true);
/* =============================================== */
This floods the standard error stream with NullPointerExceptions like this:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at
org.graphstream.ui.util.ShapeUtil$.evalTargetRadius2D(ShapeUtil.scala:56)
at
org.graphstream.ui.j2dviewer.renderer.shape.swing.CircleOnEdge.makeOnLine(ArrowShapes.scala:156)
at
org.graphstream.ui.j2dviewer.renderer.shape.swing.CircleOnEdge.make(ArrowShapes.scala:152)
at
org.graphstream.ui.j2dviewer.renderer.shape.swing.CircleOnEdge.render(ArrowShapes.scala:202)
at
org.graphstream.ui.j2dviewer.renderer.EdgeRenderer.renderElement(EdgeRenderer.scala:71)
at
org.graphstream.ui.j2dviewer.renderer.StyleRenderer$$anonfun$render$1.apply(StyleRenderer.scala:73)
at
org.graphstream.ui.j2dviewer.renderer.StyleRenderer$$anonfun$render$1.apply(StyleRenderer.scala:73)
at
org.graphstream.ui.j2dviewer.renderer.StyleRenderer$$anonfun$render$2.apply(StyleRenderer.scala:101)
at
org.graphstream.ui.j2dviewer.renderer.StyleRenderer$$anonfun$render$2.apply(StyleRenderer.scala:97)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at
org.graphstream.ui.j2dviewer.renderer.StyleRenderer.render(StyleRenderer.scala:97)
at
org.graphstream.ui.j2dviewer.renderer.StyleRenderer.render(StyleRenderer.scala:73)
at
org.graphstream.ui.j2dviewer.J2DGraphRenderer$$anonfun$render$2$$anonfun$apply$1.apply(J2DGraphRenderer.scala:223)
at
org.graphstream.ui.j2dviewer.J2DGraphRenderer$$anonfun$render$2$$anonfun$apply$1.apply(J2DGraphRenderer.scala:221)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at
org.graphstream.ui.j2dviewer.J2DGraphRenderer$$anonfun$render$2.apply(J2DGraphRenderer.scala:221)
at
org.graphstream.ui.j2dviewer.J2DGraphRenderer$$anonfun$render$2.apply(J2DGraphRenderer.scala:220)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at
org.graphstream.ui.j2dviewer.J2DGraphRenderer.render(J2DGraphRenderer.scala:220)
at
org.graphstream.ui.swingViewer.DefaultView.render(DefaultView.java:237)
at
org.graphstream.ui.swingViewer.DefaultView.paintComponent(DefaultView.java:172)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5221)
at
javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1508)
at
javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1439)
at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
at javax.swing.JComponent._paintImmediately(JComponent.java:5169)
at javax.swing.JComponent.paintImmediately(JComponent.java:4980)
at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
at
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
at
javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
at
javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1647)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Help would be appreciated.
Best regards,
Jacob
- Problem with Diamond/Circle Arrowheads, Jacob M. H. Smith, 29/09/2013
Archives gérées par MHonArc 2.6.16.