70 lines
1.9 KiB
C#
70 lines
1.9 KiB
C#
using System;
|
|
using System.Drawing;
|
|
|
|
namespace Server.Engines.Reports
|
|
{
|
|
//*********************************************************************
|
|
//
|
|
// Chart Class
|
|
//
|
|
// Base class implementation for BarChart and PieChart
|
|
//
|
|
//*********************************************************************
|
|
public abstract class ChartRenderer
|
|
{
|
|
private const int _colorLimit = 9;
|
|
private readonly Color[] _color =
|
|
{
|
|
Color.Firebrick,
|
|
Color.SkyBlue,
|
|
Color.MediumSeaGreen,
|
|
Color.MediumOrchid,
|
|
Color.Chocolate,
|
|
Color.SlateBlue,
|
|
Color.LightPink,
|
|
Color.LightGreen,
|
|
Color.Khaki
|
|
};
|
|
// Represent collection of all data points for the chart
|
|
private ChartItemsCollection _dataPoints = new ChartItemsCollection();
|
|
public ChartItemsCollection DataPoints
|
|
{
|
|
get
|
|
{
|
|
return this._dataPoints;
|
|
}
|
|
set
|
|
{
|
|
this._dataPoints = value;
|
|
}
|
|
}
|
|
// The implementation of this method is provided by derived classes
|
|
public abstract Bitmap Draw();
|
|
|
|
public void SetColor(int index, Color NewColor)
|
|
{
|
|
if (index < _colorLimit)
|
|
{
|
|
this._color[index] = NewColor;
|
|
}
|
|
else
|
|
{
|
|
throw new Exception("Color Limit is " + _colorLimit);
|
|
}
|
|
}
|
|
|
|
public Color GetColor(int index)
|
|
{
|
|
//return _color[index%_colorLimit];
|
|
if (index < _colorLimit)
|
|
{
|
|
return this._color[index];
|
|
}
|
|
else
|
|
{
|
|
return this._color[(index + 2) % _colorLimit];
|
|
//throw new Exception("Color Limit is " + _colorLimit);
|
|
}
|
|
}
|
|
}
|
|
} |