void PlantView_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { foreach (var g in _extGraphs) { ExtGraph.Children.Remove(g); } _extGraphs.Clear(); foreach (var g in _wells) { ExtGraph.Children.Remove(g); } _wells.Clear(); PlantViewModel P = e.NewValue as PlantViewModel; if (P != null) { EnumerableDataSource <Time.Core.TimestampValue> ds = new EnumerableDataSource <TimestampValue>(P.plant.Extractions.AsTimeStamps); ds.SetXMapping(var => dateAxis.ConvertToDouble(var.Time)); ds.SetYMapping(var => var.Value); _extGraphs.Add(ExtGraph.AddLineGraph(ds, new Pen(Brushes.Black, 3), new PenDescription("Groundwater"))); if (P.plant.SurfaceWaterExtrations.Items.Count > 0) { EnumerableDataSource <Time.Core.TimestampValue> ds2 = new EnumerableDataSource <TimestampValue>(P.plant.SurfaceWaterExtrations.AsTimeStamps); ds2.SetXMapping(var => dateAxis.ConvertToDouble(var.Time)); ds2.SetYMapping(var => var.Value); _extGraphs.Add(ExtGraph.AddLineGraph(ds2, new Pen(Brushes.Red, 3), new PenDescription("Surface water"))); } } ZoomToTimeScale(); }
public void ZoomToTimeScale() { if (SelectionEndTime != DateTime.MinValue) { double xmin = dateAxis.ConvertToDouble(SelectionStartTime); double xlength = dateAxis.ConvertToDouble(SelectionEndTime) - dateAxis.ConvertToDouble(SelectionStartTime); DataRect visible2; ExtGraph.FitToView(); visible2 = new DataRect(xmin, ExtGraph.Visible.Y, xlength, ExtGraph.Visible.Height); PlantViewModel Pm = DataContext as PlantViewModel; //Zoom the extraction graph if (Pm != null && (Pm.plant.Extractions.Items.Count() != 0 | Pm.plant.SurfaceWaterExtrations.Items.Count() != 0)) { var select = Pm.plant.Extractions.Items.Union(Pm.plant.SurfaceWaterExtrations.Items).Where(var => var.StartTime >= SelectionStartTime & var.EndTime <= SelectionEndTime); if (select != null && select.Count() != 0) { double ymin = select.Min(y => y.Value); double yheight = select.Max(y => y.Value) - ymin; ymin = ymin - 0.05 * yheight; yheight *= 1.1; visible2 = new DataRect(xmin, ymin, xlength, yheight); } } ExtGraph.Visible = visible2; } }
private void ShowWells_Checked(object sender, RoutedEventArgs e) { PlantViewModel P = DataContext as PlantViewModel; if (P != null) { foreach (var I in P.PumpingIntakes) { EnumerableDataSource <Time.Core.TimestampValue> ds = new EnumerableDataSource <TimestampValue>(I.Intake.Extractions.AsTimeStamps); ds.SetXMapping(var => dateAxis.ConvertToDouble(var.Time)); ds.SetYMapping(var => var.Value); _wells.Add(ExtGraph.AddLineGraph(ds, I.Intake.ToString())); } } ZoomToTimeScale(); }