Files
2024-04-27 09:23:34 +02:00

123 lines
3.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using JsonFx.Json;
namespace OpenFlashChart
{
public class PieValue
{
private double val;
private string text;
private string click;
public PieValue(double val)
{
this.val = val;
}
public static implicit operator PieValue(double val)
{
return new PieValue(val,"");
}
public PieValue(double val, string text)
{
this.val = val;
this.Text = text;
}
[JsonProperty("value")]
public double Value
{
get { return val; }
set { val = value; }
}
[JsonProperty("label")]
public string Text
{
get { return text; }
set { text = value; }
}
[JsonProperty("on-click")]
public string Click
{
get { return click; }
set { click = value; }
}
}
public class Pie : Chart<PieValue>
{
private int border;
private IEnumerable<String> colours;
private double alpha;
private PieAnimationSeries animate;
private double start_angle;
private bool? gradientfill;
private bool? nolabels;
public Pie()
{
this.ChartType = "pie";
this.border = 2;
this.colours = new string[] { "#d01f3c", "#356aa0", "#C79810" };
this.alpha = 0.6;
//this.animate = true;
//gradientfill = true;
}
[JsonProperty("colours")]
public IEnumerable<string> Colours
{
get { return this.colours; }
set
{
this.colours = value;
}
}
[JsonProperty("border")]
public int Border
{
get { return border; }
set { border = value; }
}
[JsonProperty("alpha")]
public double Alpha
{
get { return alpha; }
set
{
if (value < 0)
alpha = 0;
else if ((value >= 0) && (value <= 1))
alpha = value;
else if ((value > 1)&&(value<=100))
alpha = value/100;
else
alpha = 1.0;
}
}
[JsonProperty("animate")]
public PieAnimationSeries Animate
{
get { return animate; }
set { animate = value; }
}
[JsonProperty("start-angle")]
public double StartAngle
{
get { return start_angle; }
set { start_angle = value; }
}
[JsonProperty("gradient-fill")]
public bool? GradientFillMode
{
get { return gradientfill; }
set { gradientfill = value; }
}
[JsonProperty("no-labels")]
public bool? NoLabels
{
get { return nolabels; }
set { nolabels = value; }
}
}
}