Пример #1
0
        internal static void StoreSettings(EM_UI_MainForm mainForm)
        {
            if (!keepMode)
            {
                return;
            }
            CountryViewSetting setting = new CountryViewSetting();
            string             cc      = mainForm.GetCountryShortName();

            try
            {
                foreach (TreeListColumn col in mainForm.treeList.Columns)
                {
                    setting.systemWidths.Add(col.Caption, col.Width);
                    if (!col.Visible)
                    {
                        setting.hiddenSystems.AddUnique(col.Caption, true);
                    }
                }
                foreach (TreeListNode polNode in mainForm.treeList.Nodes)
                {
                    AddHiddenNode(ref setting.hiddenNodes, polNode);
                    foreach (TreeListNode funcNode in polNode.Nodes)
                    {
                        AddHiddenNode(ref setting.hiddenNodes, funcNode);
                        foreach (TreeListNode parNode in funcNode.Nodes)
                        {
                            AddHiddenNode(ref setting.hiddenNodes, parNode);
                        }
                    }
                }
                if (mainForm.GetTreeListBuilder() != null)
                {
                    setting.textSize = mainForm.GetTreeListBuilder().GetTextSize();
                }

                if (countryViewSettings.ContainsKey(cc))
                {
                    countryViewSettings[cc] = setting;
                }
                else
                {
                    countryViewSettings.Add(cc, setting);
                }
            }
            catch (Exception exception)
            {
                UserInfoHandler.ShowException(exception, "Failed to store view settings for " + cc + ". Settings are set back to default.", false);
                if (countryViewSettings.ContainsKey(cc))
                {
                    countryViewSettings.Remove(cc);
                }
            }
        }
Пример #2
0
        internal static void Init(string keptSettings)
        {
            try
            {
                countryViewSettings.Clear();
                if (keptSettings == null || keptSettings == string.Empty)
                {
                    return;
                }
                string[] countries = keptSettings.Split(splitCountry); if (countries.Count() < 1)
                {
                    return;
                }
                keepMode = Convert.ToBoolean(countries.First()); if (keepMode == false)
                {
                    return;
                }
                foreach (string country in countries.Skip(1))
                {
                    string[] settings = country.Split(splitSetting); if (settings.Count() < 1)
                    {
                        continue;
                    }
                    CountryViewSetting setting = new CountryViewSetting();
                    foreach (string s in settings.Skip(1))
                    {
                        string[] items = s.Split(splitList); if (items.Count() < 1)
                        {
                            continue;
                        }
                        switch (items.First())
                        {
                        case markSystemWidths:
                            int i = 1;
                            while (i + 1 < items.Count())
                            {
                                setting.systemWidths.Add(items[i], int.Parse(items[i + 1])); i += 2;
                            }
                            break;

                        case markHiddenSystems:
                            foreach (string item in items.Skip(1))
                            {
                                setting.hiddenSystems.AddUnique(item, true);
                            }
                            break;

                        case markHiddenNodes:
                            foreach (string item in items.Skip(1))
                            {
                                setting.hiddenNodes.AddUnique(item, true);
                            }
                            break;

                        case markTextSize:
                            if (items.Count() >= 3)
                            {
                                setting.textSize = new Tuple <float, float>((float)EM_Helpers.SaveConvertToDouble(items[1]), (float)EM_Helpers.SaveConvertToDouble(items[2]));
                            }
                            break;
                        }
                    }
                    countryViewSettings.Add(settings.First(), setting);
                }
            }
            catch (Exception exception)
            {
                UserInfoHandler.ShowException(exception, "Failed to apply stored view settings. Settings are set back to default.", false);
                countryViewSettings.Clear();
            }
        }
Пример #3
0
        internal static void RestoreSettings(EM_UI_MainForm mainForm, bool exceptionCall = false)
        {
            if (!keepMode)
            {
                return;
            }
            string cc = mainForm.GetCountryShortName();

            try
            {
                if (!countryViewSettings.ContainsKey(cc))
                {
                    return;
                }
                CountryViewSetting setting = countryViewSettings[cc];
                foreach (TreeListColumn col in mainForm.treeList.Columns)
                {
                    if (setting.systemWidths.ContainsKey(col.Caption))
                    {
                        col.Width = setting.systemWidths[col.Caption];
                    }
                    if (setting.hiddenSystems.Contains(col.Caption, true))
                    {
                        col.Visible = false;
                    }
                    if (setting.hiddenSystems.Count > 0)
                    {
                        mainForm.showHiddenSystemsBox();
                    }
                }
                foreach (TreeListNode polNode in mainForm.treeList.Nodes)
                {
                    SetHiddenNode(setting.hiddenNodes, polNode);
                    foreach (TreeListNode funcNode in polNode.Nodes)
                    {
                        SetHiddenNode(setting.hiddenNodes, funcNode);
                        foreach (TreeListNode parNode in funcNode.Nodes)
                        {
                            SetHiddenNode(setting.hiddenNodes, parNode);
                        }
                    }
                }
                if (setting.textSize != null)
                {
                    mainForm.GetTreeListBuilder().SetTextSize(setting.textSize);
                }
            }
            catch (Exception exception)
            {
                if (exceptionCall)
                {
                    return;                // to avoid an infinite loop because of some unknown problem
                }
                UserInfoHandler.ShowException(exception, "Failed to restored view settings. Settings are set back to default.", false);
                if (countryViewSettings.ContainsKey(cc))
                {
                    countryViewSettings[cc] = new CountryViewSetting();
                }
                else
                {
                    countryViewSettings.Add(cc, new CountryViewSetting());
                }
                RestoreSettings(mainForm, true);
            }
        }