Index: src/Common/DelftTools.Controls.Swf/Charting/Tools/ChartViewSeriesToolBase.cs =================================================================== diff -u -r8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9 -r5fc71a385897af92ccb092f2f969b5709afab85a --- src/Common/DelftTools.Controls.Swf/Charting/Tools/ChartViewSeriesToolBase.cs (.../ChartViewSeriesToolBase.cs) (revision 8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9) +++ src/Common/DelftTools.Controls.Swf/Charting/Tools/ChartViewSeriesToolBase.cs (.../ChartViewSeriesToolBase.cs) (revision 5fc71a385897af92ccb092f2f969b5709afab85a) @@ -12,98 +12,34 @@ /// /// Base class for EditPointTool,SelectPointTool and AddPointTool /// - public abstract class ChartViewSeriesToolBase : ToolSeries,IChartViewSeriesTool + public abstract class ChartViewSeriesToolBase : ToolSeries, IChartViewSeriesTool { - bool enabled = true; - - private ChartSeries series; - - public IChartView ChartView { get; set; } - - protected int selectedPointIndex = -1; - public event SelectionChangedEventHandler SelectionChanged; - public bool Enabled - { - get { return enabled; } - set { enabled = value; } - } - - public new bool Active - { - get { return base.Active; } - set - { - base.Active = value; - if (ActiveChanged != null) - { - ActiveChanged(this, null); - } - } - } - public event EventHandler ActiveChanged; - protected override void SetSeries(Steema.TeeChart.Styles.Series series) - { - var customPoint = ((ChartSeries)Series).series as CustomPoint; - if (customPoint != null) - { - customPoint.GetPointerStyle -= OnCustomSeriesGetPointerStyle; - } + protected int selectedPointIndex = -1; + private bool enabled = true; - base.SetSeries(series); + private ChartSeries series; - customPoint = series as CustomPoint; - if (customPoint != null) - { - customPoint.GetPointerStyle += OnCustomSeriesGetPointerStyle; - } - } + private Steema.TeeChart.Styles.Series previousSelectedSeries; - protected virtual void OnCustomSeriesGetPointerStyle(CustomPoint customSeries, GetPointerStyleEventArgs e) - { + private Steema.TeeChart.Styles.Series lastSelectedSeries; - } + protected ChartViewSeriesToolBase(Steema.TeeChart.Chart chart) : base(chart) {} - protected ChartViewSeriesToolBase(Steema.TeeChart.Chart chart):base(chart) - { - } + protected ChartViewSeriesToolBase(Steema.TeeChart.Styles.Series series) : base(series) {} - protected ChartViewSeriesToolBase(Steema.TeeChart.Styles.Series series):base(series) - { - } - - protected Steema.TeeChart.Styles.Series ClickedSeries(Point p) - { - return ClickedSeries(p.X, p.Y); - } - - protected Steema.TeeChart.Styles.Series ClickedSeries(int x, int y) - { - if (iSeries == null) - { - var seriesInRenderOrder = Chart.Series.OfType().Reverse(); - - return seriesInRenderOrder.FirstOrDefault(s => (s.Active) && (s.Clicked(x, y) != -1)); - } - else if (iSeries.Clicked(x, y) != -1) - { - return iSeries; - } - - return null; - } - - private Steema.TeeChart.Styles.Series previousSelectedSeries; - /// /// Selects a point in the chart. /// public int SelectedPointIndex { - get { return selectedPointIndex; } + get + { + return selectedPointIndex; + } protected set { if (selectedPointIndex != value || !ReferenceEquals(previousSelectedSeries, LastSelectedSeries)) @@ -147,31 +83,49 @@ } } - protected IChartSeries GetChartSeriesFromInternalSeries(Steema.TeeChart.Styles.Series internalSeries) + public IChartView ChartView { get; set; } + + public bool Enabled { - if (ChartView != null && ChartView.Chart != null) + get { - var matchingSeries = - ChartView.Chart.Series.OfType().FirstOrDefault( - cs => ReferenceEquals(cs.series, internalSeries)); + return enabled; + } + set + { + enabled = value; + } + } - if (matchingSeries != null) + public new bool Active + { + get + { + return base.Active; + } + set + { + base.Active = value; + if (ActiveChanged != null) { - return matchingSeries; + ActiveChanged(this, null); } + } + } - matchingSeries = - ChartView.Chart.Series.OfType().FirstOrDefault(cs => cs.Title == internalSeries.Title); - - if (matchingSeries != null) - { - return matchingSeries; - } + public new IChartSeries Series + { + get + { + return series; } - throw new ArgumentException("Unknown TeeChart series: not related to any known ChartSeries"); + set + { + series = (ChartSeries) value; + iSeries = series.series; + } } - private Steema.TeeChart.Styles.Series lastSelectedSeries; protected Steema.TeeChart.Styles.Series LastSelectedSeries { get @@ -188,16 +142,70 @@ } } - public new IChartSeries Series + protected override void SetSeries(Steema.TeeChart.Styles.Series series) { - get { return series; } - set + var customPoint = ((ChartSeries) Series).series as CustomPoint; + if (customPoint != null) { - series = (ChartSeries) value; - iSeries = series.series; + customPoint.GetPointerStyle -= OnCustomSeriesGetPointerStyle; } + + base.SetSeries(series); + + customPoint = series as CustomPoint; + if (customPoint != null) + { + customPoint.GetPointerStyle += OnCustomSeriesGetPointerStyle; + } } + protected virtual void OnCustomSeriesGetPointerStyle(CustomPoint customSeries, GetPointerStyleEventArgs e) {} + + protected Steema.TeeChart.Styles.Series ClickedSeries(Point p) + { + return ClickedSeries(p.X, p.Y); + } + + protected Steema.TeeChart.Styles.Series ClickedSeries(int x, int y) + { + if (iSeries == null) + { + var seriesInRenderOrder = Chart.Series.OfType().Reverse(); + + return seriesInRenderOrder.FirstOrDefault(s => (s.Active) && (s.Clicked(x, y) != -1)); + } + else if (iSeries.Clicked(x, y) != -1) + { + return iSeries; + } + + return null; + } + + protected IChartSeries GetChartSeriesFromInternalSeries(Steema.TeeChart.Styles.Series internalSeries) + { + if (ChartView != null && ChartView.Chart != null) + { + var matchingSeries = + ChartView.Chart.Series.OfType().FirstOrDefault( + cs => ReferenceEquals(cs.series, internalSeries)); + + if (matchingSeries != null) + { + return matchingSeries; + } + + matchingSeries = + ChartView.Chart.Series.OfType().FirstOrDefault(cs => cs.Title == internalSeries.Title); + + if (matchingSeries != null) + { + return matchingSeries; + } + } + throw new ArgumentException("Unknown TeeChart series: not related to any known ChartSeries"); + } + /// /// Handles mouse events for the tools and chart of Teechart. Teechart uses a special /// mechanism to let tools cooperate via chart.CancelMouse. Therefor do not use @@ -208,7 +216,10 @@ /// protected override void MouseEvent(MouseEventKinds kind, MouseEventArgs e, ref Cursor c) { - if (!Enabled) return; + if (!Enabled) + { + return; + } switch (kind) { case MouseEventKinds.Up: @@ -223,21 +234,10 @@ } } - protected virtual void OnMouseDown(MouseEventArgs mouseEventArgs) - { - - } + protected virtual void OnMouseDown(MouseEventArgs mouseEventArgs) {} - protected virtual void OnMouseMove(MouseEventArgs mouseEventArgs, ref Cursor cursor) - { - - } + protected virtual void OnMouseMove(MouseEventArgs mouseEventArgs, ref Cursor cursor) {} - protected virtual void OnMouseUp(MouseEventArgs mouseEventArgs) - { - - } - - + protected virtual void OnMouseUp(MouseEventArgs mouseEventArgs) {} } } \ No newline at end of file