internal override double GetMarkerSize(DataPoint dataPoint) { BubbleDataPoint bubbleDataPoint = dataPoint as BubbleDataPoint; if (bubbleDataPoint != null) return bubbleDataPoint.SizeValueInScaleUnits; return 0.0; }
internal override void BindViewToDataPoint(DataPoint dataPoint, FrameworkElement view, string valueName) { base.BindViewToDataPoint(dataPoint, view, valueName); LabelControl labelControl = view as LabelControl; if (labelControl == null) return; ColumnDataPoint columnDataPoint = dataPoint as ColumnDataPoint; if (columnDataPoint == null || !(valueName == "LabelPosition") && valueName != null) return; ContentPositions alignment; switch (columnDataPoint.LabelPosition) { case ColumnLabelPosition.InsideCenter: alignment = ContentPositions.InsideCenter; break; case ColumnLabelPosition.InsideBase: alignment = ContentPositions.InsideBase; break; case ColumnLabelPosition.InsideEnd: alignment = ContentPositions.InsideEnd; break; case ColumnLabelPosition.OutsideBase: alignment = ContentPositions.OutsideBase; break; case ColumnLabelPosition.OutsideEnd: alignment = ContentPositions.OutsideEnd; break; default: throw new ArgumentOutOfRangeException("value"); } AnchorPanel.SetContentPosition((UIElement)labelControl, alignment); }
protected override void BindViewToDataPoint(DataPoint dataPoint, FrameworkElement view, string valueName) { DataPointView dataPointView = dataPoint != null ? dataPoint.View : (DataPointView)null; if (dataPointView == null) return; this.LabelPresenter.BindViewToDataPoint(dataPoint, (FrameworkElement)dataPointView.LabelView, valueName); this.MarkerPresenter.BindViewToDataPoint(dataPoint, dataPointView.MarkerView, valueName); }
internal override void BindViewToDataPoint(DataPoint dataPoint, FrameworkElement view, string valueName) { base.BindViewToDataPoint(dataPoint, view, valueName); LabelControl labelControl = view as LabelControl; if (labelControl == null) return; labelControl.Content = dataPoint.LabelContent; }
internal override void OnUpdateView(DataPoint dataPoint) { base.OnUpdateView(dataPoint); if (dataPoint.View == null || dataPoint.View.LabelView == null) return; AnchorPanel.SetValidContentPositions((UIElement)dataPoint.View.LabelView, ContentPositions.InsideCenter | ContentPositions.InsideBase | ContentPositions.InsideEnd | ContentPositions.OutsideBase | ContentPositions.OutsideEnd); ColumnSeriesLabelPresenter.SetLabelMaxMovingDistance((XYChartArea)this.SeriesPresenter.Series.ChartArea, (UIElement)dataPoint.View.LabelView); }
internal override void BindViewToDataPoint(DataPoint dataPoint, FrameworkElement view, string valueName) { MarkerControl markerControl = view as MarkerControl; if (markerControl != null) { IAppearanceProvider appearanceProvider = (IAppearanceProvider)dataPoint; if (appearanceProvider != null) { if (valueName == "Fill" || valueName == null) markerControl.Background = appearanceProvider.Fill; if (valueName == "Stroke" || valueName == null) markerControl.Stroke = appearanceProvider.Stroke; if (valueName == "StrokeThickness" || valueName == null) markerControl.StrokeThickness = appearanceProvider.StrokeThickness; if (valueName == "MarkerType" || valueName == null) markerControl.MarkerType = dataPoint.MarkerType; if (valueName == "MarkerStyle" || valueName == null) markerControl.Style = dataPoint.MarkerStyle; if (valueName == "MarkerSize" || valueName == null) { double markerSize = this.GetMarkerSize(dataPoint); markerControl.Width = markerSize; markerControl.Height = markerSize; } if (valueName == "Opacity" || valueName == "ActualOpacity" || valueName == null) markerControl.Opacity = dataPoint.ActualOpacity; if (valueName == "Effect" || valueName == "ActualEffect" || valueName == null) markerControl.Effect = dataPoint.ActualEffect; ((AnchorPanel)this.MarkersPanel).Invalidate(); } } Path path = view as Path; if (path == null) return; IAppearanceProvider appearanceProvider1 = (IAppearanceProvider)dataPoint; if (appearanceProvider1 == null) return; if (valueName == "Fill" || valueName == null) path.Fill = appearanceProvider1.Fill; if (valueName == "Stroke" || valueName == null) path.Stroke = appearanceProvider1.Stroke; if (valueName == "StrokeThickness" || valueName == null) path.StrokeThickness = appearanceProvider1.StrokeThickness; if (valueName == "MarkerType" || valueName == "MarkerSize" || valueName == null) { double markerSize = this.GetMarkerSize(dataPoint); path.Width = markerSize; path.Height = markerSize; path.Data = VisualUtilities.GetMarkerGeometry(dataPoint.MarkerType, new Size(markerSize, markerSize)); } if (valueName == "Opacity" || valueName == "ActualOpacity" || valueName == null) path.Opacity = dataPoint.ActualOpacity; if (!(valueName == "Effect") && !(valueName == "ActualEffect") && valueName != null) return; path.Effect = dataPoint.ActualEffect; }
protected virtual IEnumerable<FrameworkElement> GetDataPointViews(DataPoint dataPoint) { if (dataPoint.View != null) { if (dataPoint.View.MainView != null) yield return dataPoint.View.MainView; if (dataPoint.View.HighlightView != null) yield return dataPoint.View.HighlightView; if (dataPoint.View.MarkerView != null) yield return dataPoint.View.MarkerView; } }
internal override void OnUpdateView(DataPoint dataPoint) { if (this.SeriesPresenter.IsDataPointVisible(dataPoint) && dataPoint.ToolTipContent != null) { this.AddToolTip(dataPoint); } else { if (this.SeriesPresenter.IsDataPointVisible(dataPoint) && dataPoint.ToolTipContent != null) return; this.ClearToolTip(dataPoint); } }
internal override void OnUpdateView(DataPoint dataPoint) { base.OnUpdateView(dataPoint); if (dataPoint.View == null || dataPoint.View.LabelView == null) return; StackedColumnSeriesPresenter columnSeriesPresenter = this.SeriesPresenter as StackedColumnSeriesPresenter; ContentPositions validContentPositions = ContentPositions.InsideCenter; if (columnSeriesPresenter.IsStackTopSeries() && !columnSeriesPresenter.IsHundredPercent()) validContentPositions |= ContentPositions.OutsideEnd; AnchorPanel.SetValidContentPositions((UIElement)dataPoint.View.LabelView, validContentPositions); AnchorPanel.SetContentPosition((UIElement)dataPoint.View.LabelView, ContentPositions.InsideCenter); AnchorPanel.SetAnchorMargin((UIElement)dataPoint.View.LabelView, 0.0); ColumnSeriesLabelPresenter.SetLabelMaxMovingDistance((XYChartArea)this.SeriesPresenter.Series.ChartArea, (UIElement)dataPoint.View.LabelView); }
internal override void BindViewToDataPoint(DataPoint dataPoint, FrameworkElement view, string valueName) { base.BindViewToDataPoint(dataPoint, view, valueName); StackedColumnSeries stackedColumnSeries = dataPoint.Series as StackedColumnSeries; StackedColumnDataPoint stackedColumnDataPoint = dataPoint as StackedColumnDataPoint; LabelControl labelControl = view as LabelControl; if (labelControl == null || stackedColumnDataPoint == null || (stackedColumnSeries == null || !stackedColumnSeries.ActualIsHundredPercent) || !(valueName == "ActualLabelContent") && valueName != null) return; double yvaluePercent = stackedColumnDataPoint.YValuePercent; if (Math.Abs(yvaluePercent) < 0.005) labelControl.Content = (object)null; else labelControl.Content = (object)yvaluePercent.ToString("P0", (IFormatProvider)CultureInfo.CurrentCulture); }
protected override void UpdateView(DataPoint dataPoint) { if (this.IsDataPointViewVisible(dataPoint)) { XYDataPoint xyDataPoint = dataPoint as XYDataPoint; if (xyDataPoint != null && dataPoint.View != null) { Point point = this.ChartArea.ConvertScaleToPlotCoordinate(this.Series.XAxis, this.Series.YAxis, xyDataPoint.XValueInScaleUnits, xyDataPoint.YValueInScaleUnits); point.X = Math.Round(point.X); point.Y = Math.Round(point.Y); dataPoint.View.AnchorPoint = point; } } base.UpdateView(dataPoint); }
internal virtual void BindViewToDataPoint(DataPoint dataPoint, FrameworkElement view, string valueName) { MarkerControl markerControl = view as MarkerControl; if (markerControl == null || (IAppearanceProvider)dataPoint == null) return; if (valueName == "MarkerType" || valueName == null) markerControl.MarkerType = dataPoint.MarkerType; if (valueName == "MarkerStyle" || valueName == null) markerControl.Style = dataPoint.MarkerStyle; if (valueName == "MarkerSize" || valueName == null) { markerControl.Width = dataPoint.MarkerSize; markerControl.Height = dataPoint.MarkerSize; } if (valueName == "Opacity" || valueName == "ActualOpacity" || valueName == null) markerControl.Opacity = dataPoint.ActualOpacity; if (!(valueName == "Effect") && !(valueName == "ActualEffect") && valueName != null) return; markerControl.Effect = dataPoint.ActualEffect; }
internal override ContentPositions GetAutomaticLabelPosition(DataPoint dataPoint) { ContentPositions contentPositions1 = ContentPositions.TopCenter; ContentPositions contentPositions2 = ContentPositions.BottomCenter; if (this.SeriesPresenter.ChartArea != null) { if (this.SeriesPresenter.ChartArea.Orientation == Orientation.Vertical) { contentPositions1 = ContentPositions.MiddleRight; contentPositions2 = ContentPositions.MiddleLeft; } XYDataPoint xyDataPoint1 = dataPoint as XYDataPoint; int num = this.SeriesPresenter.Series.DataPoints.IndexOf(dataPoint); XYDataPoint xyDataPoint2 = num > 0 ? this.SeriesPresenter.Series.DataPoints[num - 1] as XYDataPoint : (XYDataPoint)null; XYDataPoint xyDataPoint3 = num < this.SeriesPresenter.Series.DataPoints.Count - 1 ? this.SeriesPresenter.Series.DataPoints[num + 1] as XYDataPoint : (XYDataPoint)null; if (xyDataPoint2 != null && xyDataPoint3 != null && (xyDataPoint1.YValueInScaleUnitsWithoutAnimation < xyDataPoint2.YValueInScaleUnitsWithoutAnimation && xyDataPoint1.YValueInScaleUnitsWithoutAnimation < xyDataPoint3.YValueInScaleUnitsWithoutAnimation) || xyDataPoint2 != null && xyDataPoint3 == null && xyDataPoint1.YValueInScaleUnitsWithoutAnimation < xyDataPoint2.YValueInScaleUnitsWithoutAnimation || xyDataPoint2 == null && xyDataPoint3 != null && xyDataPoint1.YValueInScaleUnitsWithoutAnimation < xyDataPoint3.YValueInScaleUnitsWithoutAnimation) return contentPositions2; } return contentPositions1; }
internal override void OnUpdateView(DataPoint dataPoint) { base.OnUpdateView(dataPoint); DataPointView view = dataPoint.View; if (view == null || view.MarkerView == null) return; double markerSize = this.GetMarkerSize(dataPoint); MarkerControl markerControl = view.MarkerView as MarkerControl; if (markerControl != null) { markerControl.Width = markerSize; markerControl.Height = markerSize; } Path path = view.MarkerView as Path; if (path != null) { path.Width = markerSize; path.Height = markerSize; path.Data = VisualUtilities.GetMarkerGeometry(dataPoint.MarkerType, new Size(markerSize, markerSize)); } this.SeriesPresenter.UpdateDataPointZIndex(dataPoint); dataPoint.UpdateActualLabelMargin(markerSize); ((AnchorPanel)this.MarkersPanel).Invalidate(); }
internal virtual void UninitializeDataPoint(DataPoint dataPoint) { if (dataPoint == null) return; dataPoint.ValueChanged -= new ValueChangedEventHandler(this.OnDataPointValueChanged_EventHandler); dataPoint.Series = (Series)null; }
internal virtual bool IsDataPointAppearsUnselected(DataPoint dataPoint) { if (dataPoint.IsSelected) return false; if (!this.HaveSelectedDataPoints && ((this.ChartArea != null ? (this.ChartArea.IsAnySeriesHaveSelection ? 1 : 0) : 0) == 0 && !this.IsDimmed)) return dataPoint.IsDimmed; return true; }
internal virtual void OnDataPointValueChanged(DataPoint dataPoint, string propertyName, object oldValue, object newValue) { }
protected override bool StartDataPointShowingAnimation(DataPoint dataPoint) { StoryboardGroup storyboardGroup = new StoryboardGroup(); if (!this.IsSeriesAnimationEnabled || (IAppearanceProvider)dataPoint == null) return false; double actualOpacity = dataPoint.ActualOpacity; dataPoint.ActualOpacity = 0.0; storyboardGroup.Children.Add(DependencyPropertyAnimationHelper.CreateAnimation(this.ChartArea, "ActualOpacity", (object)0.0, (object)actualOpacity, (Action<object, object>)((value1, value2) => dataPoint.ActualOpacity = (double)value2), dataPoint.Storyboards, this.Series.ActualTransitionDuration, this.Series.ActualTransitionEasingFunction)); storyboardGroup.Completed += (EventHandler)((source, args) => { if (dataPoint.ViewState != DataPointViewState.Showing) return; dataPoint.ViewState = DataPointViewState.Normal; }); storyboardGroup.Begin(); return true; }
internal virtual void InitializeDataPoint(DataPoint dataPoint) { if (dataPoint == null || dataPoint.Series != null) return; dataPoint.ViewState = DataPointViewState.Hidden; dataPoint.IsNewlyAdded = true; dataPoint.Series = this; if (dataPoint.IsSelected && !this.HaveSelectedDataPoints) this.UpdateSelectedDataPointFlag(dataPoint); dataPoint.ValueChanged += new ValueChangedEventHandler(this.OnDataPointValueChanged_EventHandler); }
protected override void OnSeriesDataPointValueChanged(DataPoint dataPoint, string valueName, object oldValue, object newValue) { switch (valueName) { case "XValue": this.ChangeDataPointXValue(dataPoint as XYDataPoint, newValue); break; case "YValue": this.ChangeDataPointYValue(dataPoint as XYDataPoint, newValue); break; case "XValueInScaleUnitsWithoutAnimation": case "YValueInScaleUnitsWithoutAnimation": if (this.ChartArea == null || !this.ChartArea.IsTemplateApplied || this.Series.LabelVisibility != Visibility.Visible) break; this.ChartArea.UpdateSession.ExecuteOnceAfterUpdating((Action)(() => this.LabelVisibilityManager.UpdateDataPointLabelVisibility()), (object)"LabelVisibilityManager_UpdateDataPointLabelVisibility", (string)null); break; case "XValueInScaleUnits": case "YValueInScaleUnits": if (this.ChartArea == null || !this.ChartArea.IsTemplateApplied) break; Tuple<Semantic.Reporting.Windows.Chart.Internal.Series, string> tuple = new Tuple<Semantic.Reporting.Windows.Chart.Internal.Series, string>((Semantic.Reporting.Windows.Chart.Internal.Series)this.Series, "__UpdateDataPointVisibility__"); if (this.ChartArea.UpdateSession.IsUpdating) { this.ChartArea.UpdateSession.ExecuteOnceBeforeUpdating((Action)(() => this.UpdateDataPointVisibility()), (object)tuple); break; } this.ChartArea.UpdateSession.PostExecuteOnceOnUIThread((Action)(() => this.UpdateDataPointVisibility()), (object)tuple); break; default: base.OnSeriesDataPointValueChanged(dataPoint, valueName, oldValue, newValue); break; } }
protected override bool StartDataPointHidingAnimation(DataPoint dataPoint) { return false; }
internal override void OnDataPointRemoved(DataPoint dataPoint, bool useHidingAnimation) { base.OnDataPointRemoved(dataPoint, useHidingAnimation); if (this.ChartArea == null || !this.ChartArea.IsTemplateApplied || this.Series.LabelVisibility != Visibility.Visible) return; this.ChartArea.UpdateSession.ExecuteOnceAfterUpdating((Action)(() => { if (this.LabelVisibilityManager == null) return; this.LabelVisibilityManager.UpdateDataPointLabelVisibility(); }), (object)"LabelVisibilityManager_UpdateDataPointLabelVisibility", (string)null); }
internal void SetDataPointViewState(DataPoint dataPoint, DataPointViewState newViewState) { if (newViewState == DataPointViewState.Normal || newViewState == DataPointViewState.Showing) { if (dataPoint.ViewState != DataPointViewState.Hidden) return; dataPoint.ViewState = newViewState; } else { if (newViewState != DataPointViewState.Hidden && newViewState != DataPointViewState.Hiding || (dataPoint.ViewState == DataPointViewState.Hidden || dataPoint.ViewState == DataPointViewState.Hiding)) return; dataPoint.ViewState = newViewState; } }
protected override void OnSeriesDataPointValueChanged(DataPoint dataPoint, string valueName, object oldValue, object newValue) { object obj = (object)null; bool flag = false; switch (valueName) { case "XValue": obj = ValueHelper.ConvertValue(oldValue, this.Series.ActualXValueType); flag = true; break; case "YValue": obj = ValueHelper.ConvertValue(((XYDataPoint)dataPoint).XValue, this.Series.ActualXValueType); break; case "YValueInScaleUnits": if (this.ChartArea != null && this.ChartArea.IsTemplateApplied) { obj = ValueHelper.ConvertValue(((XYDataPoint)dataPoint).XValue, this.Series.ActualXValueType); if (!this._suppressCounterpartInvalidationFlag) { EnumerableFunctions.ForEach<XYDataPoint>(Enumerable.Where<XYDataPoint>((IEnumerable<XYDataPoint>)this.GetCounterpartDataPoints(obj, true), (Func<XYDataPoint, bool>)(p => p != dataPoint)), (Action<XYDataPoint>)(p => p.Update())); break; } break; } break; } if (obj != null && this.ChartArea != null) this.DataPointsByXValueRanges.Remove(obj); if (flag && this.ChartArea != null && (!this.ChartArea.IsDirty && !this.ChartArea.UpdateSession.IsUpdating)) this.ChartArea.Invalidate(); base.OnSeriesDataPointValueChanged(dataPoint, valueName, oldValue, newValue); }
internal override void OnDataPointAdded(DataPoint dataPoint, bool useShowingAnimation) { XYDataPoint xyDataPoint = dataPoint as XYDataPoint; if (xyDataPoint == null) return; xyDataPoint.XValueInScaleUnits = this.Series.XAxis.Scale.ProjectDataValue(xyDataPoint.XValue); xyDataPoint.YValueInScaleUnits = this.Series.YAxis.Scale.ProjectDataValue(xyDataPoint.YValue); xyDataPoint.XValueInScaleUnitsWithoutAnimation = xyDataPoint.XValueInScaleUnits; xyDataPoint.YValueInScaleUnitsWithoutAnimation = xyDataPoint.YValueInScaleUnits; xyDataPoint.IsNewlyAdded = useShowingAnimation; }
internal virtual void BindViewToDataPoint(DataPoint dataPoint, FrameworkElement view, string valueName) { LabelControl labelControl = view as LabelControl; if (labelControl == null) return; IAppearanceProvider appearanceProvider = (IAppearanceProvider)dataPoint; bool flag = false; if (appearanceProvider == null) return; if (valueName == "ActualLabelContent" || valueName == null) { flag = flag || labelControl.Content != dataPoint.ActualLabelContent; labelControl.Content = dataPoint.ActualLabelContent; } if (valueName == "LabelRotation" || valueName == null) { flag = flag || labelControl.RotationAngle != dataPoint.LabelRotation; labelControl.RotationAngle = dataPoint.LabelRotation; } if (valueName == "LabelStyle" || valueName == null) { flag = flag || labelControl.Style != dataPoint.LabelStyle; labelControl.Style = dataPoint.LabelStyle; } if (valueName == "ActualLabelMargin" || valueName == null) AnchorPanel.SetAnchorMargin((UIElement)labelControl, dataPoint.ActualLabelMargin); if (valueName == "ActualEffect" || valueName == null) { if (this.SeriesPresenter.Series.IsDataPointAppearsUnselected(dataPoint)) labelControl.UpdateActuialEffect(dataPoint.ActualEffect); else labelControl.UpdateActuialEffect((Effect)null); } if (valueName == "ActualOpacity" || valueName == null) { if (this.SeriesPresenter.Series.IsDataPointAppearsUnselected(dataPoint)) labelControl.UpdateActuialOpacity(new double?(dataPoint.ActualOpacity)); else labelControl.UpdateActuialOpacity(new double?()); } if (!flag) return; ((AnchorPanel)this.LabelsPanel).Invalidate(); }
internal override void OnRemoveView(DataPoint dataPoint) { this.ClearToolTip(dataPoint); }
internal DataPointView(DataPoint dataPoint) { this.DataPoint = dataPoint; }
internal void UpdateSelectedDataPointFlag(DataPoint dataPoint) { this.HaveSelectedDataPoints = dataPoint != null && dataPoint.IsSelected || Enumerable.FirstOrDefault<DataPoint>((IEnumerable<DataPoint>)this.DataPoints, (Func<DataPoint, bool>)(p => p.IsSelected)) != null; if (this.ChartArea != null && dataPoint != null && !this._clearSelectedDataPointsPerformingFlag) { DataPointSelectionChangedEventArgs e; if (dataPoint.IsSelected) e = new DataPointSelectionChangedEventArgs((IList<DataPoint>)new DataPoint[0], (IList<DataPoint>)new DataPoint[1] { dataPoint }); else e = new DataPointSelectionChangedEventArgs((IList<DataPoint>)new DataPoint[1] { dataPoint }, (IList<DataPoint>)new DataPoint[0]); this.ChartArea.FireDataPointSelectionChanged(e); } this.UpdateIsLegendSelectedFlag(); }
public SeriesPresenterEventArgs(Series series, DataPoint dataPoint) { this.Series = series; this.DataPoint = dataPoint; }
protected abstract bool IsDataPointCompatible(DataPoint dataPoint);
private void InitializeLabel(LabelControl label, DataPoint dataPoint) { label.Content = dataPoint.ActualLabelContent; }
private bool IsDataPointLabelVisible(DataPoint point) { if (this.SeriesPresenter.IsDataPointVisible(point) && this.SeriesPresenter.Series.LabelVisibility == Visibility.Visible && point.ActualLabelContent != null) return point.ActualLabelVisibility == Visibility.Visible; return false; }
internal override void OnCreateView(DataPoint dataPoint) { }