Bug 54347 [Dialogs] Provide "Yes No Always Never" dialog
In Debug UI, we define a dialog that prompts the user to answer Yes, No, Always, or Never. If anyone's interested, this code is generic and could be shipped as a JFace component. The dialog is in the org.eclipse.debug.ui project; the type name is AlwaysNeverDialog. The dialog supports passing in a preference store and preference key for the dialog to persist an Always or Never selection. For cases where clients don't have a preference store but still want to be able to get at the user's response, it alternatively supports passing in a string buffer where the dialog will store the "always/never/prompt" status.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/MessageDialogWithToggle.java
private boolean toggleState = false;
	private Button toggleButton = null;
	
	/**
	 * The preference store which will be affected by the toggle button
	 */
	IPreferenceStore fStore = null;
	/**
	 * Creates a message dialog with a toggle.
	 * See the superclass constructor for info on the other parameters.
	 * 
	 * @param toggleMessage the message for the toggle control, or <code>null</code> 
	 *   for the default message ("Do not show this message again").
	 * @param toggleState the initial state for the toggle 
	 * 
	 */
	public MessageDialogWithToggle(Shell parentShell, String dialogTitle, Image image, String message, int dialogImageType, String[] dialogButtonLabels, int defaultIndex, String toggleMessage, boolean toggleState) {
		super(parentShell, dialogTitle, image, message, dialogImageType, dialogButtonLabels, defaultIndex);
		this.toggleMessage = toggleMessage;
		this.toggleState = toggleState; 
	}
	/**
	 * Returns the toggle state.  This can be called even after the dialog
	 * is closed.
	 * 
	 * @return <code>true</code> if the toggle button is checked, 
	 *   <code>false</code> if not
	 */
	public boolean getToggleState() {
		return toggleState;