/// <summary> /// Initializes a new instance of the DataPointSeriesWithAxes class. /// </summary> protected DataPointSeriesWithAxes() { DataPointsByActualDependentValue = new OrderedMultipleDictionary <IComparable, DataPoint>( false, (left, right) => left.CompareTo(right), (leftDataPoint, rightDataPoint) => RuntimeHelpers.GetHashCode(leftDataPoint).CompareTo(RuntimeHelpers.GetHashCode(rightDataPoint))); }
private void AddDataPointsByXValue(IEnumerable <DataPoint> dataPoints) { if (this._dataPointsByXValue == null) { this._dataPointsByXValue = new OrderedMultipleDictionary <object, DataPoint>(this.GetXValueKeyComparison()); } DataValueType actualXvalueType = this.ActualXValueType; foreach (XYDataPoint xyDataPoint in dataPoints) { this._dataPointsByXValue.Add(ValueHelper.ConvertValue(xyDataPoint.XValue, actualXvalueType), (DataPoint)xyDataPoint); } }
internal override void RemoveAllDataPoints() { IEnumerable <DataPoint> that = (IEnumerable <DataPoint>) this._dataPointsCollectionShadow; this._dataPointsByXValue = (OrderedMultipleDictionary <object, DataPoint>)null; if (that == null) { return; } if (this.ChartArea != null && this.ChartArea.IsTemplateApplied) { EnumerableFunctions.ForEach <DataPoint>(that, (Action <DataPoint>)(item => item.ViewState = DataPointViewState.Hiding)); } else { EnumerableFunctions.ForEach <DataPoint>(that, (Action <DataPoint>)(item => this.UninitializeDataPoint(item))); } }
private void InvalidateDataPointsByXValue() { this._dataPointsByXValue = (OrderedMultipleDictionary<object, DataPoint>)null; }
private void AddDataPointsByXValue(IEnumerable<DataPoint> dataPoints) { if (this._dataPointsByXValue == null) this._dataPointsByXValue = new OrderedMultipleDictionary<object, DataPoint>(this.GetXValueKeyComparison()); DataValueType actualXvalueType = this.ActualXValueType; foreach (XYDataPoint xyDataPoint in dataPoints) this._dataPointsByXValue.Add(ValueHelper.ConvertValue(xyDataPoint.XValue, actualXvalueType), (DataPoint)xyDataPoint); }
internal override void RemoveAllDataPoints() { IEnumerable<DataPoint> that = (IEnumerable<DataPoint>)this._dataPointsCollectionShadow; this._dataPointsByXValue = (OrderedMultipleDictionary<object, DataPoint>)null; if (that == null) return; if (this.ChartArea != null && this.ChartArea.IsTemplateApplied) EnumerableFunctions.ForEach<DataPoint>(that, (Action<DataPoint>)(item => item.ViewState = DataPointViewState.Hiding)); else EnumerableFunctions.ForEach<DataPoint>(that, (Action<DataPoint>)(item => this.UninitializeDataPoint(item))); }
internal override void OnDataPointsCollectionChanged(IEnumerable<DataPoint> removedDataPoints, IEnumerable<DataPoint> addedDataPoints, bool isResetting) { if (removedDataPoints != null) { if (this.DataPoints.Count == 0) { this.DataPointsByXValue.Clear(); } else { foreach (DataPoint dataPoint in removedDataPoints) this.DataPointsByXValue.Remove(dataPoint); } } if (isResetting) { removedDataPoints = (IEnumerable<DataPoint>)this._dataPointsCollectionShadow; this._dataPointsByXValue = (OrderedMultipleDictionary<object, DataPoint>)null; this.ResetActualValueType(); this.InvalidateDataPointsByXValue(); addedDataPoints = (IEnumerable<DataPoint>)this.DataPoints; } if (addedDataPoints != null && Enumerable.Any<DataPoint>(addedDataPoints)) { foreach (DataPoint dataPoint in addedDataPoints) this.InitializeDataPoint(dataPoint); DataValueType actualXvalueType = this.ActualXValueType; this.UpdateActualXValueType(addedDataPoints); if (this.ActualXValueType == actualXvalueType) this.AddDataPointsByXValue(addedDataPoints); this.UpdateActualYValueType(addedDataPoints); } this.UpdateActualDataPoints(); this.UpdateActualDataRange(); if (this.ChartArea != null && this.ChartArea.IsTemplateApplied) { if (!this.SeriesPresenter.SeriesCollectionChanging) { this.ChartArea.UpdateSession.BeginUpdates(); bool useAnimation = this.ChartArea.IsShowingAnimationEnabled && (this.XAxis.Scale == null || !this.XAxis.Scale.IsScrolling) && (this.YAxis.Scale == null || !this.YAxis.Scale.IsScrolling); if (removedDataPoints != null) EnumerableFunctions.ForEach<DataPoint>(removedDataPoints, (Action<DataPoint>)(item => this.SeriesPresenter.OnDataPointRemoved(item, useAnimation))); if (addedDataPoints != null) EnumerableFunctions.ForEach<DataPoint>(addedDataPoints, (Action<DataPoint>)(item => this.SeriesPresenter.OnDataPointAdded(item, useAnimation))); this.ChartArea.UpdateSession.EndUpdates(); } } else if (removedDataPoints != null) EnumerableFunctions.ForEach<DataPoint>(removedDataPoints, (Action<DataPoint>)(item => this.UninitializeDataPoint(item))); this._dataPointsCollectionShadow = Enumerable.ToArray<DataPoint>((IEnumerable<DataPoint>)this.DataPoints); }
internal override void OnDataPointsCollectionChanged(IEnumerable <DataPoint> removedDataPoints, IEnumerable <DataPoint> addedDataPoints, bool isResetting) { if (removedDataPoints != null) { if (this.DataPoints.Count == 0) { this.DataPointsByXValue.Clear(); } else { foreach (DataPoint dataPoint in removedDataPoints) { this.DataPointsByXValue.Remove(dataPoint); } } } if (isResetting) { removedDataPoints = (IEnumerable <DataPoint>) this._dataPointsCollectionShadow; this._dataPointsByXValue = (OrderedMultipleDictionary <object, DataPoint>)null; this.ResetActualValueType(); this.InvalidateDataPointsByXValue(); addedDataPoints = (IEnumerable <DataPoint>) this.DataPoints; } if (addedDataPoints != null && Enumerable.Any <DataPoint>(addedDataPoints)) { foreach (DataPoint dataPoint in addedDataPoints) { this.InitializeDataPoint(dataPoint); } DataValueType actualXvalueType = this.ActualXValueType; this.UpdateActualXValueType(addedDataPoints); if (this.ActualXValueType == actualXvalueType) { this.AddDataPointsByXValue(addedDataPoints); } this.UpdateActualYValueType(addedDataPoints); } this.UpdateActualDataPoints(); this.UpdateActualDataRange(); if (this.ChartArea != null && this.ChartArea.IsTemplateApplied) { if (!this.SeriesPresenter.SeriesCollectionChanging) { this.ChartArea.UpdateSession.BeginUpdates(); bool useAnimation = this.ChartArea.IsShowingAnimationEnabled && (this.XAxis.Scale == null || !this.XAxis.Scale.IsScrolling) && (this.YAxis.Scale == null || !this.YAxis.Scale.IsScrolling); if (removedDataPoints != null) { EnumerableFunctions.ForEach <DataPoint>(removedDataPoints, (Action <DataPoint>)(item => this.SeriesPresenter.OnDataPointRemoved(item, useAnimation))); } if (addedDataPoints != null) { EnumerableFunctions.ForEach <DataPoint>(addedDataPoints, (Action <DataPoint>)(item => this.SeriesPresenter.OnDataPointAdded(item, useAnimation))); } this.ChartArea.UpdateSession.EndUpdates(); } } else if (removedDataPoints != null) { EnumerableFunctions.ForEach <DataPoint>(removedDataPoints, (Action <DataPoint>)(item => this.UninitializeDataPoint(item))); } this._dataPointsCollectionShadow = Enumerable.ToArray <DataPoint>((IEnumerable <DataPoint>) this.DataPoints); }
private void InvalidateDataPointsByXValue() { this._dataPointsByXValue = (OrderedMultipleDictionary <object, DataPoint>)null; }