// 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;
import android.content.Context;
import android.graphics.*;
import android.os.Handler;
import android.view.MotionEvent;
import android.view.View;
import org.achartengine.chart.AbstractChart;
import org.achartengine.chart.RoundChart;
import org.achartengine.chart.XYChart;
import org.achartengine.model.Point;
import org.achartengine.model.SeriesSelection;
import org.achartengine.renderer.DefaultRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.tools.FitZoom;
import org.achartengine.tools.PanListener;
import org.achartengine.tools.Zoom;
import org.achartengine.tools.ZoomListener;
// Referenced classes of package org.achartengine:
// TouchHandlerOld, TouchHandler, ITouchHandler
public class GraphicalView extends View
{
public GraphicalView(Context context, AbstractChart abstractchart)
{
int i;
super(context);
mRect = new Rect();
mZoomR = new RectF();
zoomSize = 50;
mPaint = new Paint();
mChart = abstractchart;
mHandler = new Handler();
int j;
if(mChart instanceof XYChart)
mRenderer = ((XYChart)mChart).getRenderer();
else
mRenderer = ((RoundChart)mChart).getRenderer();
if(mRenderer.isZoomButtonsVisible())
{
zoomInImage = BitmapFactory.decodeStream(org/achartengine/GraphicalView.getResourceAsStream("image/zoom_in.png"));
zoomOutImage = BitmapFactory.decodeStream(org/achartengine/GraphicalView.getResourceAsStream("image/zoom_out.png"));
fitZoomImage = BitmapFactory.decodeStream(org/achartengine/GraphicalView.getResourceAsStream("image/zoom-1.png"));
}
if((mRenderer instanceof XYMultipleSeriesRenderer) && ((XYMultipleSeriesRenderer)mRenderer).getMarginsColor() == 0)
((XYMultipleSeriesRenderer)mRenderer).setMarginsColor(mPaint.getColor());
if(mRenderer.isZoomEnabled() && mRenderer.isZoomButtonsVisible() || mRenderer.isExternalZoomEnabled())
{
mZoomIn = new Zoom(mChart, true, mRenderer.getZoomRate());
mZoomOut = new Zoom(mChart, false, mRenderer.getZoomRate());
mFitZoom = new FitZoom(mChart);
}
j = Integer.valueOf(android.os.Build.VERSION.SDK).intValue();
i = j;
_L1:
Exception exception;
if(i < 7)
mTouchHandler = new TouchHandlerOld(this, mChart);
else
mTouchHandler = new TouchHandler(this, mChart);
return;
exception;
i = 7;
goto _L1
}
public void addPanListener(PanListener panlistener)
{
mTouchHandler.addPanListener(panlistener);
}
public void addZoomListener(ZoomListener zoomlistener, boolean flag, boolean flag1)
{
if(flag)
{
if(mZoomIn != null)
{
mZoomIn.addZoomListener(zoomlistener);
mZoomOut.addZoomListener(zoomlistener);
}
if(flag1)
mTouchHandler.addZoomListener(zoomlistener);
}
}
public SeriesSelection getCurrentSeriesAndPoint()
{
return mChart.getSeriesAndPointForScreenCoordinate(new Point(oldX, oldY));
}
protected RectF getZoomRectangle()
{
return mZoomR;
}
protected void onDraw(Canvas canvas)
{
int i = 0;
super.onDraw(canvas);
canvas.getClipBounds(mRect);
int j = mRect.top;
int k = mRect.left;
int l = mRect.width();
int i1 = mRect.height();
if(mRenderer.isInScroll())
{
l = getMeasuredWidth();
i1 = getMeasuredHeight();
j = 0;
} else
{
i = k;
}
mChart.draw(canvas, i, j, l, i1, mPaint);
if(mRenderer != null && mRenderer.isZoomEnabled() && mRenderer.isZoomButtonsVisible())
{
mPaint.setColor(ZOOM_BUTTONS_COLOR);
zoomSize = Math.max(zoomSize, Math.min(l, i1) / 7);
mZoomR.set((i + l) - 3 * zoomSize, (float)(j + i1) - 0.775F * (float)zoomSize, i + l, j + i1);
canvas.drawRoundRect(mZoomR, zoomSize / 3, zoomSize / 3, mPaint);
float f = (float)(j + i1) - 0.625F * (float)zoomSize;
canvas.drawBitmap(zoomInImage, (float)(i + l) - 2.75F * (float)zoomSize, f, null);
canvas.drawBitmap(zoomOutImage, (float)(i + l) - 1.75F * (float)zoomSize, f, null);
canvas.drawBitmap(fitZoomImage, (float)(i + l) - 0.75F * (float)zoomSize, f, null);
}
}
public boolean onTouchEvent(MotionEvent motionevent)
{
if(motionevent.getAction() == 0)
{
oldX = motionevent.getX();
oldY = motionevent.getY();
}
boolean flag;
if(mRenderer != null && (mRenderer.isPanEnabled() || mRenderer.isZoomEnabled()) && mTouchHandler.handleTouch(motionevent))
flag = true;
else
flag = super.onTouchEvent(motionevent);
return flag;
}
public void removePanListener(PanListener panlistener)
{
mTouchHandler.removePanListener(panlistener);
}
/**
* @deprecated Method removeZoomListener is deprecated
*/
public void removeZoomListener(ZoomListener zoomlistener)
{
this;
JVM INSTR monitorenter ;
if(mZoomIn != null)
{
mZoomIn.removeZoomListener(zoomlistener);
mZoomOut.removeZoomListener(zoomlistener);
}
mTouchHandler.removeZoomListener(zoomlistener);
this;
JVM INSTR monitorexit ;
return;
Exception exception;
exception;
throw exception;
}
public void repaint()
{
mHandler.post(new Runnable() {
public void run()
{
invalidate();
}
final GraphicalView this$0;
{
this$0 = GraphicalView.this;
super();
}
}
);
}
public void repaint(final int left, final int top, final int right, final int bottom)
{
mHandler.post(new Runnable() {
public void run()
{
invalidate(left, top, right, bottom);
}
final GraphicalView this$0;
final int val$bottom;
final int val$left;
final int val$right;
final int val$top;
{
this$0 = GraphicalView.this;
left = i;
top = j;
right = k;
bottom = l;
super();
}
}
);
}
public void setZoomRate(float f)
{
if(mZoomIn != null && mZoomOut != null)
{
mZoomIn.setZoomRate(f);
mZoomOut.setZoomRate(f);
}
}
public Bitmap toBitmap()
{
setDrawingCacheEnabled(false);
if(!isDrawingCacheEnabled())
setDrawingCacheEnabled(true);
if(mRenderer.isApplyBackgroundColor())
setDrawingCacheBackgroundColor(mRenderer.getBackgroundColor());
setDrawingCacheQuality(0x100000);
return getDrawingCache(true);
}
public double[] toRealPoint(int i)
{
double ad[];
if(mChart instanceof XYChart)
ad = ((XYChart)mChart).toRealPoint(oldX, oldY, i);
else
ad = null;
return ad;
}
public void zoomIn()
{
if(mZoomIn != null)
{
mZoomIn.apply();
repaint();
}
}
public void zoomOut()
{
if(mZoomOut != null)
{
mZoomOut.apply();
repaint();
}
}
public void zoomReset()
{
if(mFitZoom != null)
{
mFitZoom.apply();
mZoomIn.notifyZoomResetListeners();
repaint();
}
}
private static final int ZOOM_BUTTONS_COLOR = Color.argb(175, 150, 150, 150);
private Bitmap fitZoomImage;
private AbstractChart mChart;
private FitZoom mFitZoom;
private Handler mHandler;
private Paint mPaint;
private Rect mRect;
private DefaultRenderer mRenderer;
private ITouchHandler mTouchHandler;
private Zoom mZoomIn;
private Zoom mZoomOut;
private RectF mZoomR;
private float oldX;
private float oldY;
private Bitmap zoomInImage;
private Bitmap zoomOutImage;
private int zoomSize;
}