Beispiel #1
0
        /// <summary>
        /// Called when selected tab index is changed.
        /// </summary>
        private void SelectedTabIndexChanged()
        {
            TabSwitcher.SwitchTo(SelectedTabIndex);

            // toggle header
            if (TabHeaderGroup.LayoutChildren.Count > SelectedTabIndex)
            {
                if (SelectedTabIndex < 0)
                {
                    foreach (TabHeader tabHeader in TabHeaderGroup.LayoutChildren)
                    {
                        tabHeader.ToggleValue = false;
                    }
                }
                else
                {
                    (TabHeaderGroup.LayoutChildren[SelectedTabIndex] as TabHeader).ToggleValue = true;

                    var tab = TabSwitcher.ActiveView as Tab;
                    TabSelectionActionData data = new TabSelectionActionData {
                        IsSelected = true, Tab = tab, Item = tab.Item
                    };
                    TabSelected?.Invoke(this, data);
                }
            }
        }
        /// <summary>
        /// Helper method to save Preferences.
        /// Returns true if saved successfully.
        /// </summary>
        private bool SavePreferences()
        {
            TabSwitcher tabSwitcher = new TabSwitcher(sideBarControl);

            for (int i = 0; i < preferencesPanelList.Count; i++)
            {
                PreferencesPanel preferencesPanel = (PreferencesPanel)preferencesPanelList[i];
                tabSwitcher.Tab = i;
                if (!preferencesPanel.PrepareSave(new PreferencesPanel.SwitchToPanel(tabSwitcher.Switch)))
                {
                    return(false);
                }
            }

            //	Save every PreferencesPanel.
            for (int i = 0; i < preferencesPanelList.Count; i++)
            {
                PreferencesPanel preferencesPanel = (PreferencesPanel)preferencesPanelList[i];
                if (preferencesPanel != null)
                {
                    preferencesPanel.Save();
                }
            }

            //	Disable the Apply button.
            buttonApply.Enabled = false;

            //notify listeners that the preferences where saved.
            OnPreferencesSaved(EventArgs.Empty);

            return(true);
        }
        /// <summary>
        /// Helper method to save Preferences.
        /// Returns true if saved successfully.
        /// </summary>
        private bool SavePreferences()
        {
            TabSwitcher tabSwitcher = new TabSwitcher(sideBarControl);

            for (int i = 0; i < preferencesPanelList.Count; i++)
            {
                PreferencesPanel preferencesPanel = (PreferencesPanel)preferencesPanelList[i];
                tabSwitcher.Tab = i;
                if (!preferencesPanel.PrepareSave(new PreferencesPanel.SwitchToPanel(tabSwitcher.Switch)))
                {
                    return false;
                }
            }

            //	Save every PreferencesPanel.
            for (int i = 0; i < preferencesPanelList.Count; i++)
            {
                PreferencesPanel preferencesPanel = (PreferencesPanel)preferencesPanelList[i];
                if (preferencesPanel != null)
                    preferencesPanel.Save();
            }

            //	Disable the Apply button.
            buttonApply.Enabled = false;

            //notify listeners that the preferences where saved.
            OnPreferencesSaved(EventArgs.Empty);

            return true;
        }
Beispiel #4
0
        private static void Main()
        {
            //Attempt to change the app.config at run time to set the ChromeUserDataDirectory to the user's path via Environment.UserName
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            config.AppSettings.Settings["ChromeUserDataDirectory"].Value = $"C:\\Users\\{Environment.UserName}\\AppData\\Local\\Google\\Chrome\\User Data";
            config.Save(ConfigurationSaveMode.Modified);

            _handler = ConsoleEventCallback;
            SetConsoleCtrlHandler(_handler, true);
            var chromeDriverTerminator    = new ChromeDriverTerminator();
            var chromeDriverCreator       = new ChromeDriverCreator();
            var internetConnectionChecker = new InternetConnectionChecker();
            SpeechRecognitionEngine speechRecognitionEngine = new SpeechRecognitionEngine(SpeechRecognitionEngine.InstalledRecognizers().First(x => x.Culture.ToString() == "en-US"));
            var voiceListener = new VoiceListener(speechRecognitionEngine);

            chromeDriverTerminator.TerminateAll();
            _driver = chromeDriverCreator.Create(ConfigurationManager.AppSettings["ChromeUserDataDirectory"]);
            var pingPlotterWindowStateChanger = new PingPlotterWindowStateChanger(new WindowStateChanger());
            var tabLoader       = new TabLoader(_driver, pingPlotterWindowStateChanger);
            var pageInitializer = new PageInitializer(_driver);
            var tabSwitcher     = new TabSwitcher(voiceListener, _driver);

            _tourGuide = new TourGuide(internetConnectionChecker, tabLoader, pageInitializer, pingPlotterWindowStateChanger, tabSwitcher);
            var pages = Pages.OrderBy(x => "https://reg.usps.com/entreg/LoginAction_input?app=Phoenix&appURL=https://informeddelivery.usps.com".Equals(x.Url) ? 0 : 1).ToList();

            try {
                _tourGuide.Guide(pages, _driver, OnLoadingPage, OnShowingPage, OnInitializingPage, OnExpired, OnError);

                void OnInitializingPage(int pageNumber, Page page)
                {
                    OnVerbingPage(pageNumber, page, "Initializing");
                }

                void OnLoadingPage(int pageNumber, Page page)
                {
                    OnVerbingPage(pageNumber, page, "Loading");
                }

                void OnShowingPage(int pageNumber, Page page)
                {
                    OnVerbingPage(pageNumber, page, "Showing");
                }

                void OnVerbingPage(int pageNumber, Page page, string verb)
                {
                    Console.WriteLine($"{DateTime.Now}: {verb} ({pageNumber}/{pages.Count}): '{page.Url}'");
                }

                void OnExpired(Page page)
                {
                    Console.WriteLine($"{DateTime.Now}: Expired: '{page.Url}'");
                }

                void OnError(Page page, Exception exception)
                {
                    Console.WriteLine($"ERROR - {DateTime.Now}: {exception}");
                    Thread.Sleep(5000);
                }
            }
            catch (Exception e) {
                Console.WriteLine($"Program {DateTime.Now}: {e}");
                Thread.Sleep(20000);
                ConsoleEventCallback(CtrlCloseEvent);
                Environment.Exit(1);
            }
        }