// 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.*; import org.achartengine.model.*; import org.achartengine.renderer.*; import org.achartengine.util.MathHelper; // Referenced classes of package org.achartengine.chart: // AbstractChart, ScatterChart public abstract class XYChart extends AbstractChart { protected XYChart() { mCalcRange = new HashMap(); clickableAreas = new HashMap(); } public XYChart(XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer) { mCalcRange = new HashMap(); clickableAreas = new HashMap(); mDataset = xymultipleseriesdataset; mRenderer = xymultipleseriesrenderer; } private int getLabelLinePos(android.graphics.Paint.Align align) { int i = 4; if(align == android.graphics.Paint.Align.LEFT) i = -i; return i; } private List getValidLabels(List list) { ArrayList arraylist = new ArrayList(list); Iterator iterator = list.iterator(); do { if(!iterator.hasNext()) break; Double double1 = (Double)iterator.next(); if(double1.isNaN()) arraylist.remove(double1); } while(true); return arraylist; } private void setStroke(android.graphics.Paint.Cap cap, android.graphics.Paint.Join join, float f, android.graphics.Paint.Style style, PathEffect patheffect, Paint paint) { paint.setStrokeCap(cap); paint.setStrokeJoin(join); paint.setStrokeMiter(f); paint.setPathEffect(patheffect); paint.setStyle(style); } private void transform(Canvas canvas, float f, boolean flag) { if(flag) { canvas.scale(1.0F / mScale, mScale); canvas.translate(mTranslate, -mTranslate); canvas.rotate(-f, mCenter.getX(), mCenter.getY()); } else { canvas.rotate(f, mCenter.getX(), mCenter.getY()); canvas.translate(-mTranslate, mTranslate); canvas.scale(mScale, 1.0F / mScale); } } protected abstract RectF[] clickableAreasForPoints(float af[], float f, int i); public void draw(Canvas canvas, int i, int j, int k, int l, Paint paint) { paint.setAntiAlias(mRenderer.isAntialiasing()); int i1 = getLegendSize(mRenderer, l / 5, mRenderer.getAxisTitleTextSize()); int ai[] = mRenderer.getMargins(); int j1 = i + ai[1]; int k1 = j + ai[0]; int l1 = (i + k) - ai[3]; int i2 = mDataset.getSeriesCount(); String as[] = new String[i2]; for(int j2 = 0; j2 < i2; j2++) as[j2] = mDataset.getSeriesAt(j2).getTitle(); int k2; int l2; org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation orientation; int i3; int j3; boolean flag; int k3; int i4; double ad[]; double ad1[]; double ad2[]; double ad3[]; boolean aflag[]; boolean aflag1[]; boolean aflag2[]; boolean aflag3[]; int j4; double ad4[]; double ad5[]; int k4; int l4; boolean flag1; int i5; XYMultipleSeriesRenderer xymultipleseriesrenderer; int j5; int k5; int l5; boolean flag2; boolean flag3; boolean flag4; List list; HashMap hashmap; int i6; int j6; Double adouble[]; double d; double d1; double d2; int k6; boolean flag5; int l6; boolean flag6; float f; int i7; int j7; android.graphics.Paint.Align align; Double adouble1[]; int k7; int l7; Double double1; float f1; String s; List list1; int i8; int j8; double d3; android.graphics.Paint.Align align1; boolean flag7; float f2; XYMultipleSeriesRenderer xymultipleseriesrenderer1; int k8; int l8; int i9; XYSeries xyseries; int j9; SimpleSeriesRenderer simpleseriesrenderer; int k9; ArrayList arraylist; float f3; LinkedList linkedlist; int l9; int i10; double d4; XYSeries xyseries1; int j10; double d5; double d6; double d7; double d8; if(mRenderer.isFitLegend() && mRenderer.isShowLegend()) k2 = drawLegend(canvas, mRenderer, as, j1, l1, j, k, l, i1, paint, true); else k2 = i1; l2 = (j + l) - ai[2] - k2; if(mScreenR == null) mScreenR = new Rect(); mScreenR.set(j1, k1, l1, l2); drawBackground(mRenderer, canvas, i, j, k, l, paint, false, 0); if(paint.getTypeface() == null || !paint.getTypeface().toString().equals(mRenderer.getTextTypefaceName()) || paint.getTypeface().getStyle() != mRenderer.getTextTypefaceStyle()) paint.setTypeface(Typeface.create(mRenderer.getTextTypefaceName(), mRenderer.getTextTypefaceStyle())); orientation = mRenderer.getOrientation(); if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.VERTICAL) { int k10 = l1 - k2; l2 += k2 - 20; i3 = k10; } else { i3 = l1; } j3 = orientation.getAngle(); if(j3 == 90) flag = true; else flag = false; mScale = (float)l / (float)k; mTranslate = Math.abs(k - l) / 2; if(mScale < 1.0F) mTranslate = -1F * mTranslate; mCenter = new Point((i + k) / 2, (j + l) / 2); if(flag) transform(canvas, j3, false); k3 = 0x80000001; for(int l3 = 0; l3 < i2; l3++) k3 = Math.max(k3, mDataset.getSeriesAt(l3).getScaleNumber()); i4 = k3 + 1; if(i4 >= 0) goto _L2; else goto _L1 _L1: return; _L2: ad = new double[i4]; ad1 = new double[i4]; ad2 = new double[i4]; ad3 = new double[i4]; aflag = new boolean[i4]; aflag1 = new boolean[i4]; aflag2 = new boolean[i4]; aflag3 = new boolean[i4]; for(j4 = 0; j4 < i4; j4++) { ad[j4] = mRenderer.getXAxisMin(j4); ad1[j4] = mRenderer.getXAxisMax(j4); ad2[j4] = mRenderer.getYAxisMin(j4); ad3[j4] = mRenderer.getYAxisMax(j4); aflag[j4] = mRenderer.isMinXSet(j4); aflag1[j4] = mRenderer.isMaxXSet(j4); aflag2[j4] = mRenderer.isMinYSet(j4); aflag3[j4] = mRenderer.isMaxYSet(j4); if(mCalcRange.get(Integer.valueOf(j4)) == null) mCalcRange.put(Integer.valueOf(j4), new double[4]); } ad4 = new double[i4]; ad5 = new double[i4]; k4 = 0; while(k4 < i2) { xyseries1 = mDataset.getSeriesAt(k4); j10 = xyseries1.getScaleNumber(); if(xyseries1.getItemCount() != 0) { if(!aflag[j10]) { d8 = xyseries1.getMinX(); ad[j10] = Math.min(ad[j10], d8); ((double[])mCalcRange.get(Integer.valueOf(j10)))[0] = ad[j10]; } if(!aflag1[j10]) { d7 = xyseries1.getMaxX(); ad1[j10] = Math.max(ad1[j10], d7); ((double[])mCalcRange.get(Integer.valueOf(j10)))[1] = ad1[j10]; } if(!aflag2[j10]) { d6 = xyseries1.getMinY(); ad2[j10] = Math.min(ad2[j10], (float)d6); ((double[])mCalcRange.get(Integer.valueOf(j10)))[2] = ad2[j10]; } if(!aflag3[j10]) { d5 = xyseries1.getMaxY(); ad3[j10] = Math.max(ad3[j10], (float)d5); ((double[])mCalcRange.get(Integer.valueOf(j10)))[3] = ad3[j10]; } } k4++; } for(l4 = 0; l4 < i4; l4++) { if(ad1[l4] - ad[l4] != 0.0D) ad4[l4] = (double)(i3 - j1) / (ad1[l4] - ad[l4]); if(ad3[l4] - ad2[l4] != 0.0D) ad5[l4] = (float)((double)(l2 - k1) / (ad3[l4] - ad2[l4])); } flag1 = false; clickableAreas = new HashMap(); i5 = 0; while(i5 < i2) { xyseries = mDataset.getSeriesAt(i5); j9 = xyseries.getScaleNumber(); if(xyseries.getItemCount() != 0) { flag1 = true; simpleseriesrenderer = mRenderer.getSeriesRendererAt(i5); k9 = 2 * xyseries.getItemCount(); arraylist = new ArrayList(); f3 = Math.min(l2, (float)((double)l2 + ad5[j9] * ad2[j9])); linkedlist = new LinkedList(); clickableAreas.put(Integer.valueOf(i5), linkedlist); l9 = 0; while(l9 < k9) { i10 = l9 / 2; d4 = xyseries.getY(i10); if(d4 != 1.7976931348623157E+308D) { arraylist.add(Float.valueOf((float)((double)j1 + ad4[j9] * (xyseries.getX(i10) - ad[j9])))); arraylist.add(Float.valueOf((float)((double)l2 - ad5[j9] * (d4 - ad2[j9])))); } else if(isRenderNullValues()) { arraylist.add(Float.valueOf((float)((double)j1 + ad4[j9] * (xyseries.getX(i10) - ad[j9])))); arraylist.add(Float.valueOf((float)((double)l2 - ad5[j9] * -ad2[j9]))); } else { if(arraylist.size() > 0) { drawSeries(xyseries, canvas, paint, arraylist, simpleseriesrenderer, f3, i5, orientation); linkedlist.addAll(Arrays.asList(clickableAreasForPoints(MathHelper.getFloats(arraylist), f3, i5))); arraylist.clear(); } linkedlist.add(null); } l9 += 2; } if(arraylist.size() > 0) { drawSeries(xyseries, canvas, paint, arraylist, simpleseriesrenderer, f3, i5, orientation); linkedlist.addAll(Arrays.asList(clickableAreasForPoints(MathHelper.getFloats(arraylist), f3, i5))); } } i5++; } drawBackground(mRenderer, canvas, i, l2, k, l - l2, paint, true, mRenderer.getMarginsColor()); drawBackground(mRenderer, canvas, i, j, k, ai[0], paint, true, mRenderer.getMarginsColor()); if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL) { drawBackground(mRenderer, canvas, i, j, j1 - i, l - j, paint, true, mRenderer.getMarginsColor()); xymultipleseriesrenderer1 = mRenderer; k8 = ai[3]; l8 = l - j; i9 = mRenderer.getMarginsColor(); drawBackground(xymultipleseriesrenderer1, canvas, i3, j, k8, l8, paint, true, i9); } else if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.VERTICAL) { xymultipleseriesrenderer = mRenderer; j5 = k - i3; k5 = l - j; l5 = mRenderer.getMarginsColor(); drawBackground(xymultipleseriesrenderer, canvas, i3, j, j5, k5, paint, true, l5); drawBackground(mRenderer, canvas, i, j, j1 - i, l - j, paint, true, mRenderer.getMarginsColor()); } if(mRenderer.isShowLabels() && flag1) flag2 = true; else flag2 = false; flag3 = mRenderer.isShowGrid(); flag4 = mRenderer.isShowCustomTextGrid(); if(!flag2 && !flag3) goto _L4; else goto _L3 _L3: list = getValidLabels(MathHelper.getLabels(ad[0], ad1[0], mRenderer.getXLabels())); hashmap = new HashMap(); for(i6 = 0; i6 < i4; i6++) hashmap.put(Integer.valueOf(i6), getValidLabels(MathHelper.getLabels(ad2[i6], ad3[i6], mRenderer.getYLabels()))); if(!flag2) break MISSING_BLOCK_LABEL_3455; paint.setColor(mRenderer.getLabelsColor()); paint.setTextSize(mRenderer.getLabelsTextSize()); paint.setTextAlign(mRenderer.getXLabelsAlign()); if(mRenderer.getXLabelsAlign() != android.graphics.Paint.Align.LEFT) break MISSING_BLOCK_LABEL_3455; j6 = (int)((float)j1 + mRenderer.getLabelsTextSize() / 4F); _L5: adouble = mRenderer.getXTextLabelLocations(); d = ad4[0]; d1 = ad[0]; d2 = ad1[0]; drawXLabels(list, adouble, canvas, paint, j6, k1, l2, d, d1, d2); k6 = 0; do { if(k6 >= i4) break; paint.setTextAlign(mRenderer.getYLabelsAlign(k6)); list1 = (List)hashmap.get(Integer.valueOf(k6)); i8 = list1.size(); j8 = 0; while(j8 < i8) { d3 = ((Double)list1.get(j8)).doubleValue(); align1 = mRenderer.getYAxisAlign(k6); if(mRenderer.getYTextLabel(Double.valueOf(d3), k6) != null) flag7 = true; else flag7 = false; f2 = (float)((double)l2 - ad5[k6] * (d3 - ad2[k6])); if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL) { if(flag2 && !flag7) { paint.setColor(mRenderer.getLabelsColor()); if(align1 == android.graphics.Paint.Align.LEFT) { canvas.drawLine(j1 + getLabelLinePos(align1), f2, j1, f2, paint); drawText(canvas, getLabel(d3), j1, f2 - 2.0F, paint, mRenderer.getYLabelsAngle()); } else { canvas.drawLine(i3, f2, i3 + getLabelLinePos(align1), f2, paint); drawText(canvas, getLabel(d3), i3, f2 - 2.0F, paint, mRenderer.getYLabelsAngle()); } } if(flag3) { paint.setColor(mRenderer.getGridColor()); canvas.drawLine(j1, f2, i3, f2, paint); } } else if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.VERTICAL) { if(flag2 && !flag7) { paint.setColor(mRenderer.getLabelsColor()); canvas.drawLine(i3 - getLabelLinePos(align1), f2, i3, f2, paint); drawText(canvas, getLabel(d3), i3 + 10, f2 - 2.0F, paint, mRenderer.getYLabelsAngle()); } if(flag3) { paint.setColor(mRenderer.getGridColor()); canvas.drawLine(i3, f2, j1, f2, paint); } } j8++; } k6++; } while(true); if(flag2) { paint.setColor(mRenderer.getLabelsColor()); j7 = 0; do { if(j7 >= i4) break; align = mRenderer.getYAxisAlign(j7); adouble1 = mRenderer.getYTextLabelLocations(j7); k7 = adouble1.length; l7 = 0; while(l7 < k7) { double1 = adouble1[l7]; if(ad2[j7] <= double1.doubleValue() && double1.doubleValue() <= ad3[j7]) { f1 = (float)((double)l2 - ad5[j7] * (double1.doubleValue() - ad2[j7])); s = mRenderer.getYTextLabel(double1, j7); paint.setColor(mRenderer.getLabelsColor()); if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL) { if(align == android.graphics.Paint.Align.LEFT) { canvas.drawLine(j1 + getLabelLinePos(align), f1, j1, f1, paint); drawText(canvas, s, j1, f1 - 2.0F, paint, mRenderer.getYLabelsAngle()); } else { canvas.drawLine(i3, f1, i3 + getLabelLinePos(align), f1, paint); drawText(canvas, s, i3, f1 - 2.0F, paint, mRenderer.getYLabelsAngle()); } if(flag4) { paint.setColor(mRenderer.getGridColor()); canvas.drawLine(j1, f1, i3, f1, paint); } } else { canvas.drawLine(i3 - getLabelLinePos(align), f1, i3, f1, paint); drawText(canvas, s, i3 + 10, f1 - 2.0F, paint, mRenderer.getYLabelsAngle()); if(flag4) { paint.setColor(mRenderer.getGridColor()); canvas.drawLine(i3, f1, j1, f1, paint); } } } l7++; } j7++; } while(true); } if(flag2) { paint.setColor(mRenderer.getLabelsColor()); f = mRenderer.getAxisTitleTextSize(); paint.setTextSize(f); paint.setTextAlign(android.graphics.Paint.Align.CENTER); if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL) { drawText(canvas, mRenderer.getXTitle(), i + k / 2, f + ((float)l2 + (4F * mRenderer.getLabelsTextSize()) / 3F), paint, 0.0F); i7 = 0; while(i7 < i4) { if(mRenderer.getYAxisAlign(i7) == android.graphics.Paint.Align.LEFT) drawText(canvas, mRenderer.getYTitle(i7), f + (float)i, j + l / 2, paint, -90F); else drawText(canvas, mRenderer.getYTitle(i7), i + k, j + l / 2, paint, -90F); i7++; } paint.setTextSize(mRenderer.getChartTitleTextSize()); drawText(canvas, mRenderer.getChartTitle(), i + k / 2, (float)j + mRenderer.getChartTitleTextSize(), paint, 0.0F); } else if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.VERTICAL) { drawText(canvas, mRenderer.getXTitle(), i + k / 2, (float)(j + l) - f, paint, -90F); drawText(canvas, mRenderer.getYTitle(), i3 + 20, j + l / 2, paint, 0.0F); paint.setTextSize(mRenderer.getChartTitleTextSize()); drawText(canvas, mRenderer.getChartTitle(), f + (float)i, k1 + l / 2, paint, 0.0F); } } _L4: if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL) drawLegend(canvas, mRenderer, as, j1, i3, j, k, l, k2, paint, false); else if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.VERTICAL) { transform(canvas, j3, true); drawLegend(canvas, mRenderer, as, j1, i3, j, k, l, k2, paint, false); transform(canvas, j3, false); } if(mRenderer.isShowAxes()) { paint.setColor(mRenderer.getAxesColor()); canvas.drawLine(j1, l2, i3, l2, paint); flag5 = false; l6 = 0; while(l6 < i4 && !flag5) { if(mRenderer.getYAxisAlign(l6) == android.graphics.Paint.Align.RIGHT) flag6 = true; else flag6 = false; l6++; flag5 = flag6; } if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL) { canvas.drawLine(j1, k1, j1, l2, paint); if(flag5) canvas.drawLine(i3, k1, i3, l2, paint); } else if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.VERTICAL) canvas.drawLine(i3, k1, i3, l2, paint); } if(flag) transform(canvas, j3, true); goto _L1 j6 = j1; goto _L5 } protected void drawChartValuesText(Canvas canvas, XYSeries xyseries, SimpleSeriesRenderer simpleseriesrenderer, Paint paint, float af[], int i) { for(int j = 0; j < af.length; j += 2) drawText(canvas, getLabel(xyseries.getY(j / 2)), af[j], af[j + 1] - simpleseriesrenderer.getChartValuesSpacing(), paint, 0.0F); } public abstract void drawSeries(Canvas canvas, Paint paint, float af[], SimpleSeriesRenderer simpleseriesrenderer, float f, int i); protected void drawSeries(XYSeries xyseries, Canvas canvas, Paint paint, List list, SimpleSeriesRenderer simpleseriesrenderer, float f, int i, org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation orientation) { BasicStroke basicstroke = simpleseriesrenderer.getStroke(); android.graphics.Paint.Cap cap = paint.getStrokeCap(); android.graphics.Paint.Join join = paint.getStrokeJoin(); float f1 = paint.getStrokeMiter(); PathEffect patheffect = paint.getPathEffect(); android.graphics.Paint.Style style = paint.getStyle(); if(basicstroke != null) { DashPathEffect dashpatheffect = null; if(basicstroke.getIntervals() != null) dashpatheffect = new DashPathEffect(basicstroke.getIntervals(), basicstroke.getPhase()); setStroke(basicstroke.getCap(), basicstroke.getJoin(), basicstroke.getMiter(), android.graphics.Paint.Style.FILL_AND_STROKE, dashpatheffect, paint); } float af[] = MathHelper.getFloats(list); drawSeries(canvas, paint, af, simpleseriesrenderer, f, i); if(isRenderPoints(simpleseriesrenderer)) { ScatterChart scatterchart = getPointsChart(); if(scatterchart != null) scatterchart.drawSeries(canvas, paint, af, simpleseriesrenderer, f, i); } paint.setTextSize(simpleseriesrenderer.getChartValuesTextSize()); if(orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL) paint.setTextAlign(android.graphics.Paint.Align.CENTER); else paint.setTextAlign(android.graphics.Paint.Align.LEFT); if(simpleseriesrenderer.isDisplayChartValues()) { paint.setTextAlign(simpleseriesrenderer.getChartValuesTextAlign()); drawChartValuesText(canvas, xyseries, simpleseriesrenderer, paint, af, i); } if(basicstroke != null) setStroke(cap, join, f1, style, patheffect, paint); } protected void drawText(Canvas canvas, String s, float f, float f1, Paint paint, float f2) { float f3 = f2 + (float)(-mRenderer.getOrientation().getAngle()); if(f3 != 0.0F) canvas.rotate(f3, f, f1); canvas.drawText(s, f, f1, paint); if(f3 != 0.0F) canvas.rotate(-f3, f, f1); } protected void drawXLabels(List list, Double adouble[], Canvas canvas, Paint paint, int i, int j, int k, double d, double d1, double d2) { int l = list.size(); boolean flag = mRenderer.isShowLabels(); boolean flag1 = mRenderer.isShowGrid(); for(int i1 = 0; i1 < l; i1++) { double d3 = ((Double)list.get(i1)).doubleValue(); float f = (float)((double)i + d * (d3 - d1)); if(flag) { paint.setColor(mRenderer.getLabelsColor()); canvas.drawLine(f, k, f, (float)k + mRenderer.getLabelsTextSize() / 3F, paint); drawText(canvas, getLabel(d3), f, (float)k + (4F * mRenderer.getLabelsTextSize()) / 3F, paint, mRenderer.getXLabelsAngle()); } if(flag1) { paint.setColor(mRenderer.getGridColor()); canvas.drawLine(f, k, f, j, paint); } } drawXTextLabels(adouble, canvas, paint, flag, i, j, k, d, d1, d2); } protected void drawXTextLabels(Double adouble[], Canvas canvas, Paint paint, boolean flag, int i, int j, int k, double d, double d1, double d2) { boolean flag1 = mRenderer.isShowCustomTextGrid(); if(flag) { paint.setColor(mRenderer.getLabelsColor()); int l = adouble.length; for(int i1 = 0; i1 < l; i1++) { Double double1 = adouble[i1]; if(d1 > double1.doubleValue() || double1.doubleValue() > d2) continue; float f = (float)((double)i + d * (double1.doubleValue() - d1)); paint.setColor(mRenderer.getLabelsColor()); canvas.drawLine(f, k, f, (float)k + mRenderer.getLabelsTextSize() / 3F, paint); drawText(canvas, mRenderer.getXTextLabel(double1), f, (float)k + (4F * mRenderer.getLabelsTextSize()) / 3F, paint, mRenderer.getXLabelsAngle()); if(flag1) { paint.setColor(mRenderer.getGridColor()); canvas.drawLine(f, k, f, j, paint); } } } } public double[] getCalcRange(int i) { return (double[])mCalcRange.get(Integer.valueOf(i)); } public abstract String getChartType(); public XYMultipleSeriesDataset getDataset() { return mDataset; } public double getDefaultMinimum() { return 1.7976931348623157E+308D; } protected String getLabel(double d) { String s; if(d == (double)Math.round(d)) s = (new StringBuilder()).append(Math.round(d)).append("").toString(); else s = (new StringBuilder()).append(d).append("").toString(); return s; } public ScatterChart getPointsChart() { return null; } public XYMultipleSeriesRenderer getRenderer() { return mRenderer; } protected Rect getScreenR() { return mScreenR; } public SeriesSelection getSeriesAndPointForScreenCoordinate(Point point) { int i; if(clickableAreas == null) break MISSING_BLOCK_LABEL_158; i = -1 + clickableAreas.size(); _L6: if(i < 0) goto _L2; else goto _L1 _L1: int j; Iterator iterator; j = 0; if(clickableAreas.get(Integer.valueOf(i)) == null) continue; /* Loop/switch isn't completed */ iterator = ((List)clickableAreas.get(Integer.valueOf(i))).iterator(); _L5: RectF rectf; if(!iterator.hasNext()) continue; /* Loop/switch isn't completed */ rectf = (RectF)iterator.next(); if(rectf == null || !rectf.contains(point.getX(), point.getY())) goto _L4; else goto _L3 _L3: SeriesSelection seriesselection; XYSeries xyseries = mDataset.getSeriesAt(i); seriesselection = new SeriesSelection(i, j, xyseries.getX(j), xyseries.getY(j)); _L7: return seriesselection; _L4: j++; goto _L5 i--; goto _L6 _L2: seriesselection = super.getSeriesAndPointForScreenCoordinate(point); goto _L7 } protected boolean isRenderNullValues() { return false; } public boolean isRenderPoints(SimpleSeriesRenderer simpleseriesrenderer) { return false; } public void setCalcRange(double ad[], int i) { mCalcRange.put(Integer.valueOf(i), ad); } protected void setDatasetRenderer(XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer) { mDataset = xymultipleseriesdataset; mRenderer = xymultipleseriesrenderer; } protected void setScreenR(Rect rect) { mScreenR = rect; } public double[] toRealPoint(float f, float f1) { return toRealPoint(f, f1, 0); } public double[] toRealPoint(float f, float f1, int i) { double d = mRenderer.getXAxisMin(i); double d1 = mRenderer.getXAxisMax(i); double d2 = mRenderer.getYAxisMin(i); double d3 = mRenderer.getYAxisMax(i); double ad[] = new double[2]; ad[0] = d + ((double)(f - (float)mScreenR.left) * (d1 - d)) / (double)mScreenR.width(); ad[1] = d2 + ((double)((float)(mScreenR.top + mScreenR.height()) - f1) * (d3 - d2)) / (double)mScreenR.height(); return ad; } public double[] toScreenPoint(double ad[]) { return toScreenPoint(ad, 0); } public double[] toScreenPoint(double ad[], int i) { double d = mRenderer.getXAxisMin(i); double d1 = mRenderer.getXAxisMax(i); double d2 = mRenderer.getYAxisMin(i); double d3 = mRenderer.getYAxisMax(i); if(!mRenderer.isMinXSet(i) || !mRenderer.isMaxXSet(i) || !mRenderer.isMinXSet(i) || !mRenderer.isMaxYSet(i)) { double ad1[] = getCalcRange(i); d = ad1[0]; d1 = ad1[1]; d2 = ad1[2]; d3 = ad1[3]; } double ad2[] = new double[2]; ad2[0] = ((ad[0] - d) * (double)mScreenR.width()) / (d1 - d) + (double)mScreenR.left; ad2[1] = ((d3 - ad[1]) * (double)mScreenR.height()) / (d3 - d2) + (double)mScreenR.top; return ad2; } private Map clickableAreas; private Map mCalcRange; private Point mCenter; protected XYMultipleSeriesDataset mDataset; protected XYMultipleSeriesRenderer mRenderer; private float mScale; private Rect mScreenR; private float mTranslate; }