VerticalChoicesPanel getConflictPanel(IDGroup idGroup, ChangeListener listener) {
		if (conflictPanel == null) {
			conflictPanel = new VerticalChoicesPanel();
			conflictPanel.setTitle(getConflictType());
		}
		conflictPanel.clear();
		// Initialize the conflict panel.
		conflictPanel.setHeader(getConflictInfo(idGroup, 1, 1));

		conflictPanel.setRowHeader(getExternalNameInfo(null, null, null, null));
		ExternalManager latestMgr = latestPgm.getExternalManager();
		ExternalManager myMgr = myPgm.getExternalManager();
		String latestName = idGroup.getLatestName();
		String myName = idGroup.getMyName();
		String originalName = idGroup.getOriginalName();
		boolean inLatest = (latestName != null) ? latestMgr.contains(latestName) : false;
		boolean inMy = (myName != null) ? myMgr.contains(myName) : false;
		String latestPrefix = (inLatest) ? "Change as in '" : "Remove as in '";
		String myPrefix = (inMy) ? "Change as in '" : "Remove as in '";
		String suffix = "' version";
		conflictPanel.addRadioButtonRow(
			getExternalNameInfo(latestPgm, latestName, latestPrefix, suffix), LATEST_BUTTON_NAME,
			KEEP_LATEST, listener);
		conflictPanel.addRadioButtonRow(getExternalNameInfo(myPgm, myName, myPrefix, suffix),
			CHECKED_OUT_BUTTON_NAME, KEEP_MY, listener);
		conflictPanel.addInfoRow(getExternalNameInfo(originalPgm, originalName, "'", suffix));
		return conflictPanel;
	}
Gets the conflict resolution panel to display
@param idGroup the symbol ID group for the external program (Library) in conflict.
@param listener the listener for the user's choice when resolving the conflict.
@return the panel.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalProgramMerger.java