// 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.tools;
import java.util.*;
import org.achartengine.chart.*;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
// Referenced classes of package org.achartengine.tools:
// AbstractTool, PanListener
public class Pan extends AbstractTool
{
public Pan(AbstractChart abstractchart)
{
super(abstractchart);
mPanListeners = new ArrayList();
}
/**
* @deprecated Method notifyPanListeners is deprecated
*/
private void notifyPanListeners()
{
this;
JVM INSTR monitorenter ;
for(Iterator iterator = mPanListeners.iterator(); iterator.hasNext(); ((PanListener)iterator.next()).panApplied());
break MISSING_BLOCK_LABEL_43;
Exception exception;
exception;
throw exception;
this;
JVM INSTR monitorexit ;
}
/**
* @deprecated Method addPanListener is deprecated
*/
public void addPanListener(PanListener panlistener)
{
this;
JVM INSTR monitorenter ;
mPanListeners.add(panlistener);
this;
JVM INSTR monitorexit ;
return;
Exception exception;
exception;
throw exception;
}
public void apply(float f, float f1, float f2, float f3)
{
if(!(mChart instanceof XYChart)) goto _L2; else goto _L1
_L1:
double ad[];
boolean flag;
XYChart xychart;
int j;
double ad1[];
int i = mRenderer.getScalesCount();
ad = mRenderer.getPanLimits();
double ad2[];
if(ad != null && ad.length == 4)
flag = true;
else
flag = false;
xychart = (XYChart)mChart;
j = 0;
_L5:
if(j >= i)
break MISSING_BLOCK_LABEL_465;
ad1 = getRange(j);
ad2 = xychart.getCalcRange(j);
if((ad1[0] != ad1[1] || ad2[0] != ad2[1]) && (ad1[2] != ad1[3] || ad2[2] != ad2[3])) goto _L4; else goto _L3
_L3:
return;
_L4:
checkRange(ad1, j);
double ad3[] = xychart.toRealPoint(f, f1, j);
double ad4[] = xychart.toRealPoint(f2, f3, j);
double d = ad3[0] - ad4[0];
double d1 = ad3[1] - ad4[1];
if(mRenderer.isPanXEnabled())
if(flag)
{
boolean flag3;
boolean flag4;
if(ad[0] <= d + ad1[0])
flag3 = true;
else
flag3 = false;
if(ad[1] >= d + ad1[1])
flag4 = true;
else
flag4 = false;
if(flag3 && flag4)
setXRange(d + ad1[0], d + ad1[1], j);
} else
{
setXRange(d + ad1[0], d + ad1[1], j);
}
if(mRenderer.isPanYEnabled())
if(flag)
{
boolean flag1;
boolean flag2;
if(ad[2] <= d1 + ad1[2])
flag1 = true;
else
flag1 = false;
if(ad[3] < d1 + ad1[3])
flag2 = true;
else
flag2 = false;
if(flag1 && !flag2)
setYRange(d1 + ad1[2], d1 + ad1[3], j);
} else
{
setYRange(d1 + ad1[2], d1 + ad1[3], j);
}
j++;
goto _L5
_L2:
RoundChart roundchart = (RoundChart)mChart;
roundchart.setCenterX(roundchart.getCenterX() + (int)(f2 - f));
roundchart.setCenterY(roundchart.getCenterY() + (int)(f3 - f1));
notifyPanListeners();
goto _L3
}
/**
* @deprecated Method removePanListener is deprecated
*/
public void removePanListener(PanListener panlistener)
{
this;
JVM INSTR monitorenter ;
mPanListeners.add(panlistener);
this;
JVM INSTR monitorexit ;
return;
Exception exception;
exception;
throw exception;
}
private List mPanListeners;
}