/** * @see prefuse.controls.Control#itemDragged(prefuse.visual.VisualItem, java.awt.event.MouseEvent) */ public void itemDragged(VisualItem item, MouseEvent e) { if (!SwingUtilities.isLeftMouseButton(e)) return; if ( !(item instanceof NodeItem) ) return; Display d = (Display)e.getComponent(); tmp = d.getAbsoluteCoordinate(e.getPoint(), tmp); double dx = tmp.getX()-down.getX(); double dy = tmp.getY()-down.getY(); updateLocations((NodeItem)item, dx, dy); down.setLocation(tmp); item.getVisualization().repaint(); }
private void updateLocations(NodeItem n, double dx, double dy) { double x = n.getX(), y = n.getY(); n.setStartX(x); n.setStartY(y); x += dx; y += dy; n.setX(x); n.setY(y); n.setEndX(x); n.setEndY(y); Iterator children = n.children(); while ( children.hasNext() ) updateLocations((NodeItem)children.next(), dx, dy); }