From d3840bf98cb5574d7dd8a3d02cd9d9a11ac62465 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Wed, 13 Jul 2016 17:12:45 -0700 Subject: [PATCH] Add option to show WizardWindow with active WizardPage instance - Extract logic to find or create window to new function - GetWindow - Reuse GetWindow in Show and new Show(WizardPage) --- SetupWizard/WizardWindow.cs | 41 ++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/SetupWizard/WizardWindow.cs b/SetupWizard/WizardWindow.cs index faf37da35..55990b4d7 100644 --- a/SetupWizard/WizardWindow.cs +++ b/SetupWizard/WizardWindow.cs @@ -80,21 +80,16 @@ namespace MatterHackers.MatterControl public static void Show(string uri, string title) where PanelType : WizardPage, new() { - WizardWindow existingWindow; + WizardWindow wizardWindow = GetWindow(uri); + wizardWindow.Title = title; + wizardWindow.ChangeToPage(); + } - if (allWindows.TryGetValue(uri, out existingWindow)) - { - existingWindow.BringToFront(); - } - else - { - existingWindow = new WizardWindow(); - existingWindow.Closed += (s, e) => allWindows.Remove(uri); - allWindows[uri] = existingWindow; - } - - existingWindow.Title = title; - existingWindow.ChangeToPage(); + public static void Show(string uri, string title, WizardPage wizardPage) + { + WizardWindow wizardWindow = GetWindow(uri); + wizardWindow.Title = title; + wizardWindow.ChangeToPage(wizardPage); } public static void Show(bool openToHome = false) @@ -110,6 +105,24 @@ namespace MatterHackers.MatterControl } } + private static WizardWindow GetWindow(string uri) + { + WizardWindow wizardWindow; + + if (allWindows.TryGetValue(uri, out wizardWindow)) + { + wizardWindow.BringToFront(); + } + else + { + wizardWindow = new WizardWindow(); + wizardWindow.Closed += (s, e) => allWindows.Remove(uri); + allWindows[uri] = wizardWindow; + } + + return wizardWindow; + } + public override void OnClosed(EventArgs e) { base.OnClosed(e);