diff options
author | David Inglis | 2005-06-07 20:17:24 +0000 |
---|---|---|
committer | David Inglis | 2005-06-07 20:17:24 +0000 |
commit | 1e9aa5ea9d9f3dd97f77f4ad731615b2c6913e83 (patch) | |
tree | 2a59c02aec3b2cf612794c5117ba26354cfc2ab4 | |
parent | e54921f1dd6c93d656e9d8004462dda31005f37d (diff) | |
download | org.eclipse.cdt-1e9aa5ea9d9f3dd97f77f4ad731615b2c6913e83.tar.gz org.eclipse.cdt-1e9aa5ea9d9f3dd97f77f4ad731615b2c6913e83.tar.xz org.eclipse.cdt-1e9aa5ea9d9f3dd97f77f4ad731615b2c6913e83.zip |
fixed bug #95885
-rw-r--r-- | core/org.eclipse.cdt.ui/ChangeLog | 4 | ||||
-rw-r--r-- | core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewCProjectWizard.java | 35 |
2 files changed, 26 insertions, 13 deletions
diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 4cbfe68bc1b..877768133c1 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,7 @@ +2005-06-07 David Inglis + Fixed PR#95885 Blocking UI on project creation + * src/org/eclipse/cdt/ui/wizards/NewCProjectWizards.java + 2005-02-25 Alain Magloire Fix PR 86718: Dialog shows twice * src/org/eclipse/cdt/internal/ui/cview/OpenProjectGroup.java diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewCProjectWizard.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewCProjectWizard.java index 5dbf4531da6..23e634f754c 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewCProjectWizard.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewCProjectWizard.java @@ -210,21 +210,30 @@ public abstract class NewCProjectWizard extends BasicNewResourceWizard implement public IRunnableWithProgress getRunnable() { return new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { + final IProgressMonitor fMonitor; if (monitor == null) { - monitor= new NullProgressMonitor(); + fMonitor= new NullProgressMonitor(); + } else { + fMonitor = monitor; } - monitor.beginTask(CUIPlugin.getResourceString(OP_DESC), 3); - - doRunPrologue(new SubProgressMonitor(monitor, 1)); - try { - doRun(new SubProgressMonitor(monitor, 1)); + fMonitor.beginTask(CUIPlugin.getResourceString(OP_DESC), 3); + final CoreException except[] = new CoreException[1]; + getShell().getDisplay().syncExec(new Runnable() { + public void run() { + doRunPrologue(new SubProgressMonitor(fMonitor, 1)); + try { + doRun(new SubProgressMonitor(fMonitor, 1)); + } + catch (CoreException e) { + except[0] = e; + } + doRunEpilogue(new SubProgressMonitor(fMonitor, 1)); + } + }); + if (except[0] != null) { + throw new InvocationTargetException(except[0]); } - catch (CoreException e) { - throw new InvocationTargetException(e); - } - doRunEpilogue(new SubProgressMonitor(monitor, 1)); - - monitor.done(); + fMonitor.done(); } }; } @@ -235,7 +244,7 @@ public abstract class NewCProjectWizard extends BasicNewResourceWizard implement protected boolean invokeRunnable(IRunnableWithProgress runnable) { IRunnableWithProgress op= new WorkspaceModifyDelegatingOperation(runnable); try { - getContainer().run(false, true, op); + getContainer().run(true, true, op); } catch (InvocationTargetException e) { Shell shell= getShell(); String title= CUIPlugin.getResourceString(OP_ERROR + ".title"); //$NON-NLS-1$ |