public override object ShowViewDialog(IViewController owner) { IEnumerable <ChartInfo> charts = null; View.ShowDialog(owner.View); if (selectedOption != ChartOption.NoCharts) { var data = OutputData.GetData(inputFilePath); if (selectedOption == ChartOption.DefaultCharts) { charts = buildDefaultCharts(data); } else if (selectedOption == ChartOption.CustomCharts) { using (var custom = new CustomChartsController(data, Path.ChangeExtension(inputFilePath, Strings.GraphTemplateFileExtension))) { charts = custom.ShowViewDialog(this) as IEnumerable <ChartInfo>; } if (charts != null && charts.Any()) { GraphTemplateStream.Write(Path.ChangeExtension(inputFilePath, Strings.GraphTemplateFileExtension), charts); } } } return(charts); }
public override void ProcessCommand(Control control, Command command) { Debug.Assert(View.SelectedTab == null || (View.SelectedTab.Controls.Count > 0 && View.SelectedTab.Controls[0] is ChartSetup)); if (command == Command.AddPrimary) { var chartSetup = View.SelectedTab.Controls[0] as ChartSetup; var selectedItems = chartSetup.SelectedSeries.Cast <SeriesInfo>().ToList(); var allDataSource = chartSetup.DataSource as IList; var primaryDataSource = chartSetup.PrimarySeries; foreach (var s in selectedItems) { allDataSource.Remove(s); primaryDataSource.Add(s); s.ShowInSecondaryVerticalAxis = false; } } else if (command == Command.AddSecondary) { var chartSetup = View.SelectedTab.Controls[0] as ChartSetup; var selectedItems = chartSetup.SelectedSeries.Cast <SeriesInfo>().ToList(); var allDataSource = chartSetup.DataSource as IList; var secondaryDataSource = chartSetup.SecondarySeries; foreach (var s in selectedItems) { allDataSource.Remove(s); secondaryDataSource.Add(s); s.ShowInSecondaryVerticalAxis = true; } } else if (command == Command.RemovePrimary) { var chartSetup = View.SelectedTab.Controls[0] as ChartSetup; var selectedItems = chartSetup.SelectedPrimarySeries.ToList(); var allDataSource = chartSetup.DataSource as IList; var primaryDataSource = chartSetup.PrimarySeries; foreach (var s in selectedItems) { primaryDataSource.Remove(s); allDataSource.Add(s); } } else if (command == Command.RemoveSecondary) { var chartSetup = View.SelectedTab.Controls[0] as ChartSetup; var selectedItems = chartSetup.SelectedSecondarySeries.ToList(); var allDataSource = chartSetup.DataSource as IList; var secondaryDataSource = chartSetup.SecondarySeries; foreach (var s in selectedItems) { secondaryDataSource.Remove(s); allDataSource.Add(s); } } else if (command == Command.Load) { var series = OutputData.GetAllSeries(data).ToList(); try { control.Enabled = false; View.ClearTabs(); var graphs = GraphTemplateStream.Read(templateFilePath, data); foreach (var graph in graphs) { ProcessCommand(null, Command.AddTab); loadGraph(View.SelectedTab.Controls[0] as ChartSetup, graph); } control.Enabled = true; } catch (Exception exc) { if (exc is FormatException) { View.ShowErrorMessage(Strings.FormatExceptionMessage, Strings.FormatExceptionCaption); } else if (exc is InvalidOperationException) { View.ShowErrorMessage(Strings.InvalidOperationExceptionMessage, Strings.InvalidOperationExceptionCaption); } else if (exc is IOException) { View.ShowErrorMessage(Strings.IOExceptionMessage, Strings.IOExceptionCaption); } else { throw; } } } else if (command == Command.AddTab) { var newTab = View.AddNewTab(); (View.SelectedTab.Controls[0] as ChartSetup).DataSource = new BindingList <SeriesInfo>(OutputData.GetAllSeries(data).ToList()); } else if (command == Command.RemoveTab) { Debug.Assert(View.SelectedTab != null); View.RemoveTab(View.SelectedTab); } else if (command == Command.Accept) { View.DialogResult = DialogResult.OK; View.Close(); } else if (command == Command.Cancel) { View.DialogResult = DialogResult.Cancel; View.Close(); } else { Debug.Assert(false, "command"); } }