ModernUO/Scripts/Engines/Reports/Rendering/ChartRenderer.cs

56 lines
No EOL
1.4 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 Color[] _color =
{
Color.Firebrick,
Color.SkyBlue,
Color.MediumSeaGreen,
Color.MediumOrchid,
Color.Chocolate,
Color.SlateBlue,
Color.LightPink,
Color.LightGreen,
Color.Khaki
};
public ChartItemsCollection DataPoints{ get; set; } = new ChartItemsCollection();
// Represent collection of all data points for the chart
// The implementation of this method is provided by derived classes
public abstract Bitmap Draw();
public void SetColor(int index, Color NewColor)
{
if (index < _colorLimit)
_color[index] = NewColor;
else
throw new Exception("Color Limit is " + _colorLimit);
}
public Color GetColor(int index)
{
//return _color[index%_colorLimit];
if (index < _colorLimit) return _color[index];
return _color[(index + 2) % _colorLimit];
//throw new Exception("Color Limit is " + _colorLimit);
}
}
}