private void OnSeriesAdded(XYSeries series) { series.ChartArea = (ChartArea)this; series.PropertyChanged += new PropertyChangedEventHandler(this.OnSeriesPropertyChanged); if (!this.IsInitializing) { this.SyncSeriesAndAxes(); } else { series.UpdateActualValueTypes(); series.UpdateActualDataPoints(); series.UpdateActualDataRange(); this.GetScale(series, AxisOrientation.X); this.GetScale(series, AxisOrientation.Y); } if (this.IsTemplateApplied) { series.SeriesPresenter.OnSeriesAdded(); } if (this.DataVirtualizer == null) { return; } this.DataVirtualizer.InitializeSeries(series); this.LoadVirtualizedData((IEnumerable <XYSeries>) new XYSeries[1] { series }); }
internal static Tuple <DataValueType, DataValueType, bool, object> GetSeriesKey(StackedColumnSeries series) { DataValueType dataValueType = series.ActualYValueType; if (dataValueType == DataValueType.Auto) { if (series.ChartArea != null) { XYSeries xySeries = (XYSeries)Enumerable.FirstOrDefault <ColumnSeries>(Enumerable.OfType <ColumnSeries>((IEnumerable)series.ChartArea.GetSeries()), (Func <ColumnSeries, bool>)(s => s.ActualYValueType != DataValueType.Auto)); if (xySeries != null) { dataValueType = xySeries.ActualYValueType; } } if (dataValueType == DataValueType.Auto && series.ActualYDataRange.HasData) { dataValueType = ValueHelper.GetDataValueType((object)series.ActualYDataRange.Minimum); } else { series.UpdateActualValueTypes(); dataValueType = series.ActualYValueType; } } if (dataValueType == DataValueType.Integer) { dataValueType = DataValueType.Float; } return(new Tuple <DataValueType, DataValueType, bool, object>(dataValueType, series.ActualXValueType, series.IsHundredPercent, series.GroupingKey)); }
private bool IsXAxisReverseRequired(XYSeries series) { if (this.FlowDirection == FlowDirection.RightToLeft && this.Orientation == Orientation.Horizontal) { return(series.XAxis.Scale is NumericScale); } return(false); }
protected virtual Range <IComparable> GetActualYDataRange() { IEnumerable <object> yvalues = XYSeries.GetYValues((IEnumerable <DataPoint>) this.ActualDataPoints); if (this.ActualYValueType == DataValueType.Category) { this.YValues = Enumerable.Distinct <object>(yvalues); } return(this.YAggregator.GetRange(yvalues)); }
internal IEnumerable <XYSeries> FindClusterSeries(XYSeries series) { return(Enumerable.Where <XYSeries>((IEnumerable <XYSeries>) this.Series, (Func <XYSeries, bool>)(item => { if (item.ClusterKey == series.ClusterKey) { return item.Visibility == Visibility.Visible; } return false; }))); }
private void OnSeriesRemoved(XYSeries series) { series.PropertyChanged -= new PropertyChangedEventHandler(this.OnSeriesPropertyChanged); if (!this.IsInitializing) { this.SyncSeriesAndAxes(); } if (!this.IsTemplateApplied) { return; } series.SeriesPresenter.OnSeriesRemoved(); }
internal Axis GetAxis(XYSeries series, AxisOrientation orientation) { Axis axis; if (orientation == AxisOrientation.X) { axis = this.GetAxis(series.XAxisName, orientation); series.XAxisName = axis.Name; } else { axis = this.GetAxis(series.YAxisName, orientation); series.YAxisName = axis.Name; } return(axis); }
public Scale GetScale(XYSeries series, AxisOrientation orientation) { Axis axis = this.GetAxis(series, orientation); DataValueType valueType = orientation == AxisOrientation.X ? series.ActualXValueType : series.ActualYValueType; if (valueType != DataValueType.Auto) { if (axis.Scale != null && !axis.Scale.CanProject(valueType)) { bool flag = false; foreach (XYSeries xySeries in this.FindSeriesWithDefinedValueType(axis)) { if (xySeries != series && xySeries.DataPoints.Count > 0) { DataValueType dataValueType = orientation == AxisOrientation.X ? xySeries.ActualXValueType : xySeries.ActualYValueType; if (valueType != dataValueType && dataValueType != DataValueType.Auto) { flag = true; break; } } } if (!flag) { axis.Scale = (Scale)null; } else { axis = this.FindAxis(valueType, orientation) ?? this.CreateAxis((string)null, orientation); series.XAxisName = axis.Name; } } } else { valueType = DataValueType.Float; } if (axis.Scale == null) { axis.Scale = Scale.CreateScaleByType(valueType); if (this.DataVirtualizer != null) { this.DataVirtualizer.InitializeAxisScale(axis, axis.Scale); } } return(axis.Scale); }
private void OnSeriesPropertyChanged(object sender, PropertyChangedEventArgs args) { if (this.IsInitializing) { return; } XYSeries series = sender as XYSeries; switch (args.PropertyName) { case "ActualXDataRange": this.UpdateScaleRangeIfUndefined(series.XAxis, series.ActualXValueType); break; case "ActualYDataRange": this.UpdateScaleRangeIfUndefined(series.YAxis, series.ActualYValueType); break; case "XValues": this.UpdateScaleValuesIfUndefined(series.XAxis, series.ActualXValueType); break; case "YValues": this.UpdateScaleValuesIfUndefined(series.YAxis, series.ActualYValueType); break; case "ActualXValueType": this.UpdateScaleValueType(series.XAxis); series.XAxis.IsReversed = this.IsXAxisReverseRequired(series); break; case "ActualYValueType": this.UpdateScaleValueType(series.YAxis); break; case "Visibility": this.UpdateScaleRangeIfUndefined(series.XAxis, series.ActualXValueType); this.UpdateScaleRangeIfUndefined(series.YAxis, series.ActualYValueType); break; } }
private void RecalculateXIntervals() { if (this._chartArea == null || this._chartArea.Series.Count <= 0) { return; } if (double.IsNaN(this.XScaleLabelDensity)) { XYSeries xySeries = Enumerable.FirstOrDefault <XYSeries>((IEnumerable <XYSeries>) this._chartArea.Series); if (xySeries != null) { Scale scale = xySeries.XAxis.Scale; if (scale != null) { this._xScalePositions = LabelVisibilityManager.GetScalePositions(scale); } } } else { this._xScalePositions = LabelVisibilityManager.IterateDoubles(0.0, 1.0, 1.0 / this.XScaleLabelDensity); } this._dataPointRanges.Clear(); }
public PointSeriesPresenter(XYSeries series) : base(series) { }
public Scale GetScale(XYSeries series, AxisOrientation orientation) { Axis axis = this.GetAxis(series, orientation); DataValueType valueType = orientation == AxisOrientation.X ? series.ActualXValueType : series.ActualYValueType; if (valueType != DataValueType.Auto) { if (axis.Scale != null && !axis.Scale.CanProject(valueType)) { bool flag = false; foreach (XYSeries xySeries in this.FindSeriesWithDefinedValueType(axis)) { if (xySeries != series && xySeries.DataPoints.Count > 0) { DataValueType dataValueType = orientation == AxisOrientation.X ? xySeries.ActualXValueType : xySeries.ActualYValueType; if (valueType != dataValueType && dataValueType != DataValueType.Auto) { flag = true; break; } } } if (!flag) { axis.Scale = (Scale)null; } else { axis = this.FindAxis(valueType, orientation) ?? this.CreateAxis((string)null, orientation); series.XAxisName = axis.Name; } } } else valueType = DataValueType.Float; if (axis.Scale == null) { axis.Scale = Scale.CreateScaleByType(valueType); if (this.DataVirtualizer != null) this.DataVirtualizer.InitializeAxisScale(axis, axis.Scale); } return axis.Scale; }
internal IEnumerable<XYSeries> FindClusterSeries(XYSeries series) { return Enumerable.Where<XYSeries>((IEnumerable<XYSeries>)this.Series, (Func<XYSeries, bool>)(item => { if (item.ClusterKey == series.ClusterKey) return item.Visibility == Visibility.Visible; return false; })); }
public LineSeriesPresenter(XYSeries series) : base(series) { this.IsRootPanelClipped = true; }
internal Axis GetAxis(XYSeries series, AxisOrientation orientation) { Axis axis; if (orientation == AxisOrientation.X) { axis = this.GetAxis(series.XAxisName, orientation); series.XAxisName = axis.Name; } else { axis = this.GetAxis(series.YAxisName, orientation); series.YAxisName = axis.Name; } return axis; }
protected XYSeriesPresenter(XYSeries series) : base((Semantic.Reporting.Windows.Chart.Internal.Series)series) { this.IsSimplifiedRenderingModeCheckRequired = true; }
public ColumnSeriesPresenter(XYSeries series) : base(series) { this.IsRootPanelClipped = true; this.DefaultSimplifiedRenderingThreshold = 200; }
private void OnSeriesRemoved(XYSeries series) { series.PropertyChanged -= new PropertyChangedEventHandler(this.OnSeriesPropertyChanged); if (!this.IsInitializing) this.SyncSeriesAndAxes(); if (!this.IsTemplateApplied) return; series.SeriesPresenter.OnSeriesRemoved(); }
private void OnSeriesAdded(XYSeries series) { series.ChartArea = (ChartArea)this; series.PropertyChanged += new PropertyChangedEventHandler(this.OnSeriesPropertyChanged); if (!this.IsInitializing) { this.SyncSeriesAndAxes(); } else { series.UpdateActualValueTypes(); series.UpdateActualDataPoints(); series.UpdateActualDataRange(); this.GetScale(series, AxisOrientation.X); this.GetScale(series, AxisOrientation.Y); } if (this.IsTemplateApplied) series.SeriesPresenter.OnSeriesAdded(); if (this.DataVirtualizer == null) return; this.DataVirtualizer.InitializeSeries(series); this.LoadVirtualizedData((IEnumerable<XYSeries>)new XYSeries[1] { series }); }
private bool IsXAxisReverseRequired(XYSeries series) { if (this.FlowDirection == FlowDirection.RightToLeft && this.Orientation == Orientation.Horizontal) return series.XAxis.Scale is NumericScale; return false; }