Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 355227 - New project creation progress should appear in progress monitor at bottom of wizard
Summary: New project creation progress should appear in progress monitor at bottom of ...
Status: CLOSED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: EDT (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 minor (vote)
Target Milestone: ---   Edit
Assignee: Xiao Bin Chen CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-19 10:24 EDT by Will Smythe CLA
Modified: 2017-02-23 14:17 EST (History)
1 user (show)

See Also:


Attachments
Complete this functionality (4.73 KB, patch)
2011-09-06 06:21 EDT, Huang Ji Yong CLA
lasher: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Will Smythe CLA 2011-08-19 10:24:56 EDT
Build Identifier: 

This is a nit, but is one of the first things new developers will see ...

Steps to recreate:
1) Launch EDT IDE with a new workspace
2) Switch to the EGL perspective and open the new EGL project wizard
3) Provide a project name, select the Web client with services project type, make sure Dojo and RUI widgets are selected and click Finish.

The wizard becomes disabled (which makes sense), but progress of the project creation and configuration does not appear in the progress monitor at the bottom of the wizard. Also, various progress dialogs appear -- seems these should all be shown in the progress monitor of the wizard also OR none of these other actions (building workspace, etc) should happen until the wizard has completed and is closed.

Again - this is minor, but because it's one of the first thing people see and because the first project creation can take 30 seconds+ (because of files getting copied into the workspace, etc), it makes the IDE not feel as tight as it should.


Reproducible: Always
Comment 1 Will Smythe CLA 2011-08-21 22:57:30 EDT
Ji Yong - I have been playing with progress monitors / runnables within SWT JFace wizards over the last few days and am happy to "consult" on this one. Pretty easy to leverage the wizard's progress monitor, even if you have multiple tasks/runnables that need to happen when the Finish button is pressed.
Comment 2 Huang Ji Yong CLA 2011-09-06 06:21:11 EDT
Created attachment 202794 [details]
Complete this functionality
Comment 3 Huang Ji Yong CLA 2011-09-06 06:23:40 EDT
Add wizard progress monitor for new project wizard.
Comment 4 Will Smythe CLA 2011-11-02 00:14:30 EDT
The creation of a new 'RUI' project still *feels* slow and numerous dialogs appear and go away during the Finish process. In general, no workspace operations (i.e. build) should be happening until everything has been added to and configured in the workspace. All building should happen after the wizard goes away, not while the wizard is still open (this includes generation of parts that got imported into the workspace by the new project wizard).

I think this is important, as it's one of the first things new users will see.
Comment 5 Lisa Lasher CLA 2011-11-14 11:54:51 EST
deferring - this is a non-trivial change, too risky for this point in the project.  It's just a usability item.
Comment 6 Will Smythe CLA 2011-11-15 21:22:55 EST
While I was adding support for a new project template (Hello world), I took a look at this bug. Overall, the current code is good -- each major task that is performed during the new project creation is isolated into its own operation. The problem is that each operation is invoked separately as a workspacemodifyoperation, which causes the workspace to do a bunch of work after each of the operations versus waiting until all 15 operations are done before doing anything (i.e. building, etc).

I played around with wrapping these 15 operations into a single workspacemodifyoperation and it worked pretty well, as far as I could tell. It also checks to see whether the user has cancelled the operation..

NewEGLProjectWizard.performFinish() 

...

final List ops = ProjectFinishUtility.getCreateProjectFinishOperations((IProjectTemplateClass) template.getProjectTemplateClass(), model, 0, rule);

getContainer().run(true, true, new WorkspaceModifyOperation() {
	
	@Override
	protected void execute(IProgressMonitor monitor) throws CoreException {
		for(Iterator it = ops.iterator(); it.hasNext();)
		{
			Object obj = it.next();
			IRunnableWithProgress runnable = (IRunnableWithProgress)obj;
			try {
				runnable.run(monitor);
			} catch (Exception ex) {
				ex.printStackTrace();
			}
			if (monitor.isCanceled()) {
				break;
			}
		}
		
	}
});

There is one issue with the task name -- currently each operation is setting it via monitor.beginTask .. but beginTask can only be called once. Need to think about the right way to do this, such that the operations can still work outside the context of this wizard, but provide status to whoever has invoked it.
Comment 7 Will Smythe CLA 2011-12-08 23:33:00 EST
I still think this is important because it's one of the first things new users see.
Comment 8 Xiao Bin Chen CLA 2011-12-16 00:06:01 EST
Fixed.
Don't know if nightly build works now.
If it does,please update to the current nightly build. and verify it.


In the fix:The progress status of importing action of rui widget and dojowidet project(zipfile) could be represent rightly in the status bar.

And after the new fix, the spending time of create rui project will be much reduced. I test it in my machine. About 10s could create a new rui project.

I think it's much better now.

Any problem, please reopen it.

Thanks 
xiaobin.
Comment 9 Will Smythe CLA 2012-02-21 11:17:31 EST
Looks good in 2/20 build.