Changeset 15502 in josm for trunk


Ignore:
Timestamp:
2019-11-03T22:11:11+01:00 (4 years ago)
Author:
Don-vip
Message:

see #16796 - use IGpxTrack in GpxData (patch by Bjoeni)

Location:
trunk
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/gpx/GpxData.java

    r15497 r15502  
    7373     * A list of tracks this file consists of
    7474     */
    75     private final ArrayList<GpxTrack> privateTracks = new ArrayList<>();
     75    private final ArrayList<IGpxTrack> privateTracks = new ArrayList<>();
    7676    /**
    7777     * GPX routes in this file
     
    100100     * @see #getTracks()
    101101     */
    102     public final Collection<GpxTrack> tracks = new ListeningCollection<GpxTrack>(privateTracks, this::invalidate) {
     102    public final Collection<IGpxTrack> tracks = new ListeningCollection<IGpxTrack>(privateTracks, this::invalidate) {
    103103
    104104        @Override
    105         protected void removed(GpxTrack cursor) {
     105        protected void removed(IGpxTrack cursor) {
    106106            cursor.removeListener(proxy);
    107107            super.removed(cursor);
     
    109109
    110110        @Override
    111         protected void added(GpxTrack cursor) {
     111        protected void added(IGpxTrack cursor) {
    112112            super.added(cursor);
    113113            cursor.addListener(proxy);
     
    174174
    175175        if (cutOverlapping) {
    176             for (GpxTrack trk : other.privateTracks) {
     176            for (IGpxTrack trk : other.privateTracks) {
    177177                cutOverlapping(trk, connect);
    178178            }
     
    186186    }
    187187
    188     private void cutOverlapping(GpxTrack trk, boolean connect) {
     188    private void cutOverlapping(IGpxTrack trk, boolean connect) {
    189189        List<IGpxTrackSegment> segsOld = new ArrayList<>(trk.getSegments());
    190190        List<IGpxTrackSegment> segsNew = new ArrayList<>();
     
    366366        if (segSpans == null) {
    367367            segSpans = new ArrayList<>();
    368             for (GpxTrack trk : privateTracks) {
     368            for (IGpxTrack trk : privateTracks) {
    369369                for (IGpxTrackSegment seg : trk.getSegments()) {
    370370                    GpxTrackSegmentSpan s = GpxTrackSegmentSpan.tryGetFromSegment(seg);
     
    392392     * @return The tracks.
    393393     */
    394     public synchronized Collection<GpxTrack> getTracks() {
     394    public synchronized Collection<IGpxTrack> getTracks() {
    395395        return Collections.unmodifiableCollection(privateTracks);
    396396    }
     
    418418     * @since 12156
    419419     */
    420     public synchronized void addTrack(GpxTrack track) {
     420    public synchronized void addTrack(IGpxTrack track) {
    421421        if (privateTracks.stream().anyMatch(t -> t == track)) {
    422422            throw new IllegalArgumentException(MessageFormat.format("The track was already added to this data: {0}", track));
     
    432432     * @since 12156
    433433     */
    434     public synchronized void removeTrack(GpxTrack track) {
     434    public synchronized void removeTrack(IGpxTrack track) {
    435435        if (!privateTracks.removeIf(t -> t == track)) {
    436436            throw new IllegalArgumentException(MessageFormat.format("The track was not in this data: {0}", track));
     
    626626     * @return The stream
    627627     * @see #getTracks()
    628      * @see GpxTrack#getSegments()
     628     * @see IGpxTrack#getSegments()
    629629     * @see IGpxTrackSegment#getWayPoints()
    630630     * @since 12156
     
    698698            }
    699699        }
    700         for (GpxTrack trk : privateTracks) {
     700        for (IGpxTrack trk : privateTracks) {
    701701            Bounds trkBounds = trk.getBounds();
    702702            if (trkBounds != null) {
     
    716716     */
    717717    public synchronized double length() {
    718         return privateTracks.stream().mapToDouble(GpxTrack::length).sum();
     718        return privateTracks.stream().mapToDouble(IGpxTrack::length).sum();
    719719    }
    720720
     
    724724     * @return  minimum and maximum dates in array of 2 elements
    725725     */
    726     public static Date[] getMinMaxTimeForTrack(GpxTrack trk) {
     726    public static Date[] getMinMaxTimeForTrack(IGpxTrack trk) {
    727727        final LongSummaryStatistics statistics = trk.getSegments().stream()
    728728                .flatMap(seg -> seg.getWayPoints().stream())
     
    793793        double py = p.north();
    794794        double rx = 0.0, ry = 0.0, sx, sy, x, y;
    795         for (GpxTrack track : privateTracks) {
     795        for (IGpxTrack track : privateTracks) {
    796796            for (IGpxTrackSegment seg : track.getSegments()) {
    797797                WayPoint r = null;
     
    907907    public static class LinesIterator implements Iterator<Line> {
    908908
    909         private Iterator<GpxTrack> itTracks;
     909        private Iterator<IGpxTrack> itTracks;
    910910        private int idxTracks;
    911911        private Iterator<IGpxTrackSegment> itTrackSegments;
     
    915915        private final boolean[] trackVisibility;
    916916        private Map<String, Object> trackAttributes;
    917         private GpxTrack curTrack;
     917        private IGpxTrack curTrack;
    918918
    919919        /**
  • trunk/src/org/openstreetmap/josm/data/gpx/GpxImageCorrelation.java

    r15496 r15502  
    3838        List<List<List<WayPoint>>> trks = new ArrayList<>();
    3939
    40         for (GpxTrack trk : selectedGpx.tracks) {
     40        for (IGpxTrack trk : selectedGpx.tracks) {
    4141            List<List<WayPoint>> segs = new ArrayList<>();
    4242            for (IGpxTrackSegment seg : trk.getSegments()) {
  • trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java

    r15497 r15502  
    3232import org.openstreetmap.josm.data.gpx.GpxData;
    3333import org.openstreetmap.josm.data.gpx.GpxData.GpxDataChangeListener;
    34 import org.openstreetmap.josm.data.gpx.GpxTrack;
     34import org.openstreetmap.josm.data.gpx.IGpxTrack;
    3535import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
    3636import org.openstreetmap.josm.data.projection.Projection;
     
    126126    public void setColor(Color color) {
    127127        data.beginUpdate();
    128         for (GpxTrack trk : data.getTracks()) {
     128        for (IGpxTrack trk : data.getTracks()) {
    129129            trk.setColor(color);
    130130        }
     
    143143     * @return The timespan as a string
    144144     */
    145     public static String getTimespanForTrack(GpxTrack trk) {
     145    public static String getTimespanForTrack(IGpxTrack trk) {
    146146        Date[] bounds = GpxData.getMinMaxTimeForTrack(trk);
    147147        String ts = "";
     
    201201                .append("</td></tr></thead>");
    202202
    203             for (GpxTrack trk : data.getTracks()) {
     203            for (IGpxTrack trk : data.getTracks()) {
    204204                info.append("<tr><td>");
    205205                if (trk.getAttributes().containsKey(GpxConstants.GPX_NAME)) {
     
    330330        long from = fromDate.getTime();
    331331        long to = toDate.getTime();
    332         for (GpxTrack trk : data.getTracks()) {
     332        for (IGpxTrack trk : data.getTracks()) {
    333333            Date[] t = GpxData.getMinMaxTimeForTrack(trk);
    334334
  • trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java

    r15498 r15502  
    7272import org.openstreetmap.josm.data.gpx.GpxTimeOffset;
    7373import org.openstreetmap.josm.data.gpx.GpxTimezone;
    74 import org.openstreetmap.josm.data.gpx.GpxTrack;
     74import org.openstreetmap.josm.data.gpx.IGpxTrack;
    7575import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
    7676import org.openstreetmap.josm.data.gpx.WayPoint;
     
    12631263        long firstGPXDate = -1;
    12641264        // Finds first GPX point
    1265         outer: for (GpxTrack trk : gpx.tracks) {
     1265        outer: for (IGpxTrack trk : gpx.tracks) {
    12661266            for (IGpxTrackSegment segment : trk.getSegments()) {
    12671267                for (WayPoint curWp : segment.getWayPoints()) {
  • trunk/src/org/openstreetmap/josm/gui/layer/gpx/ChooseTrackVisibilityAction.java

    r15496 r15502  
    3535import javax.swing.table.DefaultTableModel;
    3636import javax.swing.table.TableCellRenderer;
     37import javax.swing.table.TableModel;
    3738import javax.swing.table.TableRowSorter;
    3839
     
    4041import org.openstreetmap.josm.data.SystemOfMeasurement;
    4142import org.openstreetmap.josm.data.gpx.GpxConstants;
    42 import org.openstreetmap.josm.data.gpx.GpxTrack;
     43import org.openstreetmap.josm.data.gpx.IGpxTrack;
    4344import org.openstreetmap.josm.gui.ExtendedDialog;
    4445import org.openstreetmap.josm.gui.MainApplication;
     
    119120        Object[][] tracks = new Object[layer.data.tracks.size()][5];
    120121        int i = 0;
    121         for (GpxTrack trk : layer.data.tracks) {
     122        for (IGpxTrack trk : layer.data.tracks) {
    122123            Map<String, Object> attr = trk.getAttributes();
    123124            String name = (String) Optional.ofNullable(attr.get(GpxConstants.GPX_NAME)).orElse("");
     
    132133    }
    133134
    134     private void showColorDialog(List<GpxTrack> tracks) {
     135    private void showColorDialog(List<IGpxTrack> tracks) {
    135136        Color cl = tracks.stream().filter(Objects::nonNull)
    136                 .map(GpxTrack::getColor).filter(Objects::nonNull)
     137                .map(IGpxTrack::getColor).filter(Objects::nonNull)
    137138                .findAny().orElse(GpxDrawHelper.DEFAULT_COLOR_PROPERTY.get());
    138139        JColorChooser c = new JColorChooser(cl);
     
    171172        final String[] headers = {tr("Name"), tr("Description"), tr("Timespan"), tr("Length"), tr("URL")};
    172173        DefaultTableModel model = new DefaultTableModel(content, headers);
    173         final JTable t = new JTable(model) {
    174             @Override
    175             public Component prepareRenderer(TableCellRenderer renderer, int row, int col) {
    176                 Component c = super.prepareRenderer(renderer, row, col);
    177                 if (c instanceof JComponent) {
    178                     JComponent jc = (JComponent) c;
    179                     jc.setToolTipText(getValueAt(row, col).toString());
    180                     if (content.length > row
    181                             && content[row].length > 5
    182                             && content[row][5] instanceof GpxTrack) {
    183                         Color color = ((GpxTrack) content[row][5]).getColor();
    184                         if (color != null) {
    185                             double brightness = Math.sqrt(Math.pow(color.getRed(), 2) * .241
    186                                     + Math.pow(color.getGreen(), 2) * .691
    187                                     + Math.pow(color.getBlue(), 2) * .068);
    188                             if (brightness > 250) {
    189                                 color = color.darker();
    190                             }
    191                             if (isRowSelected(row)) {
    192                                 jc.setBackground(color);
    193                                 if (brightness <= 130) {
    194                                     jc.setForeground(Color.WHITE);
    195                                 } else {
    196                                     jc.setForeground(Color.BLACK);
    197                                 }
    198                             } else {
    199                                 if (brightness > 200) {
    200                                     color = color.darker(); //brightness >250 is darkened twice on purpose
    201                                 }
    202                                 jc.setForeground(color);
    203                                 jc.setBackground(Color.WHITE);
    204                             }
    205                         } else {
    206                             jc.setForeground(Color.BLACK);
    207                             if (isRowSelected(row)) {
    208                                 jc.setBackground(new Color(175, 210, 210));
    209                             } else {
    210                                 jc.setBackground(Color.WHITE);
    211                             }
    212                         }
    213                     }
    214                 }
    215                 return c;
    216             }
    217 
    218             @Override
    219             public boolean isCellEditable(int rowIndex, int colIndex) {
    220                 return colIndex <= 1;
    221             }
    222 
    223             @Override
    224             public void tableChanged(TableModelEvent e) {
    225                 super.tableChanged(e);
    226                 int col = e.getColumn();
    227                 int row = e.getFirstRow();
    228                 if (row >= 0 && row < content.length && col >= 0 && col <= 1) {
    229                     Object t = content[row][5];
    230                     String val = (String) getValueAt(row, col);
    231                     if (t != null && t instanceof GpxTrack) {
    232                         GpxTrack trk = (GpxTrack) t;
    233                         if (col == 0) {
    234                             trk.put("name", val);
    235                         } else {
    236                             trk.put("desc", val);
    237                         }
    238                     } else {
    239                         throw new InvalidArgumentException("Invalid object in table, must be GpxTrack.");
    240                     }
    241                 }
    242             }
    243         };
     174        final GpxTrackTable t = new GpxTrackTable(content, model);
    244175        // define how to sort row
    245176        TableRowSorter<DefaultTableModel> rowSorter = new TableRowSorter<>();
     
    366297            protected void buttonAction(int buttonIndex, ActionEvent evt) {
    367298                if (buttonIndex == 0) {
    368                     List<GpxTrack> trks = new ArrayList<>();
     299                    List<IGpxTrack> trks = new ArrayList<>();
    369300                    for (int i : table.getSelectedRows()) {
    370301                        Object trk = content[i][5];
    371                         if (trk != null && trk instanceof GpxTrack) {
    372                             trks.add((GpxTrack) trk);
     302                        if (trk != null && trk instanceof IGpxTrack) {
     303                            trks.add((IGpxTrack) trk);
    373304                        }
    374305                    }
     
    407338        layer.setVisible(v == 2 || !s.isSelectionEmpty());
    408339    }
     340
     341    private static class GpxTrackTable extends JTable {
     342        final Object[][] content;
     343
     344        public GpxTrackTable(Object[][] content, TableModel model) {
     345            super(model);
     346            this.content = content;
     347        }
     348
     349        @Override
     350        public Component prepareRenderer(TableCellRenderer renderer, int row, int col) {
     351            Component c = super.prepareRenderer(renderer, row, col);
     352            if (c instanceof JComponent) {
     353                JComponent jc = (JComponent) c;
     354                jc.setToolTipText(getValueAt(row, col).toString());
     355                if (content.length > row
     356                        && content[row].length > 5
     357                        && content[row][5] instanceof IGpxTrack) {
     358                    Color color = ((IGpxTrack) content[row][5]).getColor();
     359                    if (color != null) {
     360                        double brightness = Math.sqrt(Math.pow(color.getRed(), 2) * .241
     361                                + Math.pow(color.getGreen(), 2) * .691
     362                                + Math.pow(color.getBlue(), 2) * .068);
     363                        if (brightness > 250) {
     364                            color = color.darker();
     365                        }
     366                        if (isRowSelected(row)) {
     367                            jc.setBackground(color);
     368                            if (brightness <= 130) {
     369                                jc.setForeground(Color.WHITE);
     370                            } else {
     371                                jc.setForeground(Color.BLACK);
     372                            }
     373                        } else {
     374                            if (brightness > 200) {
     375                                color = color.darker(); //brightness >250 is darkened twice on purpose
     376                            }
     377                            jc.setForeground(color);
     378                            jc.setBackground(Color.WHITE);
     379                        }
     380                    } else {
     381                        jc.setForeground(Color.BLACK);
     382                        if (isRowSelected(row)) {
     383                            jc.setBackground(new Color(175, 210, 210));
     384                        } else {
     385                            jc.setBackground(Color.WHITE);
     386                        }
     387                    }
     388                }
     389            }
     390            return c;
     391        }
     392
     393        @Override
     394        public boolean isCellEditable(int rowIndex, int colIndex) {
     395            return colIndex <= 1;
     396        }
     397
     398        @Override
     399        public void tableChanged(TableModelEvent e) {
     400            super.tableChanged(e);
     401            int col = e.getColumn();
     402            int row = e.getFirstRow();
     403            if (row >= 0 && row < content.length && col >= 0 && col <= 1) {
     404                Object t = content[row][5];
     405                String val = (String) getValueAt(row, col);
     406                if (t != null && t instanceof IGpxTrack) {
     407                    IGpxTrack trk = (IGpxTrack) t;
     408                    if (col == 0) {
     409                        trk.put("name", val);
     410                    } else {
     411                        trk.put("desc", val);
     412                    }
     413                } else {
     414                    throw new InvalidArgumentException("Invalid object in table, must be IGpxTrack.");
     415                }
     416            }
     417        }
     418    }
    409419}
  • trunk/src/org/openstreetmap/josm/gui/layer/gpx/DownloadAlongTrackAction.java

    r15496 r15502  
    88import org.openstreetmap.josm.actions.DownloadAlongAction;
    99import org.openstreetmap.josm.data.gpx.GpxData;
    10 import org.openstreetmap.josm.data.gpx.GpxTrack;
     10import org.openstreetmap.josm.data.gpx.IGpxTrack;
    1111import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
    1212import org.openstreetmap.josm.data.gpx.WayPoint;
     
    6060        Path2D gpxPath = new Path2D.Double();
    6161        if (near == NEAR_TRACK || near == NEAR_BOTH) {
    62             for (GpxTrack trk : data.tracks) {
     62            for (IGpxTrack trk : data.tracks) {
    6363                for (IGpxTrackSegment segment : trk.getSegments()) {
    6464                    boolean first = true;
  • trunk/src/org/openstreetmap/josm/gui/layer/gpx/DownloadWmsAlongTrackAction.java

    r15496 r15502  
    1616import org.openstreetmap.josm.data.coor.LatLon;
    1717import org.openstreetmap.josm.data.gpx.GpxData;
    18 import org.openstreetmap.josm.data.gpx.GpxTrack;
     18import org.openstreetmap.josm.data.gpx.IGpxTrack;
    1919import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
    2020import org.openstreetmap.josm.data.gpx.WayPoint;
     
    9292    PrecacheWmsTask createTask() {
    9393        List<LatLon> points = new ArrayList<>();
    94         for (GpxTrack trk : data.tracks) {
     94        for (IGpxTrack trk : data.tracks) {
    9595            for (IGpxTrackSegment segment : trk.getSegments()) {
    9696                for (WayPoint p : segment.getWayPoints()) {
  • trunk/src/org/openstreetmap/josm/gui/layer/gpx/ImportAudioAction.java

    r15496 r15502  
    2121import org.openstreetmap.josm.data.gpx.GpxConstants;
    2222import org.openstreetmap.josm.data.gpx.GpxData;
    23 import org.openstreetmap.josm.data.gpx.GpxTrack;
     23import org.openstreetmap.josm.data.gpx.IGpxTrack;
    2424import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
    2525import org.openstreetmap.josm.data.gpx.WayPoint;
     
    147147        double firstTime = -1.0;
    148148        if (hasTracks) {
    149             for (GpxTrack track : layer.data.tracks) {
     149            for (IGpxTrack track : layer.data.tracks) {
    150150                for (IGpxTrackSegment seg : track.getSegments()) {
    151151                    for (WayPoint w : seg.getWayPoints()) {
     
    206206        if (layer.data.tracks != null && Config.getPref().getBoolean("marker.audiofromnamedtrackpoints", false)
    207207                && !layer.data.tracks.isEmpty()) {
    208             for (GpxTrack track : layer.data.tracks) {
     208            for (IGpxTrack track : layer.data.tracks) {
    209209                for (IGpxTrackSegment seg : track.getSegments()) {
    210210                    for (WayPoint w : seg.getWayPoints()) {
     
    227227            WayPoint w2 = null;
    228228
    229             for (GpxTrack track : layer.data.tracks) {
     229            for (IGpxTrack track : layer.data.tracks) {
    230230                for (IGpxTrackSegment seg : track.getSegments()) {
    231231                    for (WayPoint w : seg.getWayPoints()) {
     
    263263        if ((Config.getPref().getBoolean("marker.audiofromstart") || waypoints.isEmpty()) && hasTracks) {
    264264            boolean gotOne = false;
    265             for (GpxTrack track : layer.data.tracks) {
     265            for (IGpxTrack track : layer.data.tracks) {
    266266                for (IGpxTrackSegment seg : track.getSegments()) {
    267267                    for (WayPoint w : seg.getWayPoints()) {
  • trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/PlayHeadMarker.java

    r15496 r15502  
    1818import org.openstreetmap.josm.data.coor.EastNorth;
    1919import org.openstreetmap.josm.data.coor.LatLon;
    20 import org.openstreetmap.josm.data.gpx.GpxTrack;
     20import org.openstreetmap.josm.data.gpx.IGpxTrack;
    2121import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
    2222import org.openstreetmap.josm.data.gpx.WayPoint;
     
    327327        WayPoint w2 = null;
    328328
    329         for (GpxTrack track : trackLayer.data.getTracks()) {
     329        for (IGpxTrack track : trackLayer.data.getTracks()) {
    330330            for (IGpxTrackSegment trackseg : track.getSegments()) {
    331331                for (WayPoint w: trackseg.getWayPoints()) {
  • trunk/src/org/openstreetmap/josm/io/GpxWriter.java

    r15497 r15502  
    2929import org.openstreetmap.josm.data.gpx.GpxRoute;
    3030import org.openstreetmap.josm.data.gpx.GpxTrack;
     31import org.openstreetmap.josm.data.gpx.IGpxTrack;
    3132import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
    3233import org.openstreetmap.josm.data.gpx.IWithAttributes;
     
    8586        //Prepare extensions for writing
    8687        data.beginUpdate();
    87         data.getTracks().forEach(trk -> trk.convertColor(colorFormat));
     88        data.getTracks().stream()
     89        .filter(GpxTrack.class::isInstance).map(GpxTrack.class::cast)
     90        .forEach(trk -> trk.convertColor(colorFormat));
    8891        data.getExtensions().removeAllWithPrefix("josm");
    8992        if (data.fromServer) {
     
    259262
    260263    private void writeTracks() {
    261         for (GpxTrack trk : data.getTracks()) {
     264        for (IGpxTrack trk : data.getTracks()) {
    262265            openln("trk");
    263266            writeAttr(trk, RTE_TRK_KEYS);
  • trunk/test/unit/org/openstreetmap/josm/data/gpx/GpxDataTest.java

    r15497 r15502  
    114114
    115115    /**
    116      * Test method for {@link GpxData#getTracks()},  {@link GpxData#addTrack(GpxTrack)},  {@link GpxData#removeTrack(GpxTrack)}.
     116     * Test method for {@link GpxData#getTracks()},  {@link GpxData#addTrack(IGpxTrack)},  {@link GpxData#removeTrack(IGpxTrack)}.
    117117     */
    118118    @Test
     
    136136
    137137    /**
    138      * Test method for {@link GpxData#addTrack(GpxTrack)}.
     138     * Test method for {@link GpxData#addTrack(IGpxTrack)}.
    139139     */
    140140    @Test(expected = IllegalArgumentException.class)
     
    146146
    147147    /**
    148      * Test method for {@link GpxData#removeTrack(GpxTrack)}.
     148     * Test method for {@link GpxData#removeTrack(IGpxTrack)}.
    149149     */
    150150    @Test(expected = IllegalArgumentException.class)
  • trunk/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java

    r15496 r15502  
    2323import org.openstreetmap.josm.data.gpx.GpxConstants;
    2424import org.openstreetmap.josm.data.gpx.GpxData;
    25 import org.openstreetmap.josm.data.gpx.GpxTrack;
     25import org.openstreetmap.josm.data.gpx.IGpxTrack;
    2626import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
    2727import org.openstreetmap.josm.data.gpx.WayPoint;
     
    240240        // Check that track is correct
    241241        assertEquals(1, gpx.getTrackCount());
    242         GpxTrack track = gpx.getTracks().iterator().next();
     242        IGpxTrack track = gpx.getTracks().iterator().next();
    243243        Collection<IGpxTrackSegment> segments = track.getSegments();
    244244        assertEquals(1, segments.size());
  • trunk/test/unit/org/openstreetmap/josm/io/nmea/NmeaReaderTest.java

    r15496 r15502  
    2424import org.openstreetmap.josm.data.gpx.GpxConstants;
    2525import org.openstreetmap.josm.data.gpx.GpxData;
    26 import org.openstreetmap.josm.data.gpx.GpxTrack;
     26import org.openstreetmap.josm.data.gpx.IGpxTrack;
    2727import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
    2828import org.openstreetmap.josm.data.gpx.WayPoint;
     
    9595        assertEquals(1, gpx.tracks.size());
    9696        assertEquals(1, in.data.tracks.size());
    97         GpxTrack gpxTrack = gpx.tracks.iterator().next();
    98         GpxTrack nmeaTrack = in.data.tracks.iterator().next();
     97        IGpxTrack gpxTrack = gpx.tracks.iterator().next();
     98        IGpxTrack nmeaTrack = in.data.tracks.iterator().next();
    9999        assertEquals(gpxTrack.getBounds(), nmeaTrack.getBounds());
    100100        int nTracks = gpxTrack.getSegments().size();
Note: See TracChangeset for help on using the changeset viewer.