X-Git-Url: https://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=src%2Ftim%2Fprune%2Ffunction%2Fdistance%2FDistanceFunction.java;h=e0b7aed7354938616982ba8d933f6e531f37d651;hp=5fe6e7e7d9e307d901ad25c23b2a4ea021acc3d3;hb=HEAD;hpb=2302358503c38817e19f6e529f6c9e530aac0e86 diff --git a/src/tim/prune/function/distance/DistanceFunction.java b/src/tim/prune/function/distance/DistanceFunction.java index 5fe6e7e..f373324 100644 --- a/src/tim/prune/function/distance/DistanceFunction.java +++ b/src/tim/prune/function/distance/DistanceFunction.java @@ -77,8 +77,9 @@ public class DistanceFunction extends GenericFunction } _fromModel.init(pointList); _distModel.init(pointList); - _pointTable.getSelectionModel().setSelectionInterval(0, 0); - _distModel.recalculate(0); + final int pointIndex = getPointIndex(pointList, _app.getTrackInfo()); + _pointTable.getSelectionModel().setSelectionInterval(pointIndex, pointIndex); + _distModel.recalculate(pointIndex); _dialog.setVisible(true); } @@ -114,12 +115,7 @@ public class DistanceFunction extends GenericFunction // second table for distances _distModel = new DistanceTableModel(); JTable distTable = new JTable(_distModel); - // Use reflection to call distTable.setAutoCreateRowSorter(true) which is new with Java 1.6 - try { - Class d = Class.forName("javax.swing.JTable"); - d.getDeclaredMethod("setAutoCreateRowSorter", new Class[]{Boolean.TYPE}).invoke(distTable, Boolean.TRUE); - } - catch (Exception e) {} + distTable.setAutoCreateRowSorter(true); scrollPane = new JScrollPane(distTable); scrollPane.setPreferredSize(new Dimension(200, 250)); mainPanel.add(scrollPane); @@ -168,4 +164,25 @@ public class DistanceFunction extends GenericFunction } return pointList; } + + /** + * Find the point to select from the given point list + * @param pointList list of points + * @param inTrackInfo current track info to get selected point (if any) + * @return index of point to be selected + */ + private static int getPointIndex(ArrayList pointList, TrackInfo inTrackInfo) + { + DataPoint currPoint = inTrackInfo.getCurrentPoint(); + if (currPoint != null && currPoint.isWaypoint()) + { + // Currently selected point is a waypoint, so select this one for convenience + for (int i=0; i