Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        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();
        }