/// <summary> /// This method will be executed when packages search window is opened, so it can identify the close button of the window /// </summary> /// <param name="stepInfo"></param> /// <param name="uiAutomationData"></param> /// <param name="enableFunction"></param> /// <param name="currentFlow"></param> internal static void ExecuteClosePackagesSearch(Step stepInfo, StepUIAutomation uiAutomationData, bool enableFunction, GuideFlow currentFlow) { if (enableFunction) { CurrentExecutingStep = stepInfo; if (stepInfo.ExitGuide != null) { exitGuide = stepInfo.ExitGuide; } Window ownedWindow = Guide.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window); foreach (var handler in uiAutomationData.AutomaticHandlers) { if (ownedWindow == null) { return; } CloseButtonSearchPackages = Guide.FindChild(ownedWindow, handler.HandlerElement) as Button; CloseButtonSearchPackages.Click += CloseButton_Click; } } else { if (CloseButtonSearchPackages != null) { CloseButtonSearchPackages.Click -= CloseButton_Click; } } }
/// <summary> /// Creates the exit modal when close button is pressed /// </summary> /// <param name="exitGuide">This parameter contains the properties to build exit guide modal</param> internal void CreateExitModal(ExitGuide exitGuide) { var viewModel = new ExitGuideWindowViewModel(exitGuide); exitGuideWindow = new ExitGuideWindow((FrameworkElement)mainRootElement, viewModel); exitGuideWindow.ExitTourButton.Click += ExitTourButton_Click; exitGuideWindow.ContinueTourButton.Click += ContinueTourButton_Click; exitGuideWindow.IsOpen = true; }
/// <summary> /// This method will be executed when passing from Step 2 to Step 3 in the Packages guide, so it will show the TermsOfUse Window in case it was not accepted yet /// </summary> /// <param name="stepInfo"></param> /// <param name="uiAutomationData"></param> /// <param name="enableFunction"></param> /// <param name="currentFlow"></param> internal static void ExecuteTermsOfServiceFlow(Step stepInfo, StepUIAutomation uiAutomationData, bool enableFunction, GuideFlow currentFlow) { CurrentExecutingStep = stepInfo; if (stepInfo.ExitGuide != null) { exitGuide = stepInfo.ExitGuide; } //When enableFunction = true, means we want to show the TermsOfUse Window (this is executed in the UIAutomation step in the Show() method) if (enableFunction) { //If the TermsOfService is not accepted yet it will show the TermsOfUseView otherwise it will show the PackageManagerSearchView stepInfo.DynamoViewModelStep.ShowPackageManagerSearch(null); Window ownedWindow = Guide.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window); foreach (var handler in uiAutomationData.AutomaticHandlers) { if (ownedWindow == null) { return; } UIElement element = Guide.FindChild(ownedWindow, handler.HandlerElement); //When the Accept button is pressed in the TermsOfUseView then we need to move to the next Step if (element != null) { ManageEventHandler(element, handler.HandlerElementEvent, handler.ExecuteMethod); } } } //When enableFunction = false, means we are hiding (closing) the TermsOfUse Window due that we are moving to the next Step or we are exiting the Guide else { Window ownedWindow = Guide.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window); if (ownedWindow == null) { return; } //Tries to close the TermsOfUseView or the PackageManagerSearchView if they were opened previously Guide.CloseWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window); } }