From 6a5dee579f0ff7f37424b33c09c7dbdcaa09d902 Mon Sep 17 00:00:00 2001 From: Kevin Ruland Date: Tue, 21 Feb 2012 02:43:04 +0000 Subject: [PATCH] Remove all the zoom & pan stuff because it didn't work well. Change the line color to GREEN so it just blends into the fill. --- .../android/motor/BurnPlotFragment.java | 147 +----------------- 1 file changed, 2 insertions(+), 145 deletions(-) diff --git a/android/src/net/sf/openrocket/android/motor/BurnPlotFragment.java b/android/src/net/sf/openrocket/android/motor/BurnPlotFragment.java index 1f0c72254..47eaa4cbc 100644 --- a/android/src/net/sf/openrocket/android/motor/BurnPlotFragment.java +++ b/android/src/net/sf/openrocket/android/motor/BurnPlotFragment.java @@ -8,39 +8,26 @@ import net.sf.openrocket.R; import net.sf.openrocket.android.db.DbAdapter; import net.sf.openrocket.android.util.AndroidLogWrapper; import android.graphics.Color; -import android.graphics.Paint; import android.graphics.PointF; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.ScaleGestureDetector; import android.view.View; -import android.view.View.OnTouchListener; import android.view.ViewGroup; -import com.androidplot.xy.BoundaryMode; import com.androidplot.xy.LineAndPointFormatter; import com.androidplot.xy.LineAndPointRenderer; import com.androidplot.xy.SimpleXYSeries; import com.androidplot.xy.XYPlot; import com.androidplot.xy.YValueMarker; -public class BurnPlotFragment extends Fragment implements OnTouchListener { +public class BurnPlotFragment extends Fragment { private ExtendedThrustCurveMotor motor; private long motorId; private XYPlot mySimpleXYPlot; private SimpleXYSeries mySeries; - private PointF minXY; - private PointF maxXY; - - private float absMinX; - private float absMaxX; - - private ScaleGestureDetector mScaleDetector; - private float mScaleFactor = 1.f; public static BurnPlotFragment newInstance( long motorId ) { BurnPlotFragment frag = new BurnPlotFragment(); @@ -86,8 +73,6 @@ public class BurnPlotFragment extends Fragment implements OnTouchListener { AndroidLogWrapper.d(BurnPlotFragment.class,"onCreateView"); View v = inflater.inflate(R.layout.motor_burn, container, false); mySimpleXYPlot = (XYPlot) v.findViewById(R.id.xyplot); - mySimpleXYPlot.setOnTouchListener(this); - mScaleDetector = new ScaleGestureDetector(v.getContext(), new ScaleListener()); init(motor); return v; } @@ -128,7 +113,7 @@ public class BurnPlotFragment extends Fragment implements OnTouchListener { mySeries = new SimpleXYSeries(data, SimpleXYSeries.ArrayFormat.XY_VALS_INTERLEAVED,"no data"); } - LineAndPointFormatter formatter= new LineAndPointFormatter(Color.RED, Color.GREEN, Color.GREEN); + LineAndPointFormatter formatter= new LineAndPointFormatter(Color.GREEN, Color.GREEN, Color.GREEN); formatter.getLinePaint().setShadowLayer(0, 0, 0, 0); formatter.getVertexPaint().setShadowLayer(0, 0, 0, 0); @@ -139,135 +124,7 @@ public class BurnPlotFragment extends Fragment implements OnTouchListener { mySimpleXYPlot.redraw(); - minXY=new PointF(mySimpleXYPlot.getCalculatedMinX().floatValue(),mySimpleXYPlot.getCalculatedMinY().floatValue()); - maxXY=new PointF(mySimpleXYPlot.getCalculatedMaxX().floatValue(),mySimpleXYPlot.getCalculatedMaxY().floatValue()); - - absMinX = minXY.x; - absMaxX = maxXY.x; - } - private float mPosX; - private float mPosY; - - private float mLastTouchX; - private float mLastTouchY; - - private int mActivePointerId = -1; - - @Override - public boolean onTouch(View arg0, MotionEvent event) { - mScaleDetector.onTouchEvent(event); - - final int action = event.getAction(); - switch ( action & MotionEvent.ACTION_MASK ) { - case MotionEvent.ACTION_DOWN: { - final float x = event.getX(); - final float y = event.getY(); - - mLastTouchX = x; - mLastTouchY = y; - - mActivePointerId = event.getPointerId(0); - break; - } - - case MotionEvent.ACTION_MOVE: { - final int pointerIndex = event.findPointerIndex(mActivePointerId); - final float x = event.getX(pointerIndex); - final float y = event.getY(pointerIndex); - - if (!mScaleDetector.isInProgress()) { - final float dx = x - mLastTouchX; - final float dy = y - mLastTouchY; - - mPosX += dx; - mPosY += dy; - scroll(dx); - // do scroll. - - } - mLastTouchX = x; - mLastTouchY = y; - - break; - } - - case MotionEvent.ACTION_UP: { - mActivePointerId = -1; - break; - } - - case MotionEvent.ACTION_CANCEL: { - mActivePointerId = -1; - break; - } - - case MotionEvent.ACTION_POINTER_UP: { - final int pointerIndex = (action & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_ID_SHIFT; - final int pointerId = event.getPointerId(pointerIndex); - if (pointerId == mActivePointerId) { - // This was our active pointer going up. choose a new active pointer and adjust accordingly. - final int newPointerIndex = pointerIndex ==0 ? 1:0; - mLastTouchX = event.getX(newPointerIndex); - mLastTouchY = event.getY(newPointerIndex); - mActivePointerId = event.getPointerId(newPointerIndex); - } - break; - } - } - return true; - } - - private void zoom(float scale) { - AndroidLogWrapper.d(BurnPlotFragment.class,"zoom by " + scale); - float domainSpan = absMaxX - absMinX; - AndroidLogWrapper.d(BurnPlotFragment.class,"domainSpan = " + domainSpan); - float domainMidPoint = absMaxX - domainSpan / 2.0f; - AndroidLogWrapper.d(BurnPlotFragment.class,"domainMidPoint = " + domainMidPoint); - float offset = domainSpan / scale; - AndroidLogWrapper.d(BurnPlotFragment.class,"offset " + offset); - minXY.x=domainMidPoint- offset; - AndroidLogWrapper.d(BurnPlotFragment.class,"min X " + minXY.x); - maxXY.x=domainMidPoint+offset; - AndroidLogWrapper.d(BurnPlotFragment.class,"max X " + maxXY.x); - checkBoundaries(); - mySimpleXYPlot.setDomainBoundaries(minXY.x, maxXY.x, BoundaryMode.AUTO); - mySimpleXYPlot.redraw(); - } - - private void scroll(float pan) { - float domainSpan = maxXY.x - minXY.x; - float step = domainSpan / mySimpleXYPlot.getWidth(); - float offset = pan * step; - minXY.x+= offset; - maxXY.x+= offset; - checkBoundaries(); - mySimpleXYPlot.setDomainBoundaries(minXY.x, maxXY.x, BoundaryMode.AUTO); - mySimpleXYPlot.redraw(); - } - - private void checkBoundaries() { - - if ( minXY.x < absMinX) - minXY.x = absMinX; - // else if ( minXY.x > maxNoError ) - // minXY.x = maxNoError; - - if ( maxXY.x > absMaxX) - maxXY.x = absMaxX; - // else if ( maxXY.x < minNoError) - // maxXY.x = minNoError; - } - private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener { - @Override - public boolean onScale( ScaleGestureDetector detector ) { - mScaleFactor *= detector.getScaleFactor(); - - mScaleFactor = Math.max(1.0f, Math.min(mScaleFactor, 5.0f)); - zoom(mScaleFactor); - return true; - } - } }