private JPanel buildMainPanel(String actionString, Icon icon) {
		JPanel innerPanel = new JPanel();
		innerPanel.setLayout(new BoxLayout(innerPanel, BoxLayout.Y_AXIS));
		innerPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5));

		filePanel = new DomainFilesPanel(fileList, null);
		saveCopyCB = new GCheckBox("Save copy of the file with a .keep extension", true);
		JPanel cbPanel = new JPanel(new BorderLayout());
		cbPanel.add(saveCopyCB);

		JPanel iconPanel = new JPanel(new BorderLayout(10, 0));
		iconPanel.add(new GIconLabel(icon), BorderLayout.WEST);
		iconPanel.add(
			new GLabel("Undo " + actionString + " of the selected files:", SwingConstants.LEFT),
			BorderLayout.CENTER);

		innerPanel.add(Box.createVerticalStrut(10));
		innerPanel.add(iconPanel);
		innerPanel.add(Box.createVerticalStrut(5));
		innerPanel.add(filePanel);
		innerPanel.add(Box.createVerticalStrut(10));
		innerPanel.add(cbPanel);

		return innerPanel;
	}
Dialog that confirms undo of an action; specify whether a .keep file
should be created on the undo of the action.
Ghidra/Framework/Project/src/main/java/ghidra/framework/main/datatree/UndoActionDialog.java