From ed55ad4157ed9cabd8197e3d4bf2e79b8d5b4041 Mon Sep 17 00:00:00 2001 From: Koen Aers Date: Wed, 29 Jan 2014 17:32:51 +0100 Subject: [PATCH] reenable fork when executing wizizards --- .../tools/forge/ui/ext/ForgeUIPrompt.java | 42 +++++++++++++++---- .../forge/ui/ext/wizards/ForgeWizard.java | 5 +-- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/plugins/org.jboss.tools.forge.ui.ext/src/org/jboss/tools/forge/ui/ext/ForgeUIPrompt.java b/plugins/org.jboss.tools.forge.ui.ext/src/org/jboss/tools/forge/ui/ext/ForgeUIPrompt.java index c9d5f77cf..e0f899c62 100644 --- a/plugins/org.jboss.tools.forge.ui.ext/src/org/jboss/tools/forge/ui/ext/ForgeUIPrompt.java +++ b/plugins/org.jboss.tools.forge.ui.ext/src/org/jboss/tools/forge/ui/ext/ForgeUIPrompt.java @@ -10,6 +10,7 @@ import org.eclipse.jface.dialogs.InputDialog; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.window.Window; +import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.jboss.forge.addon.ui.input.UIPrompt; @@ -19,27 +20,50 @@ */ public class ForgeUIPrompt implements UIPrompt { private final Shell shell; + private boolean booleanResult = false; + private String stringResult = null; public ForgeUIPrompt(Shell shell) { this.shell = shell; } @Override - public String prompt(String message) { - InputDialog dlg = new InputDialog(shell, "", message, "", null); - return (dlg.open() == Window.OK) ? dlg.getValue() : null; + public String prompt(final String message) { + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + InputDialog dlg = new InputDialog(shell, "", message, "", null); + stringResult = (dlg.open() == Window.OK) ? dlg.getValue() : null; + } + + }); + return stringResult; } @Override - public boolean promptBoolean(String message) { - return MessageDialog.openQuestion(shell, "Question", message); + public boolean promptBoolean(final String message) { + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + booleanResult = MessageDialog.openQuestion(shell, "Question", message);; + } + + }); + return booleanResult; } @Override - public String promptSecret(String message) { - // FIXME: Should mask the input - InputDialog dlg = new InputDialog(shell, "", message, "", null); - return (dlg.open() == Window.OK) ? dlg.getValue() : null; + public String promptSecret(final String message) { + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + // FIXME: Should mask the input + InputDialog dlg = new InputDialog(shell, "", message, "", null); + stringResult = (dlg.open() == Window.OK) ? dlg.getValue() : null; + } + + }); + return stringResult; } } diff --git a/plugins/org.jboss.tools.forge.ui.ext/src/org/jboss/tools/forge/ui/ext/wizards/ForgeWizard.java b/plugins/org.jboss.tools.forge.ui.ext/src/org/jboss/tools/forge/ui/ext/wizards/ForgeWizard.java index 7111a0765..4d83c4771 100644 --- a/plugins/org.jboss.tools.forge.ui.ext/src/org/jboss/tools/forge/ui/ext/wizards/ForgeWizard.java +++ b/plugins/org.jboss.tools.forge.ui.ext/src/org/jboss/tools/forge/ui/ext/wizards/ForgeWizard.java @@ -74,10 +74,7 @@ public boolean performFinish() { public void performFinish(final IRunnableContext container, final Shell shell) throws InvocationTargetException, InterruptedException { - // Cannot fork, otherwise Eclipse Shell in UIPrompt will throw an - // exception - boolean fork = false; - container.run(fork, true, new IRunnableWithProgress() { + container.run(true, true, new IRunnableWithProgress() { @Override public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {