This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 276904 - [Progress] WizardDialog opens second dialog when blocked
Summary: [Progress] WizardDialog opens second dialog when blocked
Status: CLOSED WONTFIX
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.5   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform UI Triaged CLA
QA Contact:
URL:
Whiteboard: stalebug
Keywords:
Depends on:
Blocks:
 
Reported: 2009-05-19 10:15 EDT by Pascal Rapicault CLA
Modified: 2022-02-23 03:33 EST (History)
5 users (show)

See Also:


Attachments
Zipped sample plugin demonstrating the problem (4.52 KB, application/octet-stream)
2009-05-21 10:51 EDT, John Arthorne CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pascal Rapicault CLA 2009-05-19 10:15:08 EDT
RC1
When I install something from a p2 repository, the download process looks rather hectic as a dialog telling me that the "user operation is blocked" is opened and closed.
I think this results from the work that recently happen in the p2 transport layer around the ability to cancel downloads.
Comment 1 Darin Wright CLA 2009-05-20 11:37:06 EDT
Needs investigation.
Comment 2 Darin Wright CLA 2009-05-20 13:58:50 EDT
Only effects the wizard. When run in the editor, the blocking progress dialog does not appear. Pascal, can you tell us what changed here in p2?
Comment 3 Curtis Windatt CLA 2009-05-20 15:23:52 EDT
What we are doing on the PDE side, nothing unusual as far as I could find:

1) We get the wizard container and ask it to run an IRunnable
getContainer().run(true, true, new IRunnableWithProgress)

2) The IRunnableWithProgress calls out to our model to resolve passing the progress monitor

3) The model calls out to p2 code (the planner) to create a provisioning plan passing it a subprogressmonitor.
Comment 4 Pascal Rapicault CLA 2009-05-20 21:40:50 EDT
The changes that I'm talking about are the one that happened in https://bugs.eclipse.org/bugs/show_bug.cgi?id=275975
Comment 5 John Arthorne CLA 2009-05-21 10:51:59 EDT
Created attachment 136658 [details]
Zipped sample plugin demonstrating the problem

This simple plugin demonstrates the problem. Basically if a wizard operation tries to perform a job, you get this dialog. The UI should be suppressing this dialog (doing the same thing in a ProgressMonitorDialog doesn't open the second dialog).
Comment 6 John Arthorne CLA 2009-05-21 10:52:43 EDT
This has nothing to do with PDE or p2.
Comment 7 John Arthorne CLA 2009-05-21 11:29:54 EDT
Doing some research I found this was added in bug 58292. The rationale is that if a wizard operation is blocked by some background job, it needs to open this extra dialog because there is no way to reveal this information in the wizard dialog itself. This allows users to see what background jobs are running that are preventing the wizard from completing.

It is interesting that ProgressMonitorDialog takes a different approach. It simply sets the blocked "reason" to be the progress message and pauses the progress indicator (see ProgressMonitorDialog.ProgressMonitor.setBlocked).

Overall I think the ProgressMonitorDialog approach is a better user experience (no double dialogs). But it doesn't surface the information about the jobs that are blocking it. I think an in between approach would be to add a button or hyperlinked message when the dialog is blocked, and clicking this button/link would open the jobs dialog with further information. This would provide a smoother user experience, and also allow the underlying job information to surface.
Comment 8 John Arthorne CLA 2009-05-21 11:35:09 EDT
Note this started appearing just recently in the PDE case because we previously weren't passing along the parent progress monitor all the way down into the transfer operation. This meant we were not responsive to cancelation at the lowest level. Hooking our progress monitors together allows the "blocked" state to propagate all the way up to the wizard dialog's progress monitor, which has the behaviour we see here. I believe it is unrelated to the cancelation job we added, which isn't running at the point where transfers are occurring (this job only runs during establishing a socket connection). 

It would be a bit of a hack, but the PDE wizard could avoid this by wrapping the wizard's monitor in a ProgressMonitorWrapper and overriding setBlocked/clearBlocked to just update the progress message rather than showing the dialog.
Comment 9 Darin Wright CLA 2009-05-21 12:26:15 EDT
Filed bug 277347 against PDE. Using a wrapped progress monitor avoids the problem.
Comment 10 Eclipse Webmaster CLA 2019-09-06 15:38:36 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.
Comment 11 Eclipse Genie CLA 2022-02-23 03:33:14 EST
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. As such, we're closing this bug.

If you have further information on the current state of the bug, please add it and reopen this bug. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.