protected void chooseProgramContext(final String registerName, final int option,
			final boolean useForAll) throws Exception {
		Window window = SwingUtilities.getWindowAncestor(getMergePanel());
		final VerticalChoicesPanel verticalChoicesPanel =
			findComponent(window, VerticalChoicesPanel.class);
		TitledBorder titledBorder = (TitledBorder) getInstanceField("border", verticalChoicesPanel);
		String title = titledBorder.getTitle();
		assertEquals("Resolve \"" + registerName + "\" Register Value Conflict", title);

		if (option == CANCELED) {
			pressButtonByText(window, "Cancel", false);
			return;
		}

		String componentName = null;
		switch (option) {
			case KEEP_LATEST:
				componentName = LATEST_BUTTON;
				break;
			case KEEP_MY:
				componentName = MY_BUTTON;
				break;
			case KEEP_ORIGINAL:
				componentName = ORIGINAL_BUTTON;
				break;
			default:
				Assert.fail("Cannot choose the unrecognized option of " + option + ".");
		}
		AbstractButton button =
			(AbstractButton) findComponentByName(verticalChoicesPanel, componentName);
		assertNotNull(button);
		pressButton(button, false);

		setUseForAll(useForAll, VerticalChoicesPanel.class);
		waitForApply(true);

		Window windowAncestor = SwingUtilities.getWindowAncestor(getMergePanel());
		pressButtonByText(windowAncestor, "Apply");
		waitForApply(false);
	}
Makes a user choice as indicated by option. This is equivalent to the user
clicking a mouse on a radio button indicating which program version to choose.
It can also be used to press the Cancel button on the merge.
@param option indicates the button to choose.
<br>One of:
<ul>
<li>KEEP_LATEST</li>
<li>KEEP_MY</li>
<li>CANCEL</li>
</ul>
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/AbstractListingMergeManagerTest.java