private void showMergePanel(final ListingMergePanel listingPanel, final Address addr,
			final int programMergeCommentType, TaskMonitor monitor) {
		this.currentAddress = addr;
		this.programMergeType = programMergeCommentType;
		this.currentMonitor = monitor;
		try {
			final ChangeListener changeListener = new ChangeListener() {
				@Override
				public void stateChanged(ChangeEvent e) {
					conflictOption = conflictPanel.getSelectedOptions();
					if (conflictOption == ASK_USER) {
						if (mergeManager != null) {
							mergeManager.setApplyEnabled(false);
							try {
								merge(addr, programMergeCommentType, KEEP_LATEST, currentMonitor);
							}
							catch (CancelledException ce) {
							}
						}
						return;
					}
					if (mergeManager != null) {
						mergeManager.clearStatusText();
					}
					try {
						merge(addr, programMergeCommentType, conflictOption, currentMonitor);
					}
					catch (CancelledException ce) {
					}
					if (mergeManager != null) {
						mergeManager.setApplyEnabled(true);
					}
				}
			};
			SwingUtilities.invokeAndWait(new Runnable() {
				@Override
				public void run() {
					setupConflictsPanel(listingPanel, CommentMerger.this.currentAddress,
						CommentMerger.this.programMergeType, changeListener);
					listingPanel.setBottomComponent(conflictPanel);
				}
			});
			SwingUtilities.invokeLater(new Runnable() {
				@Override
				public void run() {
					Address addressToShow = CommentMerger.this.currentAddress;
					listingPanel.clearAllBackgrounds();
					if (addressToShow != null) {
						listingPanel.paintAllBackgrounds(getCodeUnitAddressSet(addressToShow));
						listingPanel.goTo(addressToShow);
					}
				}
			});
		}
		catch (InterruptedException e) {
		}
		catch (InvocationTargetException e) {
		}
		if (mergeManager != null) {
			mergeManager.setApplyEnabled(false);
			mergeManager.showListingMergePanel(currentAddress);
		}
		// block until the user either cancels or hits the "Apply" button
		// on the merge dialog...
	}
Determines if there is a conflict for the indicated type of comment
at the specified address.
@param addr
@param programMergeCommentType
@return
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/CommentMerger.java