protected void isolateVertex(AbstractTestVertex v) {
		GraphViewer<AbstractTestVertex, TestEdge> viewer = graphComponent.getPrimaryViewer();
		Layout<AbstractTestVertex, TestEdge> layout = viewer.getGraphLayout();
		Rectangle vBounds = GraphViewerUtils.getVertexBoundsInLayoutSpace(viewer, v);

		boolean hit = false;
		Collection<AbstractTestVertex> others = new HashSet<>(graph.getVertices());
		others.remove(v);
		for (AbstractTestVertex other : others) {
			Rectangle otherBounds = GraphViewerUtils.getVertexBoundsInLayoutSpace(viewer, other);
			if (vBounds.intersects(otherBounds)) {
				hit = true;
				Point p = vBounds.getLocation();
				int w = (int) vBounds.getWidth();
				int h = (int) vBounds.getHeight();
				Point newPoint = new Point(p.x + w, p.y + h);
				swing(() -> layout.setLocation(v, newPoint));
				viewer.repaint();
				sleep(50); // let us see the effect
				waitForSwing();
			}
		}

		if (hit) {
			// keep moving until we are clear of other vertices
			isolateVertex(v);
		}
	}
Moves the given vertex as necessary so that it is not touching any other vertex

@param v the vertex
Ghidra/Framework/Graph/src/test.slow/java/ghidra/graph/viewer/AbstractVisualGraphTest.java