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/IDEWorkbenchAdvisor.java
return;
			}
			IDEWorkbenchPlugin.getDefault().getPreferenceStore().setValue(IDEInternalPreferences.WELCOME_DIALOG, false);
			openWelcomeEditor(window, new WelcomeEditorInput(primaryInfo), null);
		} else {
			
			List welcomeFeatures = new ArrayList();
			for (Iterator it = getNewlyAddedFeatures().iterator(); it.hasNext(); ) {
				String versionedId = (String) it.next();
				String featureId = versionedId.substring(0, versionedId.indexOf(':'));
				
				AboutInfo info = null;
				AboutInfo[] infos = IDEWorkbenchPlugin.getDefault().getFeatureInfos();
				for (int i = 0; i < infos.length; i++) {
					if (featureId.equals(infos[i].getFeatureId())) {
						info = infos[i];
						break;
					}
				}
				if (info != null && info.getWelcomePageURL() != null) {
					welcomeFeatures.add(info);
					
					IPlatformConfiguration platformConfiguration = BootLoader.getCurrentPlatformConfiguration();
					IPlatformConfiguration.IFeatureEntry feature = platformConfiguration.findConfiguredFeatureEntry(featureId);
					if (feature != null) {
						String pi = feature.getFeaturePluginIdentifier();
						if (pi != null) {
							Platform.getPlugin(pi);
						}
					}