Пример #1
0
        public static void StartInsolationPalette(Document doc)
        {
            if (doc == null || doc.IsDisposed)
            {
                return;
            }
            if (insModels == null)
            {
                insModels = new Dictionary <Document, InsModel>();
            }

            Application.DocumentManager.DocumentToBeDeactivated += DocumentManager_DocumentToBeDeactivated;
            Application.DocumentManager.DocumentActivated       += DocumentManager_DocumentActivated;
            Application.DocumentManager.DocumentToBeDestroyed   += DocumentManager_DocumentToBeDestroyed;

            DbService.Init();
            InsPointDrawOverrule.Start();

            if (palette == null)
            {
                insViewModel          = new InsViewModel();
                insView               = new InsView(insViewModel);
                palette               = new InsServicePallete(insView);
                palette.StateChanged += Palette_StateChanged;
            }
            palette.Visible = true;

            ChangeDocument(doc);
        }
Пример #2
0
        public static void Stop()
        {
            // TODO: Сохранение всех расчетов
            try
            {
                Application.DocumentManager.DocumentToBeDeactivated -= DocumentManager_DocumentToBeDeactivated;
                Application.DocumentManager.DocumentActivated       -= DocumentManager_DocumentActivated;
                Application.DocumentManager.DocumentToBeDestroyed   -= DocumentManager_DocumentToBeDestroyed;
            }
            catch
            {
                // ignored
            }

            //UserSettings.Save();
            //Settings.Save();
            //palette.Visible = false;
            foreach (var item in insModels)
            {
                try
                {
                    //item.Value.SaveIns();
                    item.Value.Dispose();
                }
                catch
                {
                    // ignored
                }
            }
            //palette = null;
            //insModels = null;
            //insViewModel = null;
            //insView = null;
            InsPointDrawOverrule.Stop();
            //GC.Collect();
            Logger.Log.Info($"Закрытие палитры инсоляции.");
        }