Bug 577476: Accessibility Issues With "Restart notification"

This basically reverts 839332d2

Also: Make all the "Restart dialog" look similar:
- Title now is in Title Case not Sentence style
- Title always is "xy Changed" not "xy Change"
- Text always is "Restart for ... to take full effect?"
- Buttons always are "Restart" and "Dont' restart"

Change-Id: Icac1b848ef48678753f392f954623ef21eb8f6ff
Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/188195
Tested-by: Platform Bot <platform-bot@eclipse.org>
Tested-by: Lars Vogel <Lars.Vogel@vogella.com>
Reviewed-by: Lars Vogel <Lars.Vogel@vogella.com>
Reviewed-by: Sebastian Ratz <sebastian.ratz@sap.com>
Reviewed-by: Matthias Becker <ma.becker@sap.com>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/messages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/messages.properties
index e23341f..0f61a7a 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/messages.properties
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/messages.properties
@@ -1099,10 +1099,10 @@
 ExtendedFileEditorsPreferencePage_strategyForUnassociatedFiles=&Open unassociated files with:
 ExtendedFileEditorsPreferencePage_labelNotResolved={0} (label not resolved)
 
-SystemSettingsChange_title = High Contrast Mode Change
-SystemSettingsChange_message = The high contrast mode has changed. You will need to restart the workbench to complete the change. Restart now?
-SystemSettingsChange_yes = Yes
-SystemSettingsChange_no = No
+SystemSettingsChange_title = High Contrast Mode Changed
+SystemSettingsChange_message = Restart for the theme changes to take full effect?
+SystemSettingsChange_yes = &Restart
+SystemSettingsChange_no = &Don't Restart
 
 IDEWorkbenchActivityHelper_jobName=Update Capability Enablement for Natures
 
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java
index 31695ad..3f2561a 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java
@@ -995,6 +995,7 @@
 	// Zoom change messages
 	public static String Workbench_zoomChangedTitle;
 	public static String Workbench_zoomChangedMessage;
-	public static String Workbench_zoomChangedRestart;
+	public static String Workbench_RestartButton;
+	public static String Workbench_DontRestartButton;
 
 }
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java
index fd492e7..a7506d7 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java
@@ -945,7 +945,7 @@
 					int dialogResponse = MessageDialog.open(MessageDialog.QUESTION, getShell(),
 							WorkbenchMessages.Workbench_zoomChangedTitle,
 							WorkbenchMessages.Workbench_zoomChangedMessage, SWT.NONE,
-							WorkbenchMessages.Workbench_zoomChangedRestart, IDialogConstants.NO_LABEL);
+							WorkbenchMessages.Workbench_RestartButton, WorkbenchMessages.Workbench_DontRestartButton);
 					if (event.doit && dialogResponse == 0) {
 						getWorkbenchImpl().restart(true);
 					}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java
index e40b754..ac7a10a 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java
@@ -20,7 +20,6 @@
 package org.eclipse.ui.internal.dialogs;
 
 import static org.eclipse.jface.viewers.LabelProvider.createTextProvider;
-import static org.eclipse.swt.events.SelectionListener.widgetSelectedAdapter;
 import static org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants.ATT_COLOR_AND_FONT_ID;
 import static org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants.ATT_OS_VERSION;
 import static org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants.ATT_THEME_ASSOCIATION;
@@ -49,9 +48,9 @@
 import org.eclipse.e4.ui.workbench.renderers.swt.CTabRendering;
 import org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer;
 import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.fieldassist.ControlDecoration;
 import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jface.notifications.AbstractNotificationPopup;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferencePage;
 import org.eclipse.jface.util.Util;
@@ -60,18 +59,16 @@
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.window.Window;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferenceConstants;
 import org.eclipse.ui.IWorkbenchPreferencePage;
@@ -109,8 +106,6 @@
 
 	private Button themingEnabled;
 
