protected void setGraphComponent(GraphComponent<V, E, G> newComponent) {

		disposeViewer();

		this.graphComponent = newComponent;

		//
		// Initialize
		//
		graphComponent.setPopupsVisible(showPopups);

		if (graphInfo != null) {
			graphComponent.setGraphPerspective(graphInfo);
			graphInfo = null;
		}

		graphComponent.setVertexHoverPathHighlightMode(vertexHoverHighlightMode);
		graphComponent.setVertexFocusPathHighlightMode(vertexFocusHighlightMode);

		GraphViewer<V, E> viewer = graphComponent.getPrimaryViewer();
		if (tooltipProvider != null) {
			viewer.setVertexTooltipProvider(tooltipProvider);
		}

		//
		// Wire to the UI
		//
		JComponent component = graphComponent.getComponent();
		Rectangle viewPanelBounds = viewContentPanel.getBounds();
		component.setBounds(viewPanelBounds);
		component.doLayout();
		viewContentPanel.removeAll();
		viewContentPanel.add(component);
		viewContentPanel.validate();

		undockedSatelliteContentPanel.removeAll();

		graphComponent.setVertexFocusListener(internalFocusListener);
		graphComponent.setVertexClickListener(internalVertexClickListener);

		graphComponent.setSatelliteLisetener(internalSatelliteListener);
		graphComponent.setInitialSatelliteState(showSatellite, satelliteDocked);

		if (!satelliteDocked) {
			// we must update the undocked panel's component since it may have an old reference
			undockedSatelliteContentPanel.add(graphComponent.getSatelliteContentComponent());
			undockedSatelliteContentPanel.validate();
		}
		graphComponent.setSatellitePosition(satellitePosition);
	}
Sets a listener that allows clients to be notified of vertex double-clicks.  Normal
mouse processing is handled by the {@link VisualGraphMousePlugin} class.  This is a
convenience method so that clients do not have to deal with the mouse plugin.

@param l the listener
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/VisualGraphView.java