public void dispose() {

		if (graph != null) {
			graph.removeGraphChangeListener(graphChangeListener);
			VisualGraphLayout<V, E> layout = graph.getLayout();
			layout.removeLayoutListener(layoutListener);
		}

		//
		// Let's go a bit overboard and help the garbage collector cleanup by nulling out
		// references and removing the data from Jung's graph
		//

		Layout<V, E> layout = primaryViewer.getGraphLayout();
		if (layout instanceof Caching) {
			((Caching) layout).clear();
		}

		layout = satelliteViewer.getGraphLayout();
		if (layout instanceof Caching) {
			((Caching) layout).clear();
		}

		gPickedState.removePickingListener(vertexPickingListener);

		PickedState<V> vertexState = primaryViewer.getPickedVertexState();
		vertexState.clear();
		vertexState = satelliteViewer.getPickedVertexState();
		vertexState.clear();

		PickedState<E> edgeState = primaryViewer.getPickedEdgeState();
		edgeState.clear();
		edgeState = primaryViewer.getPickedEdgeState();
		edgeState.clear();

		primaryViewer.dispose();

		undockedSatellitePanel.removeAll();
		undockedSatellitePanel.repaint();
		satelliteViewer.removeAll();

		primaryGraphMouse.dispose();
		satelliteGraphMouse.dispose();

		layeredPane.removeAll();
		layeredPane = null;

		mainPanel.removeAll();
		mainPanel = null;

		primaryViewer = null;
		satelliteViewer = null;
		graphPerspectiveInfo = null;
		satelliteListener = null;
		graph = null;
	}
Sets the given vertex to be the focused vertex.  This will be the only focused vertex.

@param vertex the vertex
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/GraphComponent.java