@Override
	public void showComponent(final JComponent comp, final String componentID,
			HelpLocation helpLoc) {

		HelpService help = Help.getHelpService();
		if (helpLoc != null && comp != null) {
			help.registerHelp(comp, helpLoc);
		}

		SwingUtilities.invokeLater(() -> {
			showMergeTool();
			Dimension oldSize = mergeTool.getSize();
			if (listingPlugin != null) {
				mergeTool.removePlugins(java.util.List.of(listingPlugin, goToPlugin));
				listingPlugin = null;
				goToPlugin = null;
			}
			if (comp == null) {
				mergePlugin.showDefaultComponent();
			}
			else {
				mergePlugin.setMergeComponent(comp, componentID);
			}
			Dimension newSize = mergeTool.getSize();
			if (!newSize.equals(oldSize)) {
				Point centerLoc = WindowUtilities.centerOnScreen(mergeTool.getSize());
				mergeTool.setLocation(centerLoc.x, centerLoc.y);
			}
		});
		if (comp != null) {
			inputReceived = false;
			// block until the user takes action
			waitForInput();
		}
	}
Show the component that is used to resolve conflicts.
<p>
This method is called by the MergeResolvers when user input is required. If the component is
not null, this method blocks until the user either cancels the merge process or resolves a
conflict. If comp is null, then the default component is displayed, and the method does not
wait for user input.

@param comp component to show; if component is null, show the default component and do not
           block
@param componentID id or name for the component
Ghidra/Features/Base/src/main/java/ghidra/app/merge/ProgramMultiUserMergeManager.java