@Override
	void dispose() {

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

		MarkerService markerService = controller.getService(MarkerService.class);
		if (markerService != null) {
			markerService.removeChangeListener(markerChangeListener);
		}

		removeAll();

		listingPanel.setStringSelectionListener(null);
		listingPanel.removeButtonPressedListener(
			controller.getSharedHighlighterButtonPressedListener());
		listingPanel.dispose();

		if (previewListingPanel != null) {
			previewListingPanel.dispose();
		}

		xrefsAction.dispose();
		setVertexMostRecentAction.dispose();

		tool.removeServiceListener(serviceChangeListener);

		installedHoverServices.clear();

		genericHeader.dispose();

		listingPanel = null;
		fieldPanel = null;
		previewListingPanel = null;
		tooltipTitleLabel = null;
		toolTipComponent = null;
		genericHeader = null;

		super.dispose();
	}
Signals to rebuild this component's data model.  This call should not do any real work
if the model is not 'dirty'.
Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/graph/vertex/ListingGraphComponentPanel.java