Changeset 255
- Timestamp:
- 11/21/08 17:43:42 (3 years ago)
- Location:
- bbtracker/trunk/src/org/bbtracker/mobile/gui
- Files:
-
- 3 edited
-
DataProvider.java (modified) (13 diffs)
-
PlotterTile.java (modified) (2 diffs)
-
TrackPlotter.java (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
bbtracker/trunk/src/org/bbtracker/mobile/gui/DataProvider.java
r236 r255 27 27 } 28 28 29 public double getMaxValue( Track track) {29 public double getMaxValue(final Track track) { 30 30 return getValue(track.getPoint(track.getPointCount() - 1)); 31 31 } 32 32 33 public double getMinValue( Track track) {33 public double getMinValue(final Track track) { 34 34 return getValue(track.getPoint(0)); 35 35 } 36 36 37 public double getValue( TrackPoint point) {37 public double getValue(final TrackPoint point) { 38 38 return point.getTimestamp(); 39 39 } … … 43 43 return 1000d; 44 44 } 45 46 public boolean isHorizontalGraph() { 47 return false; 48 } 45 49 }; 46 50 … … 50 54 } 51 55 52 public double getMaxValue( Track track) {56 public double getMaxValue(final Track track) { 53 57 return track.getMaxSpeed(); 54 58 } 55 59 56 public double getMinValue( Track track) {60 public double getMinValue(final Track track) { 57 61 return 0d; 58 62 } 59 63 60 public double getValue( TrackPoint point) {64 public double getValue(final TrackPoint point) { 61 65 return point.getSpeed(); 62 66 } … … 67 71 } 68 72 73 public boolean isHorizontalGraph() { 74 return true; 75 } 69 76 }; 70 77 … … 74 81 } 75 82 76 public double getMaxValue( Track track) {83 public double getMaxValue(final Track track) { 77 84 return 220d; 78 85 } 79 86 80 public double getMinValue( Track track) {87 public double getMinValue(final Track track) { 81 88 return 0d; 82 89 } 83 90 84 public double getValue( TrackPoint point) {91 public double getValue(final TrackPoint point) { 85 92 return point.getHeartRate(); 86 93 } … … 90 97 } 91 98 99 public boolean isHorizontalGraph() { 100 return true; 101 } 92 102 }; 93 103 … … 97 107 } 98 108 99 public double getMaxValue( Track track) {109 public double getMaxValue(final Track track) { 100 110 return track.getMaxElevation(); 101 111 } 102 112 103 public double getMinValue( Track track) {113 public double getMinValue(final Track track) { 104 114 return track.getMinElevation(); 105 115 } 106 116 107 public double getValue( TrackPoint point) {117 public double getValue(final TrackPoint point) { 108 118 return point.getElevation(); 109 119 } … … 114 124 } 115 125 126 public boolean isHorizontalGraph() { 127 return true; 128 } 116 129 }; 117 130 … … 121 134 } 122 135 123 public double getMaxValue( Track track) {136 public double getMaxValue(final Track track) { 124 137 return track.getMaxLongitude(); 125 138 } 126 139 127 public double getMinValue( Track track) {140 public double getMinValue(final Track track) { 128 141 return track.getMinLongitude(); 129 142 } 130 143 131 public double getValue( TrackPoint point) {144 public double getValue(final TrackPoint point) { 132 145 return point.getLongitude(); 133 146 } … … 137 150 return (1 / 60) / 4; 138 151 } 152 153 public boolean isHorizontalGraph() { 154 return false; 155 } 139 156 }; 140 157 … … 144 161 } 145 162 146 public double getMaxValue( Track track) {163 public double getMaxValue(final Track track) { 147 164 return track.getMaxLatitude(); 148 165 } 149 166 150 public double getMinValue( Track track) {167 public double getMinValue(final Track track) { 151 168 return track.getMinLatitude(); 152 169 } 153 170 154 public double getValue( TrackPoint point) {171 public double getValue(final TrackPoint point) { 155 172 return point.getLatitude(); 156 173 } … … 159 176 // 0.25 seconds should be fine 160 177 return (1 / 60) / 4; 178 } 179 180 public boolean isHorizontalGraph() { 181 return false; 161 182 } 162 183 }; … … 188 209 */ 189 210 public abstract double getSmallDelta(); 211 212 /** 213 * An horizontal graph will be smoothed by averaging the values. 214 * 215 * @return true for horizontal graph 216 */ 217 public abstract boolean isHorizontalGraph(); 190 218 } -
bbtracker/trunk/src/org/bbtracker/mobile/gui/PlotterTile.java
r244 r255 163 163 resetScale(); 164 164 updateScale(track); 165 updateScale(manager.getExtraTrack());166 165 onScaleChanged(); 167 166 } … … 174 173 175 174 public void stateChanged(final int newState) { 176 // do nothing175 updateScale(); 177 176 } 178 177 -
bbtracker/trunk/src/org/bbtracker/mobile/gui/TrackPlotter.java
r238 r255 63 63 int prevY = -1; 64 64 final Enumeration segments = track.getSegments(); 65 final boolean doAverage = yData.isHorizontalGraph(); 65 66 while (segments.hasMoreElements()) { 66 67 final TrackSegment segment = (TrackSegment) segments.nextElement(); 67 68 final Enumeration points = segment.getPoints(); 68 69 boolean newSegment = true; 70 int sumY = 0; 71 int nPoints = 0; 69 72 while (points.hasMoreElements()) { 70 73 final TrackPoint point = (TrackPoint) points.nextElement(); … … 73 76 final int x = offsetX + xAxis.getPosition(xValue); 74 77 final int y = height - (offsetY + yAxis.getPosition(yValue)); 78 int paintY = y; 79 boolean skip = false; 80 if (doAverage) { 81 if (x == prevX) { 82 sumY += y; 83 ++nPoints; 84 skip = true; 85 } else { 86 if (nPoints > 0) { 87 paintY = sumY / nPoints; 88 } 89 nPoints = 0; 90 sumY = 0; 91 } 92 } 93 if (!skip) { 94 paintConnection(g, prevPoint, prevX, prevY, point, x, paintY, newSegment); 95 prevPoint = point; 96 prevX = x; 97 prevY = paintY; 98 } 75 99 76 paintConnection(g, prevPoint, prevX, prevY, point, x, y, newSegment);77 78 prevPoint = point;79 prevX = x;80 prevY = y;81 100 newSegment = false; 82 101 } … … 88 107 * Draws a connection between two points. The first time this method is 89 108 * called for any given redraw operation <code>point1</code> will be null 90 * (and <code>x1</code> and <code>y1</code> will be -1). The last time 91 * it is called the same is true for <code>point2</code>, <code>x2</code>92 * and<code>y2</code>.109 * (and <code>x1</code> and <code>y1</code> will be -1). The last time it is 110 * called the same is true for <code>point2</code>, <code>x2</code> and 111 * <code>y2</code>. 93 112 * 94 113 * This is so that every point will always occur once in position 1 and once
Note: See TracChangeset
for help on using the changeset viewer.