protected void build() {

		graph.addGraphChangeListener(graphChangeListener);

		VisualGraphLayout<V, E> layout = buildLayout();

		// a big size gives plenty of room to layouts that respect size (the layout uses the
		// initial size of the viewer)
		Dimension mainViewerSize = new Dimension(4000, 4000);
		primaryViewer = buildPrimaryGraphViewer(layout, mainViewerSize);
		decoratePrimaryViewer(primaryViewer, layout);

		// this size forces the satellite to be exactly this size and no bigger
		Dimension satelliteSize = new Dimension(300, 300);
		satelliteViewer = buildSatelliteViewer(primaryViewer, layout, satelliteSize);
		decorateSatelliteViewer(satelliteViewer, layout);

		// install into the view updater
		VisualGraphViewUpdater<V, E> updater = primaryViewer.getViewUpdater();
		updater.setSatelliteViewer(satelliteViewer);

		staleGraphViewPanel = buildStaleLayoutPanel();

		// hover highlight mouse plugin (must be first; does not consume events)
		primaryGraphMouse.prepend(
			new VisualGraphHoverMousePlugin<>(this, primaryViewer, satelliteViewer));
		satelliteGraphMouse.prepend(
			new VisualGraphHoverMousePlugin<>(this, satelliteViewer, primaryViewer));

		primaryGraphMouse.prepend(new VertexClickMousePlugin());

		createGUIComponents(primaryViewer, satelliteViewer);

		ToolTipManager.sharedInstance().registerComponent(primaryViewer);
		ToolTipManager.sharedInstance().registerComponent(satelliteViewer);
	}
A component that contains primary and satellite graph views.  This viewer provides
methods for manipulating the graph using the mouse.

<p>To gain the full functionality offered by this class, clients will need to subclass
this class and override {@link #createPrimaryGraphViewer(VisualGraphLayout, Dimension)}
and {@link #createSatelliteGraphViewer(GraphViewer, Dimension)} as needed.   This allows
them to customize renderers and other viewer attributes.  To use the subclass, see the
{@link VisualGraphView} and its <code>installGraphViewer()</code> method.

@param <V> the vertex type
@param <E> the edge type
@param <G> the graph type

@see GraphViewer
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/GraphComponent.java