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/wizards/newresource/BasicNewProjectResourceWizard.java
/**
 * Stores the configuration element for the wizard.  The config element will be used
 * in <code>performFinish</code> to set the result perspective.
 */
public void setInitializationData(IConfigurationElement cfig, String propertyName, Object data) {
	configElement = cfig;
}
/**
 * Updates the perspective for the active page within the window.
 */
protected void updatePerspective() {
	updatePerspective(configElement);
}
/**
 * Updates the perspective based on the current settings
 * in the Workbench/Perspectives preference page.
 * <p>
 * A new project wizard class will need to implement the
 * <code>IExecutableExtension</code> interface so as to gain
 * access to the wizard's <code>IConfigurationElement</code>.
 * That is the configuration element to pass into this method.
 * </p>
 *
 * @see IWorkbenchPreferenceConstants#OPEN_PERSPECTIVE_WINDOW
 * @see IWorkbenchPreferenceConstants#OPEN_PERSPECTIVE_PAGE
 * @see IWorkbenchPreferenceConstants#OPEN_PERSPECTIVE_REPLACE
 * @see IWorkbenchPreferenceConstants#NO_NEW_PERSPECTIVE
 */
public static void updatePerspective(IConfigurationElement configElement) {