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
}
			}
	
			int wCount = getWorkbenchConfigurer().getWorkbench().getWorkbenchWindowCount();
			for (int i = 0; i < welcomeFeatures.size(); i++) {
				AboutInfo newInfo = (AboutInfo) welcomeFeatures.get(i);
				String id = newInfo.getWelcomePerspectiveId();
				
				if (id == null || i >= wCount) {
					openWelcomeEditor(window, new WelcomeEditorInput(newInfo), id);
				}
			}
		}
	}
	
	/**
	 * Returns the set of versioned feature ids of all installed features.
	 * The format of the ids are featureId + ":" + versionId.
	 * The feature set excludes features that do not have their own
	 * feature plug-in.
	 * 
	 * @return set of versioned feature ids (element type: <code>String</code>)
	 * @since 3.0
	 */
	private Set computeFeatureSet() {
		IPlatformConfiguration platformConfiguration = BootLoader.getCurrentPlatformConfiguration();
		IPlatformConfiguration.IFeatureEntry[] features = platformConfiguration.getConfiguredFeatureEntries();
		Set ids = new HashSet(features.length);
		for (int i = 0; i < features.length; i++) {
			IPlatformConfiguration.IFeatureEntry feature = features[i];