Bugs item #1841842, was opened at 2007-11-30 09:19 Message generated for change (Comment added) made by shadowchaser You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=642714&aid=1841842&group_id=105970
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: wixui Group: v3.0 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Eric Bickle (shadowchaser) Assigned to: Bob Arnson (barnson) Summary: Move InstallUISequence items out of dialogs and into UIs Initial Comment: Presently, some dialog sequencing information is stored within the dialogs themselves. For example, WelcomeEulaDialog.wxs includes the following: <InstallUISequence> <Show Dialog="WelcomeEulaDlg" Before="ProgressDlg">NOT Installed</Show> </InstallUISequence> Including this information in the dialog file makes it difficult to fully control the sequencing of dialogs in a "custom" ui mode. The dialogs should be fully "self contained", with the sequencing information being 100% contained within the UI files, such as WixUI_FeatureTree.wxs. * Remove all of the InstallUISequence elements from the dialogs and place them as child elements of each individual <UI>. * Remove all of the "Publish" elements from the dialogs that are used to connect sequences of dialogs together. Place the publish elements within each individual "UI" file instead. * Do not include any code within a dialog that looks at "WixUI_Mode". If WixUI_Mode is required in a dialog, it probably means that the dialog is not properly componentized. These changes would componentize each dialog, making them fully reusable in customized user interfaces. ---------------------------------------------------------------------- >Comment By: Eric Bickle (shadowchaser) Date: 2007-12-03 23:31 Message: Logged In: YES user_id=416299 Originator: YES Patches are always welcome. Here's my feedback on your suggestions: 1. Most of the scheduling that exists supports customization. For example, ExitDialog and FatalError schedule themselves but that scheduling is used only if that dialog is referenced. If nothing references the dialog, its scheduling isn't linked in. 1b. That said, the "welcome" dialogs are scheduled before ProgressDlg, so that one dialog is coupled with a couple of others. Two ways come to mind to fix that coupling without losing the "self-scheduling": Use the Overridable attribute or a bind-time variable instead of the literal "ProgressDlg." 2. All the behavior is already moved out of the dialog classes, with the exception of - Installation kickoff - Cancel handling - Print EULA handling I'd argue those shouldn't be overridable in every dialog set (installation kickoff) or are trivial (cancel and print), plus moving those into the dialog set fragments would be a breaking change. I need convincing it's a good idea. It's interesting you brought up cancel handling, since that's one of the cases I was trying to deal with. I've been working on developing an installer that incorporates some of the Vista User Experience Guidelines. Specifically, I removed the "welcome" page and significantly redesigned the "completion" page. In the "Top Guidelines Violations" section, there is an entry titled "Don't confirm commit buttons (including Cancel)" that discusses why it's a bad idea to provide confirmations for cancel events. In WixUI, almost all of the dialogs directly link to CancelDlg, making it extremely difficult to remove that behavior while still being able to re-use and integrate the existing WixUI dialog sets. Although the implementation is more than adequate for the WixUI sequences themselves, I believe portions of the design are inconsistent. I found it extremely frustrating as a developer trying to figure out which dialogs where "stand alone" and which dialogs had an effect on overall dialog sequencing. * UI sequences act as the "glue" that tie together dialogs and choose which ones get hooked up * Dialogs primarily contain only visual elements or actions that are "self-contained" within the dialog (print eula, costing, etc) * Developers who want to create custom UI sequences can create a brand new sequence or base theirs off of one of WixUI's existing sequences. All of the dialogs would be easily interchangeable, including the cancel dialog. * Wix could potentially support dialogs with alternate UIs that wouldn't specifically need to be part of a pre-canned WixUi sequence. Conceptually I like the idea of certain dialogs "hooking themselves up (ie/ UserExit) but it still mixes design with sequencing. Thanks again for taking the time to respond to my comments! ---------------------------------------------------------------------- Comment By: Bob Arnson (barnson) Date: 2007-12-03 13:15 Message: Logged In: YES user_id=26581 Originator: NO Patches are always welcome. Here's my feedback on your suggestions: 1. Most of the scheduling that exists supports customization. For example, ExitDialog and FatalError schedule themselves but that scheduling is used only if that dialog is referenced. If nothing references the dialog, its scheduling isn't linked in. 1b. That said, the "welcome" dialogs are scheduled before ProgressDlg, so that one dialog is coupled with a couple of others. Two ways come to mind to fix that coupling without losing the "self-scheduling": Use the Overridable attribute or a bind-time variable instead of the literal "ProgressDlg." 2. All the behavior is already moved out of the dialog classes, with the exception of - Installation kickoff - Cancel handling - Print EULA handling I'd argue those shouldn't be overridable in every dialog set (installation kickoff) or are trivial (cancel and print), plus moving those into the dialog set fragments would be a breaking change. I need convincing it's a good idea. 3. Nothing looks at WixUI_Mode any more. It's vestigial except that the Dark decompiler looks at it to determine which dialog set was used. ---------------------------------------------------------------------- Comment By: Eric Bickle (shadowchaser) Date: 2007-12-03 10:02 Message: Logged In: YES user_id=416299 Originator: YES I'd be interested in working on this and submitting a patch for this, if the WiX team thinks this is a good idea. Right now, any minor change to any of the dialogs means a developer basically needs to re-write all of the dialogs from scratch to workaround the sequencing/dialog componentization issues. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=642714&aid=1841842&group_id=105970 ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ WiX-devs mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wix-devs
