예제 #1
0
        // Конструктор
        private void ColumnsAdderConstructor(DiagramData SourceData, int OldXColumnNumber, int OldYColumnNumber, SupportedLanguages Language)
        {
            // Локазизация формы
            ApplyButton.Text = Localization.GetText("ApplyButton", Language);
            AbortButton.Text = Localization.GetText("AbortButton", Language);
            Localization.SetControlsText(this, Language);

            // Загрузка параметров
            for (uint col = 0; col < SourceData.DataColumnsCount; col++)
            {
                XCombo.Items.Add(SourceData.ColumnPresentation(col));
                YCombo.Items.Add(SourceData.ColumnPresentation(col));
            }

            // Определение отображаемых столбцов
            if ((OldXColumnNumber >= 0) && (OldXColumnNumber < SourceData.DataColumnsCount))
            {
                xColumnNumber = (uint)OldXColumnNumber;
            }
            if ((OldYColumnNumber >= 0) && (OldYColumnNumber < SourceData.DataColumnsCount))
            {
                yColumnNumber = (uint)OldYColumnNumber;
            }

            XCombo.Text = XCombo.Items[(int)xColumnNumber].ToString();
            YCombo.Text = YCombo.Items[(int)yColumnNumber].ToString();

            // Запуск
            this.ShowDialog();
        }
예제 #2
0
        private void OpenDiagramForm(DiagramData diagramData)
        {
            var diagramForm = new DiagramViewModel(diagramData);

            _launchedForms.Add(diagramForm);
            WindowManager.ShowWindow(diagramForm);
        }
예제 #3
0
        // Метод сохраняет параметры стилей в файл шаблона
        private bool WriteParametersFile(DiagramData Data, string FileName)
        {
            // Попытка создания файла файла
            FileStream FS = null;

            try
            {
                FS = new FileStream(FileName, FileMode.Create);
            }
            catch
            {
                return(false);
            }
            StreamWriter SW = new StreamWriter(FS, Encoding.GetEncoding(1251));

            // Запись
            for (int i = 0; i < Data.LinesCount; i++)
            {
                SW.Write((Data.GetStyle(i).XColumnNumber + 1).ToString() + ";");
                SW.Write((Data.GetStyle(i).YColumnNumber + 1).ToString() + ";");
                SW.Write(Data.GetStyle(i).DiagramImageWidth.ToString() + ";");
                SW.Write(Data.GetStyle(i).DiagramImageHeight.ToString() + ";");
                SW.Write(Data.GetStyle(i).DiagramImageLeftOffset.ToString() + ";");
                SW.Write(Data.GetStyle(i).DiagramImageTopOffset.ToString() + ";");
                SW.Write(Data.GetStyle(i).LineName + ";");
                SW.Write(Data.GetStyle(i).LineNameLeftOffset.ToString() + ";");
                SW.WriteLine(Data.GetStyle(i).LineNameTopOffset.ToString());
            }

            // Завершение
            SW.Close();
            FS.Close();
            return(true);
        }
예제 #4
0
 public DiagramHintCreator(DiagramData allDiagramData, SortedList <DateTime, List <double> > currentSeriesUnitedData,
                           Every groupInterval, DiagramMode diagramMode, DiagramDrawingCalculator diagramDrawingCalculator)
 {
     _allDiagramData           = allDiagramData;
     _currentSeriesUnitedData  = currentSeriesUnitedData;
     _groupInterval            = groupInterval;
     _diagramMode              = diagramMode;
     _diagramDrawingCalculator = diagramDrawingCalculator;
 }
예제 #5
0
        /// <summary>
        /// Конструктор. Запускает форму выбора данных, используя сведения о ранее выбранных столбцах
        /// </summary>
        /// <param name="SourceData">Исходные данные диаграммы</param>
        /// <param name="OldXColumnNumber">Номер ранее выбранного столбца данных, интерпретируемых как столбец абсцисс</param>
        /// <param name="OldYColumnNumber">Номер ранее выбранного столбца данных, интерпретируемых как столбец ординат</param>
        /// <param name="Language">Язык локализации</param>
        public ColumnsAdder(DiagramData SourceData, int OldXColumnNumber, int OldYColumnNumber, SupportedLanguages Language)
        {
            // Инициализация
            InitializeComponent();
            this.Text = Localization.GetControlText("ColumnsAdder", "TE", Language);

            // Запрет на обновление данных дополнительных объектов
            Radio02.Enabled = false;

            // Основные настройки
            ColumnsAdderConstructor(SourceData, OldXColumnNumber, OldYColumnNumber, Language);
        }
