Adding javadoc to ChartView.

This commit is contained in:
Rodrigo Damazio
2011-04-30 22:35:59 -03:00
parent ea47f93bc1
commit 3b5625c663
@@ -550,13 +550,14 @@ public class ChartView extends View {
} }
} }
/** Clips the given canvas to the area where the graph lines should be drawn. */
private void clipToGraphSpace(Canvas c) { private void clipToGraphSpace(Canvas c) {
c.clipRect(leftBorder + 1 + getScrollX(), topBorder + 1, c.clipRect(leftBorder + 1 + getScrollX(), topBorder + 1,
w - RIGHT_BORDER + getScrollX() - 1, h - bottomBorder - 1); w - RIGHT_BORDER + getScrollX() - 1, h - bottomBorder - 1);
} }
/** Draws the axes and their labels into th e given canvas. */
private void drawAxesAndLabels(Canvas c) { private void drawAxesAndLabels(Canvas c) {
// Draw the axis and labels.
drawXLabels(c); drawXLabels(c);
drawXAxis(c); drawXAxis(c);
drawSeriesTitles(c); drawSeriesTitles(c);
@@ -573,6 +574,7 @@ public class ChartView extends View {
} }
} }
/** Draws the current pointer into the given canvas. */
private void drawPointer(Canvas c) { private void drawPointer(Canvas c) {
c.translate(getX(maxX) - pointer.getIntrinsicWidth() / 2, c.translate(getX(maxX) - pointer.getIntrinsicWidth() / 2,
getY(series[0], data.get(data.size() - 1)[1]) getY(series[0], data.get(data.size() - 1)[1])
@@ -580,8 +582,8 @@ public class ChartView extends View {
pointer.draw(c); pointer.draw(c);
} }
/** Draws the waypoints into the given canvas. */
private void drawWaypoints(Canvas c) { private void drawWaypoints(Canvas c) {
// Draw the waypoints.
for (int i = 1; i < waypoints.size(); i++) { for (int i = 1; i < waypoints.size(); i++) {
final Waypoint waypoint = waypoints.get(i); final Waypoint waypoint = waypoints.get(i);
if (waypoint.getLocation() == null) { if (waypoint.getLocation() == null) {
@@ -601,8 +603,8 @@ public class ChartView extends View {
} }
} }
/** Draws the data series into the given canvas. */
private void drawDataSeries(Canvas c) { private void drawDataSeries(Canvas c) {
// Draw the data series.
for (ChartValueSeries cvs : series) { for (ChartValueSeries cvs : series) {
if (cvs.isEnabled() && cvs.hasData()) { if (cvs.isEnabled() && cvs.hasData()) {
cvs.drawPath(c); cvs.drawPath(c);
@@ -610,6 +612,7 @@ public class ChartView extends View {
} }
} }
/** Draws the colored titles for the data series. */
private void drawSeriesTitles(Canvas c) { private void drawSeriesTitles(Canvas c) {
int sections = 1; int sections = 1;
for (ChartValueSeries cvs : series) { for (ChartValueSeries cvs : series) {
@@ -637,14 +640,14 @@ public class ChartView extends View {
} }
if (!data.isEmpty()) { if (!data.isEmpty()) {
drawPath(); drawPaths();
closePath(); closePaths();
} }
} }
} }
/** Actually draws the data points as a path. */ /** Actually draws the data points as a path. */
private void drawPath() { private void drawPaths() {
// All of the data points to the respective series. // All of the data points to the respective series.
// TODO: Come up with a better sampling than Math.max(1, (maxZoomLevel - zoomLevel + 1) / 2); // TODO: Come up with a better sampling than Math.max(1, (maxZoomLevel - zoomLevel + 1) / 2);
int sampling = 1; int sampling = 1;
@@ -666,7 +669,7 @@ public class ChartView extends View {
} }
/** Closes the drawn path so it looks like a solid graph. */ /** Closes the drawn path so it looks like a solid graph. */
private void closePath() { private void closePaths() {
// Close the path. // Close the path.
int yCorner = topBorder + effectiveHeight; int yCorner = topBorder + effectiveHeight;
int xCorner = getX(data.get(0)[0]); int xCorner = getX(data.get(0)[0]);
@@ -687,10 +690,11 @@ public class ChartView extends View {
} }
/** /**
* Find the index of the first point which has a series populated. * Finds the index of the first point which has a series populated.
* @param seriesIndex The index of the value series to search for. *
* @param seriesIndex The index of the value series to search for
* @return The index in the first data for the point in the series that has series * @return The index in the first data for the point in the series that has series
* index value populated or -1 if none is found. * index value populated or -1 if none is found
*/ */
private int getFirstPointPopulatedIndex(int seriesIndex) { private int getFirstPointPopulatedIndex(int seriesIndex) {
for (int i = 0; i < data.size(); i++) { for (int i = 0; i < data.size(); i++) {
@@ -702,7 +706,7 @@ public class ChartView extends View {
} }
/** /**
* Update the chart dimensions. * Updates the chart dimensions.
*/ */
private void updateDimensions() { private void updateDimensions() {
maxX = xMonitor.getMax(); maxX = xMonitor.getMax();
@@ -728,11 +732,16 @@ public class ChartView extends View {
updateEffectiveDimensions(); updateEffectiveDimensions();
} }
/** Updates the effective dimensions where the graph will be drawn. */
private void updateEffectiveDimensions() { private void updateEffectiveDimensions() {
effectiveWidth = Math.max(0, w - leftBorder - RIGHT_BORDER); effectiveWidth = Math.max(0, w - leftBorder - RIGHT_BORDER);
effectiveHeight = Math.max(0, h - topBorder - bottomBorder); effectiveHeight = Math.max(0, h - topBorder - bottomBorder);
} }
/**
* Updates the effective dimensions where the graph will be drawn, only if the
* dimensions of the given canvas have changed since the last call.
*/
private void updateEffectiveDimensionsIfChanged(Canvas c) { private void updateEffectiveDimensionsIfChanged(Canvas c) {
if (w != c.getWidth() || h != c.getHeight()) { if (w != c.getWidth() || h != c.getHeight()) {
// Dimensions have changed (for example due to orientation change). // Dimensions have changed (for example due to orientation change).
@@ -753,6 +762,7 @@ public class ChartView extends View {
- (int) ((y - cvs.getMin()) * effectiveHeight / effectiveSpread); - (int) ((y - cvs.getMin()) * effectiveHeight / effectiveSpread);
} }
/** Draws the labels on the X axis into the given canvas. */
private void drawXLabels(Canvas c) { private void drawXLabels(Canvas c) {
double interval = (int) (maxX / zoomLevel / 4); double interval = (int) (maxX / zoomLevel / 4);
boolean shortFormat = false; boolean shortFormat = false;
@@ -777,6 +787,7 @@ public class ChartView extends View {
} }
} }
/** Draws the labels on the Y axis into the given canvas. */
private float drawYLabels(ChartValueSeries cvs, Canvas c, int x) { private float drawYLabels(ChartValueSeries cvs, Canvas c, int x) {
int interval = cvs.getInterval(); int interval = cvs.getInterval();
float maxTextWidth = 0; float maxTextWidth = 0;
@@ -786,6 +797,7 @@ public class ChartView extends View {
return maxTextWidth; return maxTextWidth;
} }
/** Draws a single label on the X axis. */
private void drawXLabel(Canvas c, double x, boolean shortFormat) { private void drawXLabel(Canvas c, double x, boolean shortFormat) {
if (x < 0) { if (x < 0) {
return; return;
@@ -800,6 +812,7 @@ public class ChartView extends View {
labelPaint); labelPaint);
} }
/** Draws a single label on the Y axis. */
private float drawYLabel(ChartValueSeries cvs, Canvas c, int x, int y) { private float drawYLabel(ChartValueSeries cvs, Canvas c, int x, int y) {
int desiredY = (int) ((y - cvs.getMin()) * effectiveHeight / int desiredY = (int) ((y - cvs.getMin()) * effectiveHeight /
(cvs.getInterval() * MAX_INTERVALS)); (cvs.getInterval() * MAX_INTERVALS));
@@ -811,6 +824,7 @@ public class ChartView extends View {
return p.measureText(text); return p.measureText(text);
} }
/** Draws the actual X axis line and its label. */
private void drawXAxis(Canvas canvas) { private void drawXAxis(Canvas canvas) {
float rightEdge = getX(maxX); float rightEdge = getX(maxX);
final int y = effectiveHeight + topBorder; final int y = effectiveHeight + topBorder;
@@ -822,6 +836,7 @@ public class ChartView extends View {
canvas.drawText(s, rightEdge, effectiveHeight + .2f * UNIT_BORDER + topBorder, labelPaint); canvas.drawText(s, rightEdge, effectiveHeight + .2f * UNIT_BORDER + topBorder, labelPaint);
} }
/** Draws the actual Y axis line and its label. */
private void drawYAxis(Canvas canvas) { private void drawYAxis(Canvas canvas) {
canvas.drawRect(0, 0, canvas.drawRect(0, 0,
leftBorder - 1, effectiveHeight + topBorder + UNIT_BORDER + 1, leftBorder - 1, effectiveHeight + topBorder + UNIT_BORDER + 1,
@@ -840,6 +855,7 @@ public class ChartView extends View {
canvas.drawText(s, leftBorder - UNIT_BORDER * .2f, UNIT_BORDER * .8f + topBorder, labelPaint); canvas.drawText(s, leftBorder - UNIT_BORDER * .2f, UNIT_BORDER * .8f + topBorder, labelPaint);
} }
/** Draws the grid for the graph. */
private void drawGrid(Canvas c) { private void drawGrid(Canvas c) {
float rightEdge = getX(maxX); float rightEdge = getX(maxX);
for (int i = 1; i < MAX_INTERVALS; ++i) { for (int i = 1; i < MAX_INTERVALS; ++i) {