X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fgui%2Fprofile%2FAltitudeData.java;h=f92046a798c1509aa1a049cb72c4cd78ea1170da;hp=7f2e10f2e1ab80f01de61feba9681b6333c984b4;hb=649c5da6ee1bbc590699e11a92316ece2ea8512d;hpb=eebbb64b5d63f9eea43a0dff908c30361a376768 diff --git a/tim/prune/gui/profile/AltitudeData.java b/tim/prune/gui/profile/AltitudeData.java index 7f2e10f..f92046a 100644 --- a/tim/prune/gui/profile/AltitudeData.java +++ b/tim/prune/gui/profile/AltitudeData.java @@ -30,28 +30,35 @@ public class AltitudeData extends ProfileData initArrays(); _hasData = false; _altitudeFormat = Altitude.Format.NO_FORMAT; - if (_track != null) { + if (_track != null) + { for (int i=0; i<_track.getNumPoints(); i++) { - DataPoint point = _track.getPoint(i); - if (point != null && point.hasAltitude()) + try { - // Point has an altitude - if it's the first one, use its format - if (_altitudeFormat == Altitude.Format.NO_FORMAT) + DataPoint point = _track.getPoint(i); + if (point != null && point.hasAltitude()) { - _altitudeFormat = point.getAltitude().getFormat(); - _minValue = _maxValue = point.getAltitude().getValue(); + // Point has an altitude - if it's the first one, use its format + if (_altitudeFormat == Altitude.Format.NO_FORMAT) + { + _altitudeFormat = point.getAltitude().getFormat(); + _minValue = _maxValue = point.getAltitude().getValue(); + } + // Store the value and maintain max and min values + double value = point.getAltitude().getValue(_altitudeFormat); + _pointValues[i] = value; + if (value < _minValue) {_minValue = value;} + if (value > _maxValue) {_maxValue = value;} + + _hasData = true; + _pointHasData[i] = true; } - // Store the value and maintain max and min values - double value = point.getAltitude().getValue(_altitudeFormat); - _pointValues[i] = value; - if (value < _minValue) {_minValue = value;} - if (value > _maxValue) {_maxValue = value;} - - _hasData = true; - _pointHasData[i] = true; + else _pointHasData[i] = false; } - else _pointHasData[i] = false; + catch (ArrayIndexOutOfBoundsException obe) + {} // must be due to the track size changing during calculation + // assume that a redraw will be triggered } } }