Index: src/Common/DelftTools.Controls.Swf/Charting/Series/ChartSeries.cs =================================================================== diff -u -r8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9 -r5fc71a385897af92ccb092f2f969b5709afab85a --- src/Common/DelftTools.Controls.Swf/Charting/Series/ChartSeries.cs (.../ChartSeries.cs) (revision 8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9) +++ src/Common/DelftTools.Controls.Swf/Charting/Series/ChartSeries.cs (.../ChartSeries.cs) (revision 5fc71a385897af92ccb092f2f969b5709afab85a) @@ -10,19 +10,19 @@ { public abstract class ChartSeries : IChartSeries { + protected const int MaximumAllowedSize = 999999; + protected const int MinimumAllowedSize = 0; internal readonly Steema.TeeChart.Styles.Series series; private string dataMember; private object dataSource; private PropertyDescriptor xPropertyDescriptor; private PropertyDescriptor yPropertyDescriptor; private BindingContext bindingContext; - protected const int MaximumAllowedSize = 999999; - protected const int MinimumAllowedSize = 0; private IList noDataValues = new List(); - protected ChartSeries(CustomPoint series) : this((Steema.TeeChart.Styles.Series)series) + protected ChartSeries(CustomPoint series) : this((Steema.TeeChart.Styles.Series) series) { series.LinePen.Width = 1; @@ -42,13 +42,31 @@ UpdateASynchronously = false; } + /// + /// Set to force the x-axis to use date-time formatting, even if no data is present. + /// + public bool XAxisIsDateTime + { + get + { + return series.XValues.DateTime; + } + set + { + series.XValues.DateTime = value; + } + } + /// /// The title of the series /// /// Changes null to an empty string to avoid TeeChart problems (TeeChart cannot cope with null titles) public string Title { - get { return series.Title; } + get + { + return series.Title; + } set { series.Title = value ?? ""; @@ -57,10 +75,12 @@ public object DataSource { - get { return dataSource; } + get + { + return dataSource; + } set { - Unbind(); dataSource = value; @@ -73,13 +93,15 @@ { throw new ArgumentException("Invalid argument for series datasource. Are you passing IEnumerable? IList and IListSource are supported", ex); } - } } public string XValuesDataMember { - get { return series.XValues.DataMember; } + get + { + return series.XValues.DataMember; + } set { series.XValues.DataMember = value; @@ -90,7 +112,10 @@ public string YValuesDataMember { - get { return series.YValues.DataMember; } + get + { + return series.YValues.DataMember; + } set { series.YValues.DataMember = value; @@ -104,97 +129,73 @@ get { string verticalAxisName = Enum.GetName(typeof(Steema.TeeChart.Styles.VerticalAxis), series.VertAxis); - return (VerticalAxis)Enum.Parse(typeof(VerticalAxis), verticalAxisName); + return (VerticalAxis) Enum.Parse(typeof(VerticalAxis), verticalAxisName); } set { string verticalAxisName = Enum.GetName(typeof(VerticalAxis), value); - series.VertAxis = (Steema.TeeChart.Styles.VerticalAxis)Enum.Parse(typeof(Steema.TeeChart.Styles.VerticalAxis), verticalAxisName); + series.VertAxis = (Steema.TeeChart.Styles.VerticalAxis) Enum.Parse(typeof(Steema.TeeChart.Styles.VerticalAxis), verticalAxisName); } } - /// - /// Set to force the x-axis to use date-time formatting, even if no data is present. - /// - public bool XAxisIsDateTime - { - get { return series.XValues.DateTime; } - set { series.XValues.DateTime = value; } - } - public bool Visible { - get { return series.Visible; } - set { series.Visible = value; } + get + { + return series.Visible; + } + set + { + series.Visible = value; + } } public bool ShowInLegend { - get { return series.ShowInLegend; } - set { series.ShowInLegend = value; } + get + { + return series.ShowInLegend; + } + set + { + series.ShowInLegend = value; + } } - + public double DefaultNullValue { - get { return series.DefaultNullValue; } - set { series.DefaultNullValue = value; } + get + { + return series.DefaultNullValue; + } + set + { + series.DefaultNullValue = value; + } } public IList NoDataValues { - get { return noDataValues; } - set { noDataValues = value; } + get + { + return noDataValues; + } + set + { + noDataValues = value; + } } public bool UpdateASynchronously { get; set; } public object Tag { get; set; } - - public bool RefreshRequired - { - get; - private set; - } + public bool RefreshRequired { get; private set; } + public IChart Chart { get; set; } public abstract Color Color { get; set; } - protected void CopySettings(IChartSeries chartSeries) - { - Title = chartSeries.Title; - - if (chartSeries.DataSource == null) - { - var teeChartSeries = ((ChartSeries) chartSeries).series; - - for (int i = 0; i < teeChartSeries.XValues.Count; i++) - { - series.Add(teeChartSeries.XValues[i], teeChartSeries.YValues[i]); - } - } - else - { - DataSource = chartSeries.DataSource; - XValuesDataMember = chartSeries.XValuesDataMember; - YValuesDataMember = chartSeries.YValuesDataMember; - RefreshRequired = true; - } - - VertAxis = chartSeries.VertAxis; - Visible = chartSeries.Visible; - ShowInLegend = chartSeries.ShowInLegend; - DefaultNullValue = chartSeries.DefaultNullValue; - noDataValues = new List(chartSeries.NoDataValues); - UpdateASynchronously = chartSeries.UpdateASynchronously; - Color = chartSeries.Color; - - if (series is CustomPoint && chartSeries.Chart != null && chartSeries.Chart.StackSeries) - { - ((CustomPoint) series).Stacked = CustomStack.Stack; - } - } - public void CheckDataSource() { if (DataSource != null && (CurrencyManager == null || CurrencyManager.Count == 0)) @@ -237,6 +238,41 @@ series.Clear(); } + protected void CopySettings(IChartSeries chartSeries) + { + Title = chartSeries.Title; + + if (chartSeries.DataSource == null) + { + var teeChartSeries = ((ChartSeries) chartSeries).series; + + for (int i = 0; i < teeChartSeries.XValues.Count; i++) + { + series.Add(teeChartSeries.XValues[i], teeChartSeries.YValues[i]); + } + } + else + { + DataSource = chartSeries.DataSource; + XValuesDataMember = chartSeries.XValuesDataMember; + YValuesDataMember = chartSeries.YValuesDataMember; + RefreshRequired = true; + } + + VertAxis = chartSeries.VertAxis; + Visible = chartSeries.Visible; + ShowInLegend = chartSeries.ShowInLegend; + DefaultNullValue = chartSeries.DefaultNullValue; + noDataValues = new List(chartSeries.NoDataValues); + UpdateASynchronously = chartSeries.UpdateASynchronously; + Color = chartSeries.Color; + + if (series is CustomPoint && chartSeries.Chart != null && chartSeries.Chart.StackSeries) + { + ((CustomPoint) series).Stacked = CustomStack.Stack; + } + } + private BindingContext BindingContext { get @@ -259,10 +295,12 @@ dataMember = String.Empty; } - if (DataSource == null) + if (DataSource == null) + { return null; + } - return (CurrencyManager)BindingContext[DataSource, dataMember]; + return (CurrencyManager) BindingContext[DataSource, dataMember]; } } @@ -372,11 +410,11 @@ } else if (xIsDateTime) { - addedIndex = series.Add((DateTime)x, yValueToSet); + addedIndex = series.Add((DateTime) x, yValueToSet); } else //x is something non-numeric, so use the index here { - addedIndex = series.Add((double)series.XValues.Count - 1, yValueToSet, x.ToString()); + addedIndex = series.Add((double) series.XValues.Count - 1, yValueToSet, x.ToString()); } if (NoDataValues.Contains(yValue) || Double.IsNaN(yValue)) @@ -412,4 +450,4 @@ } } } -} +} \ No newline at end of file