-	private NotificationPopUp notificationPopUp;
-
 	@Override
 	protected Control createContents(Composite parent) {
 		initializeDialogUnits(parent);
@@ -304,22 +299,29 @@
 			colorFontsDecorator.hide();
 
 			if (themeChanged || colorsAndFontsThemeChanged) {
-				if (notificationPopUp == null) {
-					notificationPopUp = new NotificationPopUp(getShell().getDisplay());
-					notificationPopUp.open();
-				}
+				showRestartDialog();
 			}
 		}
 		if (themingEnabledChanged) {
-			if (notificationPopUp == null) {
-				notificationPopUp = new NotificationPopUp(getShell().getDisplay());
-				notificationPopUp.open();
-			}
+			showRestartDialog();
 		}
 
 		return super.performOk();
 	}
 
+	/**
+	 *
+	 */
+	private void showRestartDialog() {
+		if (new MessageDialog(null, WorkbenchMessages.ThemeChangeWarningTitle, null,
+				WorkbenchMessages.ThemeChangeWarningText,
+				MessageDialog.QUESTION, 2, WorkbenchMessages.Workbench_RestartButton,
+				WorkbenchMessages.Workbench_DontRestartButton)
+						.open() == Window.OK) {
+			PlatformUI.getWorkbench().restart();
+		}
+	}
+
 	private IEclipsePreferences getSwtRendererPreferences() {
 		return InstanceScope.INSTANCE.getNode("org.eclipse.e4.ui.workbench.renderers.swt"); //$NON-NLS-1$
 	}
@@ -517,28 +519,4 @@
 
 	}
 
-	private class NotificationPopUp extends AbstractNotificationPopup {
-
-		public NotificationPopUp(Display display) {
-			super(display);
-			setDelayClose(0);
-			setParentShell(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
-		}
-
-		@Override
-		protected String getPopupShellTitle() {
-			return WorkbenchMessages.ThemeChangeWarningTitle;
-		}
-
-
-		@Override
-		protected void createContentArea(Composite parent) {
-			parent.setLayout(new RowLayout());
-
-			Link link = new Link(parent, SWT.WRAP);
-			link.setText(WorkbenchMessages.ThemeChangeWarningHyperlinkedText);
-			link.addSelectionListener(widgetSelectedAdapter(e -> PlatformUI.getWorkbench().restart(true)));
-		}
-	}
-
 }
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties
index c3f93d1..aa50d81 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties
@@ -494,9 +494,8 @@
 PreferencePage_noDescription = (No description available)
 PreferencePageParameterValues_pageLabelSeparator = \ >\ 
 ThemingEnabled = E&nable theming
-ThemeChangeWarningText = A restart is required for the theme change to take full effect. 
-ThemeChangeWarningHyperlinkedText = A <a>restart</a> is required for the theme change to take full effect. 
-ThemeChangeWarningTitle = Theme change 
+ThemeChangeWarningText = Restart for the theme changes to take full effect?
+ThemeChangeWarningTitle = Theme Changed 
 # --- Workbench -----
 WorkbenchPreference_openMode=Open mode
 WorkbenchPreference_doubleClick=D&ouble click
@@ -1003,6 +1002,7 @@
 Util_List={0}, {1}
 
 # Zoom change messages
-Workbench_zoomChangedTitle=Zoom changed
+Workbench_zoomChangedTitle=Zoom Changed
 Workbench_zoomChangedMessage=Restart for the zoom changes to take full effect?
-Workbench_zoomChangedRestart=&Restart Now
+Workbench_RestartButton=&Restart
+Workbench_DontRestartButton=&Don't restart
diff --git a/bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF
index 00004f9..deeeb80 100644
--- a/bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF
@@ -133,7 +133,6 @@
  org.eclipse.e4.ui.workbench.modeling,
  org.eclipse.e4.ui.workbench.renderers.swt,
  org.eclipse.emf.common.util,
- org.eclipse.jface.notifications,
  org.osgi.service.component.annotations;version="1.2.0";resolution:=optional,
  org.osgi.service.event;version="1.2.0",
  org.w3c.dom,