Bug 223074 - [ErrorHandling] WorkbenchStatusDialog API review
Summary: [ErrorHandling] WorkbenchStatusDialog API review
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.4   Edit
Hardware: PC Windows Vista
: P3 normal (vote)
Target Milestone: 3.4 M6   Edit
Assignee: Tod Creasey CLA
QA Contact:
URL:
Whiteboard:
Keywords: api
: 222947 (view as bug list)
Depends on: 220557
Blocks:
  Show dependency tree
 
Reported: 2008-03-18 09:27 EDT by Tod Creasey CLA
Modified: 2008-03-26 16:25 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tod Creasey CLA 2008-03-18 09:27:26 EDT
As M6 is the API freeze I think we need to decide if some changes are required here

1) It is not a dialog it is something that manages the opening of a dialog. It needs to be renamed.

2) Test mode just means "run in sync exec". I am not sure why we even want this as an asyncExec and a syncExec is a no-op on the UI Thread.

3) Is it the intention of this class to just provide an API way to invoke an internal dialog? The dialog itself can't be modified as InternalDialog is where all of the work is done.
Comment 1 Tod Creasey CLA 2008-03-18 09:50:31 EDT
*** Bug 222947 has been marked as a duplicate of this bug. ***
Comment 2 Krzysztof Daniel CLA 2008-03-18 10:43:26 EDT
StatusDialog is not subclassable therefore still open for extending. In the future I am planning to open it for subclassing and make it extending TrayDialog(as far as I know it will be binary compatible). After those changes user will see WSD as a normal dialog, which has the ability to adjust the modality state change in a pretty gentle way :). This is not done for 3.4 because subclassable WorkbenchStatusDialog will be a really heavy task :(. I do believe I am able to defend API regarding points 1 & 3.

Point 2 I will check, I hope today.
Comment 3 Tod Creasey CLA 2008-03-18 12:53:01 EDT
Ok so let me see if I understand. This is meant to be a dialog someday but isn't for now?
Comment 4 Krzysztof Daniel CLA 2008-03-18 13:23:47 EDT
basically yes
Comment 5 Tod Creasey CLA 2008-03-18 13:30:36 EDT
So why did you approach it this way? Changing the superclass will break source compatibility and will affect the constructors at least significantly.
Comment 6 Szymon Brandys CLA 2008-03-18 13:52:42 EDT
(In reply to comment #0)
> 1) It is not a dialog it is something that manages the opening of a dialog. It
> needs to be renamed.

> 3) Is it the intention of this class to just provide an API way to invoke an
> internal dialog? The dialog itself can't be modified as InternalDialog is where
> all of the work is done.

We removed the inheritance because it could be error-prone, if we wanted to open  WSD for subclassing. The internal dialog uses/will use the outer dialog methods to create its contents. So when WSD is open for subclassing, we would extend internal dialog by extending the WSD.

(In reply to comment #3)
> Ok so let me see if I understand. This is meant to be a dialog someday but
> isn't for now?
> 
(In reply to comment #4)
> basically yes

I don't agree. This class in not a real dialog on purpose and I would not change it in the future. We can even change its name to WorkbenchDialogController, StatusDialogController or something similar.

(In reply to comment #2)
> StatusDialog is not subclassable therefore still open for extending. In the
> future I am planning to open it for subclassing and make it extending
> TrayDialog(as far as I know it will be binary compatible).

In my opinion it is not necessary to make the WSD a TrayDialog subclass.


Comment 7 Tod Creasey CLA 2008-03-19 13:45:02 EDT
As the M6 warm up build is today we couldn't wait any longer. I renamed the WorkbenchStatusDialog to WorkbenchStatusDialogManager and tidied up the other issues.
Comment 8 Tod Creasey CLA 2008-03-26 16:25:52 EDT
Verified in I20080325-0100