From e45328dc4fbad19343519a17e6b61d2a893a056d Mon Sep 17 00:00:00 2001 From: Oleg Krasilnikov Date: Mon, 19 Mar 2007 13:49:48 +0000 Subject: [PATCH] progress bar for PerformOK --- .../eclipse/cdt/ui/newui/AbstractPage.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/AbstractPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/AbstractPage.java index cf11adb1d08..176a8841d39 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/AbstractPage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/AbstractPage.java @@ -395,15 +395,32 @@ implements */ public boolean performOk() { if (doneOK || noContentOnPage || !displayedConfig) return true; - forEach(ICPropertyTab.OK, null); - doneOK = true; // further pages need not to do anything + IRunnableWithProgress runnable = new IRunnableWithProgress() { + public void run(IProgressMonitor monitor) { + forEach(ICPropertyTab.OK, null); + doneOK = true; // further pages need not to do anything + try { +// CoreModel.getDefault().setProjectDescription(getProject(), prjd); + CoreModel.getDefault().setProjectDescription(getProject(), prjd, true, monitor); + } catch (CoreException e) { } + updateViews(internalElement); + } + }; + IRunnableWithProgress op = new WorkspaceModifyDelegatingOperation(runnable); try { - CoreModel.getDefault().setProjectDescription(getProject(), prjd); - } catch (CoreException e) { } - updateViews(internalElement); + new ProgressMonitorDialog(getShell()).run(false, true, op); + } catch (InvocationTargetException e) { + Throwable e1 = e.getTargetException(); + CUIPlugin.errorDialog(getShell(), + NewUIMessages.getResourceString("AbstractPage.8"), //$NON-NLS-1$ + NewUIMessages.getResourceString("AbstractPage.9"), e1, true); //$NON-NLS-1$ + return false; + } catch (InterruptedException e) {} return true; } + + /** * Apply changes for all tabs but for given page & current cfg only. * Called after "Apply" button pressed.