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
});
	}
	/* (non-Javadoc)
	 * @see org.eclipse.ui.application.WorkbenchAdvisor#postWindowRestore
	 */
	public void postWindowRestore(IWorkbenchWindowConfigurer windowConfigurer) throws WorkbenchException {
		int index = PlatformUI.getWorkbench().getWorkbenchWindowCount() - 1;
		
		if (index >=0 && welcomePerspectiveInfos != null && index < welcomePerspectiveInfos.size()) {
			
			IWorkbenchPage page = windowConfigurer.getWindow().getActivePage();
			if (page == null) {
				IWorkbenchPage pages[] = windowConfigurer.getWindow().getPages();
				if (pages != null && pages.length > 0)
					page = pages[0];
			}
			
			String perspectiveId = ((AboutInfo) welcomePerspectiveInfos.get(index)).getWelcomePerspectiveId();
			if (page == null) {
				IAdaptable root = getDefaultPageInput();
				page = windowConfigurer.getWindow().openPage(perspectiveId, root);
			} else {
				IPerspectiveRegistry reg = PlatformUI.getWorkbench().getPerspectiveRegistry();
				IPerspectiveDescriptor desc = reg.findPerspectiveWithId(perspectiveId);
				if (desc != null) {
					page.setPerspective(desc);
				}
			}
			
			windowConfigurer.getWindow().setActivePage(page);