// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
package org.achartengine.chart;
import android.graphics.*;
import java.util.ArrayList;
import java.util.List;
import org.achartengine.model.MultipleCategorySeries;
import org.achartengine.renderer.DefaultRenderer;
import org.achartengine.renderer.SimpleSeriesRenderer;
// Referenced classes of package org.achartengine.chart:
// RoundChart
public class DoughnutChart extends RoundChart
{
public DoughnutChart(MultipleCategorySeries multiplecategoryseries, DefaultRenderer defaultrenderer)
{
super(null, defaultrenderer);
mDataset = multiplecategoryseries;
}
public void draw(Canvas canvas, int i, int j, int k, int l, Paint paint)
{
paint.setAntiAlias(mRenderer.isAntialiasing());
paint.setStyle(android.graphics.Paint.Style.FILL);
paint.setTextSize(mRenderer.getLabelsTextSize());
int i1 = getLegendSize(mRenderer, l / 5, 0.0F);
int j1 = i + k;
int k1 = mDataset.getCategoriesCount();
String as[] = new String[k1];
for(int l1 = 0; l1 < k1; l1++)
as[l1] = mDataset.getCategory(l1);
int i2;
int j2;
int k2;
double d;
double d1;
int l2;
float f;
float f1;
ArrayList arraylist;
int i3;
int j3;
if(mRenderer.isFitLegend())
i2 = drawLegend(canvas, mRenderer, as, i, j1, j, k, l, i1, paint, true);
else
i2 = i1;
j2 = (j + l) - i2;
drawBackground(mRenderer, canvas, i, j, k, l, paint, false, 0);
mStep = 7;
k2 = Math.min(Math.abs(j1 - i), Math.abs(j2 - j));
d = 0.34999999999999998D * (double)mRenderer.getScale();
d1 = 0.20000000000000001D / (double)k1;
l2 = (int)(d * (double)k2);
if(mCenterX == 0x7fffffff)
mCenterX = (i + j1) / 2;
if(mCenterY == 0x7fffffff)
mCenterY = (j2 + j) / 2;
f = 0.9F * (float)l2;
f1 = 1.1F * (float)l2;
arraylist = new ArrayList();
i3 = 0;
j3 = l2;
while(i3 < k1)
{
int k3 = mDataset.getItemCount(i3);
double d2 = 0.0D;
String as1[] = new String[k3];
for(int l3 = 0; l3 < k3; l3++)
{
d2 += mDataset.getValues(i3)[l3];
as1[l3] = mDataset.getTitles(i3)[l3];
}
float f2 = 0.0F;
RectF rectf = new RectF(mCenterX - j3, mCenterY - j3, j3 + mCenterX, j3 + mCenterY);
for(int i4 = 0; i4 < k3; i4++)
{
paint.setColor(mRenderer.getSeriesRendererAt(i4).getColor());
float f3 = (float)(360D * ((double)(float)mDataset.getValues(i3)[i4] / d2));
canvas.drawArc(rectf, f2, f3, true, paint);
drawLabel(canvas, mDataset.getTitles(i3)[i4], mRenderer, arraylist, mCenterX, mCenterY, f, f1, f2, f3, i, j1, paint);
f2 += f3;
}
int j4 = (int)((double)j3 - d1 * (double)k2);
f = (float)((double)f - (d1 * (double)k2 - 2D));
int k4;
if(mRenderer.getBackgroundColor() != 0)
paint.setColor(mRenderer.getBackgroundColor());
else
paint.setColor(-1);
paint.setStyle(android.graphics.Paint.Style.FILL);
canvas.drawArc(new RectF(mCenterX - j4, mCenterY - j4, j4 + mCenterX, j4 + mCenterY), 0.0F, 360F, true, paint);
k4 = j4 - 1;
i3++;
j3 = k4;
}
arraylist.clear();
drawLegend(canvas, mRenderer, as, i, j1, j, k, l, i2, paint, false);
drawTitle(canvas, i, j, k, paint);
}
public void drawLegendShape(Canvas canvas, SimpleSeriesRenderer simpleseriesrenderer, float f, float f1, int i, Paint paint)
{
mStep = -1 + mStep;
canvas.drawCircle((10F + f) - (float)mStep, f1, mStep, paint);
}
public int getLegendShapeWidth(int i)
{
return 10;
}
private MultipleCategorySeries mDataset;
private int mStep;
}