X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Fgui%2FProfileChart.java;h=a0adfdbe33b74424ce6432eb8be2e20c052f1cf3;hb=54b9d8bc8f0025ccf97a67d9dd217ef1f9cf082f;hp=8bc2c055a5301910b8c3a71cc1b3708204794078;hpb=5625a1abadb5f2ca5f017fe7dbda1d5141cb637b;p=GpsPrune.git diff --git a/tim/prune/gui/ProfileChart.java b/tim/prune/gui/ProfileChart.java index 8bc2c05..a0adfdb 100644 --- a/tim/prune/gui/ProfileChart.java +++ b/tim/prune/gui/ProfileChart.java @@ -6,6 +6,7 @@ import java.awt.Graphics; import java.awt.event.MouseEvent; import tim.prune.I18nManager; +import tim.prune.data.Altitude; import tim.prune.data.AltitudeRange; import tim.prune.data.Track; import tim.prune.data.TrackInfo; @@ -86,28 +87,33 @@ public class ProfileChart extends GenericChart } } - // loop through points - int chartFormat = altitudeRange.getFormat(); - for (int p = 0; p < numPoints; p++) + try { - int x = (int) (_xScaleFactor * p); - if (p == selectedPoint) + // loop through points + Altitude.Format chartFormat = altitudeRange.getFormat(); + for (int p = 0; p < numPoints; p++) { - g.setColor(COLOR_SELECTED_BG); - g.fillRect(BORDER_WIDTH + x, BORDER_WIDTH+1, barWidth, height-2*BORDER_WIDTH-2); - g.setColor(COLOR_SELECTED); - } - else - { - g.setColor(COLOR_ALT_BARS); - } - if (_track.getPoint(p).getAltitude().isValid()) - { - altitude = _track.getPoint(p).getAltitude().getValue(chartFormat); - y = (int) (yScaleFactor * (altitude - minAltitude)); - g.fillRect(BORDER_WIDTH+x, height-BORDER_WIDTH - y, barWidth, y); + int x = (int) (_xScaleFactor * p); + if (p == selectedPoint) + { + g.setColor(COLOR_SELECTED_BG); + g.fillRect(BORDER_WIDTH + x, BORDER_WIDTH+1, barWidth, height-2*BORDER_WIDTH-2); + g.setColor(COLOR_SELECTED); + } + else + { + g.setColor(COLOR_ALT_BARS); + } + if (_track.getPoint(p).getAltitude().isValid()) + { + altitude = _track.getPoint(p).getAltitude().getValue(chartFormat); + y = (int) (yScaleFactor * (altitude - minAltitude)); + g.fillRect(BORDER_WIDTH+x, height-BORDER_WIDTH - y, barWidth, y); + } } } + catch (NullPointerException npe) { // ignore, probably due to data being changed + } // Draw numbers on top of the graph to mark scale if (lineScale > 1) { @@ -178,6 +184,7 @@ public class ProfileChart extends GenericChart /** * Method to inform map that data has changed + * @param inTrack track object */ public void dataUpdated(Track inTrack) {