X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Ffunction%2Fgpsies%2FTrackListModel.java;h=94ce503e41da2498ce36beb7c2d51dd7d04f1b14;hb=ff33ebba6b7c62834f6dae16ce33eb2c710b160e;hp=274c0b882a3bf51f1ee7c7dfe278646f756ff235;hpb=7f5ed2be62905bd37717376dc22d09e5ea7edb4d;p=GpsPrune.git diff --git a/tim/prune/function/gpsies/TrackListModel.java b/tim/prune/function/gpsies/TrackListModel.java index 274c0b8..94ce503 100644 --- a/tim/prune/function/gpsies/TrackListModel.java +++ b/tim/prune/function/gpsies/TrackListModel.java @@ -2,12 +2,14 @@ package tim.prune.function.gpsies; import java.text.NumberFormat; import java.util.ArrayList; +import java.util.Collections; import javax.swing.table.AbstractTableModel; import tim.prune.I18nManager; import tim.prune.config.Config; import tim.prune.data.Unit; +import tim.prune.function.search.SearchResult; /** * Model for list of tracks from gpsies.com @@ -15,7 +17,7 @@ import tim.prune.data.Unit; public class TrackListModel extends AbstractTableModel { /** List of tracks */ - private ArrayList _trackList = null; + private ArrayList _trackList = null; /** Column heading for track name */ private String _nameColLabel = null; /** Column heading for length */ @@ -80,7 +82,7 @@ public class TrackListModel extends AbstractTableModel */ public Object getValueAt(int inRowNum, int inColNum) { - GpsiesTrack track = _trackList.get(inRowNum); + SearchResult track = _trackList.get(inRowNum); if (inColNum == 0) {return track.getTrackName();} double lengthM = track.getLength(); // convert to current distance units @@ -94,12 +96,26 @@ public class TrackListModel extends AbstractTableModel * Add a list of tracks to this model * @param inList list of tracks to add */ - public void addTracks(ArrayList inList) + public void addTracks(ArrayList inList) { - if (_trackList == null) {_trackList = new ArrayList();} + addTracks(inList, false); + } + + /** + * Add a list of tracks to this model and optionally sort them + * @param inList list of tracks to add + * @param inSort true to sort results after adding + */ + public void addTracks(ArrayList inList, boolean inSort) + { + if (_trackList == null) {_trackList = new ArrayList();} final int prevCount = _trackList.size(); - if (inList != null && inList.size() > 0) { + if (inList != null && inList.size() > 0) + { _trackList.addAll(inList); + if (inSort) { + Collections.sort(_trackList); + } } final int updatedCount = _trackList.size(); if (prevCount <= 0) @@ -112,7 +128,7 @@ public class TrackListModel extends AbstractTableModel * @param inRowNum row number from 0 * @return track object for this row */ - public GpsiesTrack getTrack(int inRowNum) + public SearchResult getTrack(int inRowNum) { return _trackList.get(inRowNum); }