public override void OnRefresh() { ContentsBox.Text = ""; string FullFileName = Controller.ToAbsolute(FileName); if (File.Exists(FullFileName)) { APSIMInputFile Metfile = new APSIMInputFile(); Metfile.Open(FullFileName); MetData = Metfile.ToTable(); Metfile.Close(); MetData.TableName = "Met"; // Get latitude for later on. if (Metfile.Constant("latitude") == null) { MessageBox.Show("A value for latitude was expected, but could not be found in this file.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); Latitude = Double.NaN; } else { Latitude = Convert.ToDouble(Metfile.Constant("latitude").Value, new System.Globalization.CultureInfo("en-US")); } StartDate = DataTableUtility.GetDateFromRow(MetData.Rows[0]); EndDate = DataTableUtility.GetDateFromRow(MetData.Rows[MetData.Rows.Count - 1]); PopulateRawData(); YearStartBox.ValueChanged -= YearStartBoxChanged; NumYearsBox.ValueChanged -= NumYearsBoxChanged; YearStartBox.Value = StartDate.Year; NumYearsBox.Value = 1; if (NumYears != 0) { NumYearsBox.Value = NumYears; } if (YearStart != 0) { YearStartBox.Value = YearStart; } YearStartBox.ValueChanged += YearStartBoxChanged; NumYearsBox.ValueChanged += NumYearsBoxChanged; RefreshAllCharts(); } YearPanel.Visible = (TabControl.SelectedIndex != 0); YearPanel.Parent = this; YearPanel.Top = TabControl.SelectedTab.Top + 2; YearPanel.BringToFront(); }
private DataTable ProcessApsimFileReader(XmlNode Node) { // ------------------------------------------------- // The XmlNode is a GDApsimFileReader so go read // a series of APSIM output files and return a // DataTable with all data. // ------------------------------------------------- List <string> FileNames = XmlHelper.Values(Node, "FileName"); if (FileNames.Count == 0) { FileNames.AddRange(DefaultFileNames); } DataTable Data = null; foreach (string FileSpec in FileNames) { if (FileSpec != "") { string FileSpecNoMacros = Configuration.RemoveMacros(FileSpec); string Dir = Path.GetDirectoryName(FileSpecNoMacros); if (Dir == "") { Dir = Directory.GetCurrentDirectory(); } foreach (string FileName in Directory.GetFiles(Dir, Path.GetFileName(FileSpecNoMacros))) { if (FileName != "" && File.Exists(FileName)) { string CheckPointFile = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(FileName)), "CheckPoint", Path.GetFileName(FileName)); if (File.Exists(FileName)) { APSIMInputFile InFile = new APSIMInputFile(); InFile.Open(FileName); DataTable FileData = InFile.ToTable(); InFile.Close(); InFile.AddConstantsToData(FileData); if (Data == null) { Data = FileData; } else { Merge(FileData, Data); } } if (File.Exists(CheckPointFile)) { APSIMInputFile InFile = new APSIMInputFile(); InFile.Open(CheckPointFile); DataTable FileData = InFile.ToTable(); InFile.Close(); InFile.SetConstant("title", "{Checkpoint} " + InFile.Constant("title").Value); InFile.AddConstantsToData(FileData); if (Data == null) { Data = FileData; } else { Merge(FileData, Data); } } } } } } return(Data); }