/// <summary> /// Zajistí uložení konfigurace. Ne hned, provede se za 30 sekund od prvního požadavku. /// </summary> protected void ConfigSaveDeffered() { SchedulerConfig config = this.Config; if (config != null) { config.Save(TimeSpan.FromSeconds(30d)); } }
/// <summary> /// Inicializace objektu pro Layout /// </summary> private void _LayoutInit() { SchedulerConfig config = this.Config; MainControlLayout layout = (config != null ? config.UserConfigSearch <MainControlLayout>().FirstOrDefault() : null); if (layout == null) { // Pokud nemáme MainData, nebo nemáme Config, nebo v něm dosud není Layout, vytvoříme si Layout nový: layout = new MainControlLayout(); // Pokud máme Config, pak Layout do něj přidáme: if (config != null) { config.UserConfig.Add(layout); } } this._ControlLayout = layout; }
/// <summary> /// Napojí zdejší Layout do/z Configu, protože tak se bude ukládat a načítat rozložení stránky. /// Je vyvoláno na konci načítání dat. /// </summary> /// <param name="guiPage"></param> protected void ConnectConfigLayout(GuiPage guiPage) { SchedulerConfig config = this.Config; if (config == null) { return; } // Máme načtená data z GUI, zkusíme najít SchedulerPanelLayout našeho jména v Configu, aneo tam náš přidáme: string name = guiPage.Name; if (String.IsNullOrEmpty(name)) { name = guiPage.Title; } SchedulerPanelLayout panelLayout = config.UserConfigSearch <SchedulerPanelLayout>(l => String.Equals(l.Name, name)).FirstOrDefault(); if (panelLayout != null) { // Máme data nalezená z konfigurace => použijeme je: panelLayout.CurrentControlSize = this.ClientSize; this._PanelLayout = panelLayout; this.CalculateLayout(); } else { // V konfiguraci ještě náš PanelLayout není => přidáme tam zdejší: panelLayout = this._PanelLayout; panelLayout.Name = name; config.UserConfig.Add(panelLayout); } // Načteme Layouty sloupců pro jednotlivé GGridy: foreach (GGrid gGrid in this._GGridList) { if (!String.IsNullOrEmpty(gGrid.Name)) { string layout = this._PanelLayout.GridColumns[gGrid.Name]; gGrid.ColumnLayout = layout; } } }
/// <summary> /// Konstruktor /// </summary> /// <param name="config"></param> public EditingScope(SchedulerConfig config) { this._Config = config; this._SuppressSave = config._SuppressSave; this._Config._SuppressSave = true; }