public void EdgeAnimator(Pair edge) { Layout<String, String> layout = vv.getGraphLayout(); String first = (String) edge.getFirst(); String second = (String) edge.getSecond(); Point2D q = layout.transform(first); Point2D y = layout.transform(second); Line2D line = new Line2D.Double(q.getX(), q.getY(), y.getX(), y.getY()); Point2D lvc = vv.getRenderContext().getMultiLayerTransformer().inverseTransform(vv.getCenter()); final double dx = (lvc.getX() - line.getBounds().getCenterX()) / 10; final double dy = (lvc.getY() - line.getBounds().getCenterY()) / 10; Runnable edgeAnimator = new Runnable() { public void run() { for (int i = 0; i < 10; i++) { vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT).translate(dx, dy); try { Thread.sleep(100); } catch (InterruptedException ex) { } } } }; Thread thread = new Thread(edgeAnimator); thread.start(); }
final AffineTransform at = AffineTransform.getScaleInstance(0.5 / z, 0.5 / z); final TextLayout layout = basicLayout(Relations.nameOf(supportClass), at); paint(layout, GeoUtil.centerOf(line.getBounds()), AREA_CENTER);
entities = info.getOwner().getEntityCollection(); if (entities != null) { addEntity(entities, line.getBounds(), dataset, series, item, 0.0, 0.0);
entities = info.getOwner().getEntityCollection(); if (entities != null) { addEntity(entities, line.getBounds(), dataset, series, item, 0.0, 0.0);
|| anchor == RectangleAnchor.BOTTOM || anchor == RectangleAnchor.BOTTOM_RIGHT); Rectangle rect = line.getBounds();
|| anchor == RectangleAnchor.BOTTOM || anchor == RectangleAnchor.BOTTOM_RIGHT); Rectangle rect = line.getBounds();
addEntity(entities, line.getBounds(), dataset, series, item, 0.0, 0.0);
addItemEntity(entities, dataset, row, column, line.getBounds());
addItemEntity(entities, dataset, row, column, line.getBounds());