// Конструктор 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(); }
private void OpenDiagramForm(DiagramData diagramData) { var diagramForm = new DiagramViewModel(diagramData); _launchedForms.Add(diagramForm); WindowManager.ShowWindow(diagramForm); }
// Метод сохраняет параметры стилей в файл шаблона 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); }
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; }
/// <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); }
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; }
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; } }
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; }
/// <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; } }
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)); }
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(); }
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(); } }
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); } } }
/// <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); }
public RatesOxyplotBuilder(DiagramData diagramData) { _diagramData = diagramData; _allSeries = InitializeAllSeries(); }
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)); } }
public DiagramViewModel(DiagramData diagramData) { ModelDataProperty = diagramData; }