예제 #6
0
        public void DrawDiagramForTxtDataTest()
        {
            var dir  = Path.GetDirectoryName(this.GetType().Assembly.Location);
            var dest = Path.Combine(dir + @"\..\" + Data.Core.Consts.TopPath, "BarChartTest") + "hi.jpg";

            var item = new DiagramData()
            {
                ChartTitle      = "Hello",
                HorizontalNames = new[] { "u1", "u2" },
                RowItem         = new[]
                {
                    new RowItem()
                    {
                        Name = "L1, 50%", Values = new List <double> {
                            1.00, 0.90
                        }
                    },
                    new RowItem()
                    {
                        Name = "L2, 40%", Values = new List <double> {
                            0.90, 0.80
                        }
                    },
                    new RowItem()
                    {
                        Name = "L3, 30%", Values = new List <double> {
                            0.80, 0.70
                        }
                    },
                    new RowItem()
                    {
                        Name = "L4, 20%", Values = new List <double> {
                            0.60, 0.50
                        }
                    },
                    new RowItem()
                    {
                        Name = "L5, 10%", Values = new List <double> {
                            0.50, 0.40
                        }
                    },
                },
                PicName = dest
            };

            using (var barChartDrawer = new BarChartDrawer())
            {
                barChartDrawer.DrawDiagramForTxtData(item);
            }
        }
 public DiagramData Get()
 {
     var diagramData = new DiagramData() {Caption = "Курсы валют", Mode = DiagramMode.Lines, Series = new List<DiagramSeries>(), TimeInterval = Every.Day};
     diagramData.Series.Add(GetNbUsdRate());
     diagramData.Series.Add(GetNbEurRate());
     diagramData.Series.Add(GetNbRurRate());
     diagramData.Series.Add(GetNbBasket1());
     diagramData.Series.Add(GetNbBasket2());
     diagramData.Series.Add(GetNbBasket3());
     diagramData.Series.Add(GetNbEurUsdRate());
     diagramData.Series.Add(GetMyUsdRate());
     diagramData.Series.Add(GetRurUsdRate());
     return diagramData;
 }
예제 #8
0
        private void SFDialog_FileOk(object sender, CancelEventArgs e)
        {
            DiagramData dd = new DiagramData(mergedTable, mergedColumnNames);

            if (dd.SaveDataFile(SFDialog.FileName, (DataOutputTypes)(SFDialog.FilterIndex + 1), true) != 0)
            {
                MessageBox.Show(Localization.GetText("DataFileSaveError", al), ProgramDescription.AssemblyTitle,
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                ProcessingResults.Items.Add(Localization.GetText("TablesMerger_FileSaved", al));
                ProcessingResults.SelectedIndex = ProcessingResults.Items.Count - 1;
            }
        }
예제 #9
0
        private void OFDialog_FileOk(object sender, CancelEventArgs e)
        {
            // Запрос параметров обработки файлов
            UnknownFileParametersSelector ufps = new UnknownFileParametersSelector(2, al, true);

            if (ufps.Cancelled)
            {
                return;
            }

            ColumnsNamesSelector cns = new ColumnsNamesSelector(0, al);

            if (cns.Cancelled)
            {
                return;
            }

            // Для каждого файла
            for (int i = 0; i < OFDialog.FileNames.Length; i++)
            {
                // Формирование таблицы данных
                DiagramData dd = new DiagramData(OFDialog.FileNames[i], ufps.DataColumnsCount, cns.SkippedRowsCount);
                if (dd.InitResult != DiagramDataInitResults.Ok)
                {
                    ProcessingResults.Items.Add(string.Format(Localization.GetText("FileAddError", al),
                                                              Path.GetFileName(OFDialog.FileNames[i]),
                                                              DiagramDataInitResultsMessage.ErrorMessage(dd.InitResult, al)));
                    continue;
                }

                // Добавление в списки
                dataTables.Add(dd.GetData());
                columnNames.Add(new List <string> ());
                for (uint c = 0; c < dd.DataColumnsCount; c++)
                {
                    columnNames[columnNames.Count - 1].Add(dd.GetDataColumnName(c));
                }
                abscissasColumnsNumbers.Add(ufps.AbscissasColumn);
                FileNamesList.Items.Add(OFDialog.FileNames[i]);
                ProcessingResults.Items.Add(string.Format(Localization.GetText("FileAddCompleted", al),
                                                          Path.GetFileName(OFDialog.FileNames[i]),
                                                          dataTables[dataTables.Count - 1].Count,
                                                          dataTables[dataTables.Count - 1][0].Count));
            }

            // Завершено
            ProcessingResults.SelectedIndex = ProcessingResults.Items.Count - 1;
        }
예제 #10
0
        /// <summary>
        /// Конструктор. Запускает форму выбора данных
        /// </summary>
        /// <param name="SourceData">Исходные данные диаграммы</param>
        /// <param name="Language">Язык локализации</param>
        public ColumnsAdder(DiagramData SourceData, SupportedLanguages Language)
        {
            // Инициализация
            InitializeComponent();
            this.Text = Localization.GetControlText("ColumnsAdder", "TN", Language);

            // Заполнение списка типов объектов
            for (int i = 1; i <= 9; i++)
            {
                ObjectCombo.Items.Add(Localization.GetControlText("ColumnsAdder", "ObjectType_" + i.ToString(), Language));
            }
            ObjectCombo.Text = ObjectCombo.Items[0].ToString();

            // Основные настройки
            ColumnsAdderConstructor(SourceData, -1, -1, Language);
        }
        // Закрытие формы
        private void DiagramDataEditor_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Прерывание выхода в случае ввода имени столбца
            if (!SaveButton.Enabled)
            {
                e.Cancel = true;
                return;
            }

            // Подтверждение
            if (cancelled)
            {
                // Проверка на отмену изменений
                if (MessageBox.Show(Localization.GetText("AbortChanges", language), ProgramDescription.AssemblyTitle,
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
                {
                    e.Cancel = true;
                    return;
                }
            }
            else
            {
                // Проверка на применение изменений
                if (MessageBox.Show(Localization.GetText("ApplyChanges", language), ProgramDescription.AssemblyTitle,
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    e.Cancel = true;
                    return;
                }

                // Тестовый прогон данных
                DiagramData ddt = new DiagramData((DataTable)MainDataGrid.DataSource);

                if (ddt.InitResult != DiagramDataInitResults.Ok)
                {
                    MessageBox.Show(string.Format(Localization.GetText("DataProcessingError", language),
                                                  DiagramDataInitResultsMessage.ErrorMessage(DiagramDataInitResults.BrokenTable, language)),
                                    ProgramDescription.AssemblyTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    e.Cancel = true;
                    return;
                }

                // Успешно
                resultTable = (DataTable)MainDataGrid.DataSource;
            }
        }
예제 #12
0
        public async Task <JsonResult> My_Chart()
        {
            var modelUlaznice = (await _serviceUlaznice.Get <List <Model.Ulaznice> >(null)).Select(x => new UlazniceViewModel(x)).ToList();
            var recordData    = new List <DiagramData>();
            var months        = new List <string>()
            {
                "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
            };

            for (int i = 1; i < 13; i++) //for each month
            {
                var tempData = new DiagramData();
                tempData.labels = months[i - 1];
                tempData.data   = modelUlaznice.Count(x => x.Datum.Month == i);
                recordData.Add(tempData);
            }
            return(Json(recordData));
        }
예제 #13
0
        public RatesOxyplotViewModel(DiagramData diagramData)
        {
            _diagramData = diagramData;
            ContentModel = new RatesDiagramContentModel()
            {
                IsCheckedUsdNbRb    = true,
                IsCheckedMyUsd      = false,
                IsCheckedEurNbRb    = true,
                IsCheckedEurUsdNbRb = false,
                IsCheckedRurNbRb    = true,
                IsCheckedRurUsd     = false,
                IsCheckedBusketNbRb = true,
                IsCheckedLogarithm  = false,
                IsCheckedUnify      = false
            };
            ContentModel.PropertyChanged += ContentModel_PropertyChanged;

            InitializeDiagram();
        }
        /// <summary>
        /// Конструктор. Запускает форму редактирования данных
        /// </summary>
        /// <param name="Language">Язык локализации</param>
        /// <param name="SourceData">Данные диаграммы</param>
        public DiagramDataEditor(DiagramData SourceData, SupportedLanguages Language)
        {
            // Инициализация и локализация формы
            InitializeComponent();
            sourceData = SourceData;

            Localization.SetControlsText(this, Language);                         // Кнопки
            Localization.SetControlsText(ColumnNameInput, MainToolTip, Language); // Панель имени столбца
            Localization.SetControlsText(this, MainToolTip, Language);            // Подсказки

            SaveButton.Text  = Localization.GetText("SaveButton", Language);
            AbortButton.Text = Localization.GetText("AbortButton", Language);
            this.Text        = Localization.GetControlText(this.Name, "T", Language);

            // Сохранение параметров
            language = Language;

            // Запуск
            this.ShowDialog();
        }
예제 #15
0
        private SupportedLanguages language;                                 // Язык локализации

        /// <summary>
        /// Конструктор. Принимает отрисовываемые данные и стиль отрисовки
        /// </summary>
        /// <param name="DiagramData">Данные диаграммы</param>
        /// <param name="Language">Язык локализации</param>
        /// <param name="Silent">Флаг 'тихого' режима (без настроек)</param>
        public SavePicture(DiagramData DiagramData, SupportedLanguages Language, bool Silent)
        {
            // Инициализация и локализация формы
            InitializeComponent();
            Localization.SetControlsText(this, Language);
            SaveButton.Text  = Localization.GetText("SaveButton", Language);
            AbortButton.Text = Localization.GetText("AbortButton", Language);
            this.Text        = Localization.GetControlText(this.Name, "T", Language);

            // Передача значений
            for (int i = 0; i < DiagramData.LinesCount; i++)
            {
                lineStyles.Add(new DiagramStyle(DiagramData.GetStyle(i)));
            }
            for (int i = 0; i < DiagramData.AdditionalObjectsCount; i++)
            {
                objectStyles.Add(new DiagramStyle(DiagramData.GetStyle(i + (int)DiagramData.LinesCount)));
            }

            diagramData = DiagramData;
            imageWidth  = DiagramData.DiagramWidth;
            imageHeight = DiagramData.DiagramHeight;
            language    = Language;

            // Настройка контролов
            SFDialog.Title = Localization.GetControlText(this.Name, "SFDialog", Language);

            ImageScale.Minimum = (decimal)DiagramStyle.MinScale;
            ImageScale.Maximum = (decimal)DiagramStyle.MaxScale;

            CustomSize.Checked = true;

            // Запуск
            if (!Silent)
            {
                this.ShowDialog();
            }
        }
예제 #16
0
        public DiagramDataSeriesUnited(DiagramData allSeries)
        {
            GroupInterval = allSeries.TimeInterval;

            DiagramData     = new SortedList <DateTime, List <double> >();
            PositiveBrushes = new List <Brush>();
            NegativeBrushes = new List <Brush>();
            Names           = new List <string>();
            SeriesCount     = 0;

            foreach (var series in allSeries.Series)
            {
                Names.Add(series.Name);
                foreach (var pair in series.Points)
                {
                    if (!DiagramData.ContainsKey(pair.CoorXdate))
                    {
                        DiagramData.Add(pair.CoorXdate, new List <double>());
                    }
                    while (DiagramData[pair.CoorXdate].Count < SeriesCount)
                    {
                        DiagramData[pair.CoorXdate].Add(0);
                    }
                    DiagramData[pair.CoorXdate].Add(pair.CoorYdouble);
                }
                SeriesCount++;
                PositiveBrushes.Add(series.PositiveBrushColor);
                NegativeBrushes.Add(series.NegativeBrushColor);
            }

            foreach (var pair in DiagramData)
            {
                while (DiagramData[pair.Key].Count < SeriesCount)
                {
                    DiagramData[pair.Key].Add(0);
                }
            }
        }
예제 #17
0
        /// <summary>
        /// Метод сохраняет параметры стиля указанного объекта DiagramData в файл, запрашивая его имя
        /// </summary>
        /// <param name="Data">Объект DiagramData, стиль которого следует использовать для создания файла параметров</param>
        /// <returns>Возвращает 0 в случае успеха, -1, если входные параметры некорректны, -2, если не удаётся создать файл,
        /// 1, если файл не был выбран</returns>
        public int SaveParametersFile(DiagramData Data)
        {
            // Контроль параметров
            if ((Data == null) || (Data.InitResult != DiagramDataInitResults.Ok))
            {
                return(-1);
            }

            // Запрос имени файла
            if (SFDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK)
            {
                return(1);
            }

            // Запись
            if (!WriteParametersFile(Data, SFDialog.FileName))
            {
                return(-2);
            }

            // Успешно
            return(0);
        }
예제 #18
0
 public RatesOxyplotBuilder(DiagramData diagramData)
 {
     _diagramData = diagramData;
     _allSeries   = InitializeAllSeries();
 }
예제 #19
0
        public static void Main(string[] args)
        {
            // Загрузка конфигурации
            ConfigAccessor ca = new ConfigAccessor();

            // Проверка запуска единственной копии
            bool  result;
            Mutex instance = new Mutex(true, ProgramDescription.AssemblyTitle, out result);

            if (!result)
            {
                MessageBox.Show(string.Format(Localization.GetText("ProgramLaunchedError", ca.InterfaceLanguage),
                                              ProgramDescription.AssemblyTitle), ProgramDescription.AssemblyTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            // Запуск программы в случае уникальности
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            // Отображение справки и запроса на принятие Политики
            if (!ProgramDescription.AcceptEULA())
            {
                return;
            }
            ProgramDescription.ShowAbout(true);

            // Передача параметра и предполагаемого типа файла
            if (args.Length > 0)
            {
                // Справка по командной строке
                if (args[0].Contains("?"))
                {
                    MessageBox.Show(Localization.GetText("CommandLineHelp", ca.InterfaceLanguage),
                                    ProgramDescription.AssemblyTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                // Входной файл
                DataInputTypes inputType = DataInputTypes.Unknown; // Извлечение по умолчанию

                if (args[0].Length >= 5)                           // Расширение (не менее 3-х символов) + '.' + имя (не менее одного символа)
                {
                    switch (args[0].Substring(args[0].Length - 4).ToLower())
                    {
                    case "." + ProgramDescription.AppDataExtension:
                        inputType = DataInputTypes.GDD;
                        break;

                    case "xlsx":
                    case ".xls":
                        inputType = DataInputTypes.XLS;
                        break;

                    case ".csv":
                        inputType = DataInputTypes.CSV;
                        break;
                    }
                }

                // Только открытие файла
                if (args.Length == 1)
                {
                    Application.Run(new GeomagDataDrawerForm(args[0], inputType));
                    return;
                }

                // Определение параметров для консольной обработки
                uint skippedLinesCount    = ca.SkippedLinesCount;
                uint expectedColumnsCount = ca.ExpectedColumnsCount;

                if (args.Length > 2)
                {
                    uint.TryParse(args[2], out skippedLinesCount);
                    if (skippedLinesCount > ConfigAccessor.MaxSkippedLinesCount)
                    {
                        skippedLinesCount = ConfigAccessor.MaxSkippedLinesCount;
                    }

                    if (args.Length > 3)
                    {
                        uint.TryParse(args[3], out expectedColumnsCount);
                        if (expectedColumnsCount > ConfigAccessor.MaxExpectedColumnsCount)
                        {
                            expectedColumnsCount = ConfigAccessor.MaxExpectedColumnsCount;
                        }
                        if (expectedColumnsCount < 2)
                        {
                            expectedColumnsCount = 2;
                        }
                    }
                }

                // Выходной файл
                int outputType = (int)DataOutputTypes.ANY;                  // По умолчанию - файл свободной топологии

                if (args[1].Length >= 5)
                {
                    switch (args[1].Substring(args[1].Length - 4).ToLower())
                    {
                    // Файлы данных
                    case "." + ProgramDescription.AppDataExtension:
                        outputType = (int)DataOutputTypes.GDD;
                        break;

                    /*case "xlsx":
                     * case ".xls":
                     *      outputType = DataOutputTypes.XLS;
                     *      break;*/

                    case ".csv":
                        outputType = (int)DataOutputTypes.CSV;
                        break;

                    // Файлы изображений
                    case ".png":
                        outputType = (int)ImageOutputTypes.PNG;
                        break;

                    case ".svg":
                        outputType = (int)ImageOutputTypes.SVG;
                        break;

                        /*case ".emf":
                         *      outputType = (int)ImageOutputTypes.EMF;
                         *      break;*/
                    }
                }

                // Запуск интерпретации
                DiagramData dd;
                if (inputType == DataInputTypes.Unknown)
                {
                    dd = new DiagramData(args[0], expectedColumnsCount, skippedLinesCount);
                }
                else
                {
                    dd = new DiagramData(args[0], inputType, skippedLinesCount);
                }

                // Контроль результата
                if (dd.InitResult != DiagramDataInitResults.Ok)
                {
                    MessageBox.Show(string.Format(Localization.GetText("DataFileLoadError", ca.InterfaceLanguage), args[0],
                                                  DiagramDataInitResultsMessage.ErrorMessage(dd.InitResult, ca.InterfaceLanguage)),
                                    ProgramDescription.AssemblyTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                // Запись файла данных
                if (outputType < 4)
                {
                    if (dd.SaveDataFile(args[1], (DataOutputTypes)outputType, true) < 0)
                    {
                        MessageBox.Show(Localization.GetText("DataFileSaveError", ca.InterfaceLanguage),
                                        ProgramDescription.AssemblyTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }
                }
                // Запись изображения
                else
                {
                    // Применение шаблона отображения
                    ColumnsAdderCmd cad = new ColumnsAdderCmd(dd.DataColumnsCount, true, ca.InterfaceLanguage);
                    if (!cad.LoadParametersFile(RDGenerics.AppStartupPath + ConfigAccessor.LineParametersFileName))
                    {
                        if (!cad.CreateParametersFile(RDGenerics.AppStartupPath + ConfigAccessor.LineParametersFileName))
                        {
                            return;
                        }

                        cad.LoadParametersFile(RDGenerics.AppStartupPath + ConfigAccessor.LineParametersFileName);
                    }

                    // Добавление кривых
                    for (int i = 0; i < cad.XColumnNumber.Count; i++)
                    {
                        int res = dd.AddDiagram(cad.XColumnNumber[i], cad.YColumnNumber[i]);
                        if (res < 0)
                        {
                            continue;
                        }

                        dd.GetStyle(i).DiagramImageWidth      = cad.ImageWidth[i];
                        dd.GetStyle(i).DiagramImageHeight     = cad.ImageHeight[i];
                        dd.GetStyle(i).DiagramImageLeftOffset = cad.ImageLeft[i];
                        dd.GetStyle(i).DiagramImageTopOffset  = cad.ImageTop[i];
                        if (!cad.AutoNameOffset[i])
                        {
                            dd.GetStyle(i).LineName           = cad.LineName[i];
                            dd.GetStyle(i).LineNameLeftOffset = cad.LineNameLeftOffset[i];
                            dd.GetStyle(i).LineNameTopOffset  = cad.LineNameTopOffset[i];
                        }
                    }

                    // Сохранение изображения
                    SavePicture sp = new SavePicture(dd, ca.InterfaceLanguage, true);
                    sp.SaveImage(args[1], (ImageOutputTypes)outputType);
                }

                // Завершено
            }
            else
            {
                // Случай загрузки backup-файла
                Application.Run(new GeomagDataDrawerForm("", DataInputTypes.Unspecified));
            }
        }
예제 #20
0
 public DiagramViewModel(DiagramData diagramData)
 {
     ModelDataProperty = diagramData;
 }