Bug 514355 - Offer "Retry" button in "Workspace unavailable" dialog
Added "Retry" button to retry loading a "Worksace unavailable"
Change-Id: I43e1a820a7a45be6e852bd040501d447c8233cce
Signed-off-by: Patrik Suzzi <psuzzi@gmail.com>
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java
index 3f162cf..e73976c 100644
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java
+++ b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java
@@ -11,6 +11,7 @@
* Lars Vogel <Lars.Vogel@gmail.com> - Bug 422954
* Christian Georgi (SAP) - Bug 423882 - Warn user if workspace is newer than IDE
* Andrey Loskutov <loskutov@gmx.de> - Bug 427393, 455162
+ * Patrik Suzzi <psuzzi@gmail.com> - Bug 514355
*******************************************************************************/
package org.eclipse.ui.internal.ide.application;
@@ -83,6 +84,11 @@
private static final String PROP_EXIT_CODE = "eclipse.exitcode"; //$NON-NLS-1$
+ /**
+ * Return value when the user wants to retry loading the current workspace
+ */
+ private static final int RETRY_LOAD = 0;
+
/**
* A special return code that will be recognized by the launcher and used to
* restart the workbench.
@@ -264,8 +270,13 @@
shell.setVisible(false);
}
}
+
+ int returnValue = -1;
+ URL workspaceUrl = null;
while (true) {
- URL workspaceUrl = promptForWorkspace(shell, launchData, force);
+ if (returnValue != RETRY_LOAD) {
+ workspaceUrl = promptForWorkspace(shell, launchData, force);
+ }
if (workspaceUrl == null) {
return EXIT_OK;
}
@@ -306,8 +317,12 @@
// by this point it has been determined that the workspace is
// already in use -- force the user to choose again
- MessageDialog.openError(shell, IDEWorkbenchMessages.IDEApplication_workspaceInUseTitle,
- NLS.bind(IDEWorkbenchMessages.IDEApplication_workspaceInUseMessage, workspaceUrl.getFile()));
+ MessageDialog dialog = new MessageDialog(shell, IDEWorkbenchMessages.IDEApplication_workspaceInUseTitle,
+ null, NLS.bind(IDEWorkbenchMessages.IDEApplication_workspaceInUseMessage, workspaceUrl.getFile()),
+ MessageDialog.ERROR, 1, IDEWorkbenchMessages.IDEApplication_workspaceInUse_Retry,
+ IDEWorkbenchMessages.IDEApplication_workspaceInUse_Ok);
+ // the return value influences the next loop's iteration
+ returnValue = dialog.open();
}
}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java
index bc327df..cd7a5b0 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java
@@ -18,7 +18,7 @@
* Lars Vogel <Lars.Vogel@vogella.com> - Bug 431862
* Christian Georgi (SAP SE) - bug 432480, bug 458811
* Jan-Ove Weichel <janove.weichel@vogella.com> - Bug 411578
- * Patrik Suzzi <psuzzi@gmail.com> - Bug 485201, 502050
+ * Patrik Suzzi <psuzzi@gmail.com> - Bug 485201, 502050, 514355
* Simon Scholz <simon.scholz@vogella.com> - Bug 486777
*******************************************************************************/
package org.eclipse.ui.internal.ide;
@@ -972,6 +972,8 @@
public static String IDEApplication_workspaceMandatoryMessage;
public static String IDEApplication_workspaceInUseTitle;
public static String IDEApplication_workspaceInUseMessage;
+ public static String IDEApplication_workspaceInUse_Ok;
+ public static String IDEApplication_workspaceInUse_Retry;
public static String IDEApplication_workspaceEmptyTitle;
public static String IDEApplication_workspaceEmptyMessage;
public static String IDEApplication_workspaceInvalidTitle;
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 b0277f0..ced1603 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
@@ -25,7 +25,7 @@
# - Bug 90292: Customizable strategy for unassociated files
# Robert Roth <robert.roth.off@gmail.com> - bug 310483, duplicate mnemonic
# Jan-Ove Weichel <janove.weichel@vogella.com> - Bug 411578
-# Patrik Suzzi <psuzzi@gmail.com> - Bug 485201
+# Patrik Suzzi <psuzzi@gmail.com> - Bug 485201, 514355
# Simon Scholz <simon.scholz@vogella.com> - Bug 486777
# Lars Vogel <Lars.Vogel@vogella.com> - Bug 431862
# Axel Richard <axel.richard@obeo.fr> - Bug 486644
@@ -996,6 +996,8 @@
IDEApplication_workspaceMandatoryMessage=IDEs need a valid workspace. Restart without the @none option.
IDEApplication_workspaceInUseTitle=Workspace Unavailable
IDEApplication_workspaceInUseMessage=The default workspace ''{0}'' is in use or cannot be created. Please choose a different one.
+IDEApplication_workspaceInUse_Ok=Ok
+IDEApplication_workspaceInUse_Retry=Retry
IDEApplication_workspaceEmptyTitle=Workspace Required
IDEApplication_workspaceEmptyMessage=Workspace field must not be empty; enter a path to continue.
IDEApplication_workspaceInvalidTitle=Invalid Workspace