use of com.jjoe64.graphview.series.Series in project GraphView by appsthatmatter.
the class SecondScale method calcCompleteRange.
/**
* caches the complete range (minX, maxX, minY, maxY)
* by iterating all series and all datapoints and
* stores it into #mCompleteRange
*
* for the x-range it will respect the series on the
* second scale - not for y-values
*/
public void calcCompleteRange() {
List<Series> series = getSeries();
mCompleteRange.set(0d, 0d, 0d, 0d);
if (!series.isEmpty() && !series.get(0).isEmpty()) {
double d = series.get(0).getLowestValueX();
for (Series s : series) {
if (!s.isEmpty() && d > s.getLowestValueX()) {
d = s.getLowestValueX();
}
}
mCompleteRange.left = d;
d = series.get(0).getHighestValueX();
for (Series s : series) {
if (!s.isEmpty() && d < s.getHighestValueX()) {
d = s.getHighestValueX();
}
}
mCompleteRange.right = d;
if (!series.isEmpty() && !series.get(0).isEmpty()) {
d = series.get(0).getLowestValueY();
for (Series s : series) {
if (!s.isEmpty() && d > s.getLowestValueY()) {
d = s.getLowestValueY();
}
}
mCompleteRange.bottom = d;
d = series.get(0).getHighestValueY();
for (Series s : series) {
if (!s.isEmpty() && d < s.getHighestValueY()) {
d = s.getHighestValueY();
}
}
mCompleteRange.top = d;
}
}
}
use of com.jjoe64.graphview.series.Series in project GraphView by appsthatmatter.
the class GraphView method onTouchEvent.
/**
* will be called from Android system.
*
* @param event
* @return
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
boolean b = mViewport.onTouchEvent(event);
boolean a = super.onTouchEvent(event);
// is it a click?
if (mTapDetector.onTouchEvent(event)) {
for (Series s : mSeries) {
s.onTap(event.getX(), event.getY());
}
if (mSecondScale != null) {
for (Series s : mSecondScale.getSeries()) {
s.onTap(event.getX(), event.getY());
}
}
}
return b || a;
}
use of com.jjoe64.graphview.series.Series in project GraphView by appsthatmatter.
the class GraphView method setCursorMode.
public void setCursorMode(boolean b) {
mIsCursorMode = b;
if (mIsCursorMode) {
if (mCursorMode == null) {
mCursorMode = new CursorMode(this);
}
} else {
mCursorMode = null;
invalidate();
}
for (Series series : mSeries) {
if (series instanceof BaseSeries) {
((BaseSeries) series).clearCursorModeCache();
}
}
}
use of com.jjoe64.graphview.series.Series in project GraphView by appsthatmatter.
the class GraphView method init.
/**
* initialize the internal objects.
* This method has to be called directly
* in the constructors.
*/
protected void init() {
mPreviewPaint = new Paint();
mPreviewPaint.setTextAlign(Paint.Align.CENTER);
mPreviewPaint.setColor(Color.BLACK);
mPreviewPaint.setTextSize(50);
mStyles = new Styles();
mViewport = new Viewport(this);
mGridLabelRenderer = new GridLabelRenderer(this);
mLegendRenderer = new LegendRenderer(this);
mSeries = new ArrayList<Series>();
mPaintTitle = new Paint();
mTapDetector = new TapDetector();
loadStyles();
}
use of com.jjoe64.graphview.series.Series in project GraphView by appsthatmatter.
the class CursorMode method findCurrentDataPoint.
private void findCurrentDataPoint() {
double selX = 0;
mCurrentSelection.clear();
for (Series series : mGraphView.getSeries()) {
if (series instanceof BaseSeries) {
DataPointInterface p = ((BaseSeries) series).findDataPointAtX(mPosX);
if (p != null) {
selX = p.getX();
mCurrentSelection.put((BaseSeries) series, p);
}
}
}
if (!mCurrentSelection.isEmpty()) {
mCurrentSelectionX = selX;
}
}
Aggregations