Changeset 17718 in josm
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
r17715 r17718 1 1 // License: GPL. For details, see LICENSE file. 2 2 package org.openstreetmap.josm.gui.layer; 3 4 import static org.openstreetmap.josm.tools.I18n.tr;5 import static org.openstreetmap.josm.tools.I18n.trn;6 7 import java.awt.Color;8 import java.awt.Dimension;9 import java.awt.Graphics2D;10 import java.awt.event.ActionEvent;11 import java.io.File;12 import java.time.Instant;13 import java.time.format.DateTimeFormatter;14 import java.time.format.FormatStyle;15 import java.time.temporal.ChronoUnit;16 import java.util.ArrayList;17 import java.util.Arrays;18 import java.util.Collections;19 import java.util.Date;20 import java.util.List;21 import java.util.NoSuchElementException;22 import java.util.stream.Collectors;23 24 import javax.swing.AbstractAction;25 import javax.swing.Action;26 import javax.swing.Icon;27 import javax.swing.JScrollPane;28 import javax.swing.SwingUtilities;29 3 30 4 import org.openstreetmap.josm.actions.AutoScaleAction; … … 68 42 import org.openstreetmap.josm.tools.date.DateUtils; 69 43 44 import javax.swing.AbstractAction; 45 import javax.swing.Action; 46 import javax.swing.Icon; 47 import javax.swing.JScrollPane; 48 import javax.swing.SwingUtilities; 49 import java.awt.Color; 50 import java.awt.Dimension; 51 import java.awt.Graphics2D; 52 import java.awt.event.ActionEvent; 53 import java.io.File; 54 import java.time.Instant; 55 import java.time.format.DateTimeFormatter; 56 import java.time.format.FormatStyle; 57 import java.util.ArrayList; 58 import java.util.Arrays; 59 import java.util.Collections; 60 import java.util.Date; 61 import java.util.List; 62 import java.util.NoSuchElementException; 63 import java.util.stream.Collectors; 64 65 import static org.openstreetmap.josm.tools.I18n.tr; 66 import static org.openstreetmap.josm.tools.I18n.trn; 67 70 68 /** 71 69 * A layer that displays data from a Gpx file / the OSM gpx downloads. … … 178 176 DateTimeFormatter tf = DateUtils.getTimeFormatter(FormatStyle.SHORT); 179 177 ts += earliestDate + ' '; 180 ts += tf.format(bounds[0]) + " -" + tf.format(bounds[1]);178 ts += tf.format(bounds[0]) + " \u2013 " + tf.format(bounds[1]); 181 179 } else { 182 180 DateTimeFormatter dtf = DateUtils.getDateTimeFormatter(FormatStyle.SHORT, FormatStyle.MEDIUM); 183 ts += dtf.format(bounds[0]) + " - " + dtf.format(bounds[1]); 184 } 185 186 long diff = ChronoUnit.SECONDS.between(bounds[1], bounds[0]); 187 ts += String.format(" (%d:%02d)", diff / 3600, (diff % 3600) / 60); 181 ts += dtf.format(bounds[0]) + " \u2013 " + dtf.format(bounds[1]); 182 } 183 184 ts += String.format(" (%s)", Utils.getDurationString(bounds[1].toEpochMilli() - bounds[0].toEpochMilli())); 188 185 return ts; 189 186 } -
trunk/test/unit/org/openstreetmap/josm/gui/layer/GpxLayerTest.java
r17275 r17718 10 10 import java.awt.Color; 11 11 import java.io.IOException; 12 import java.time.Instant; 12 13 import java.util.ArrayList; 13 14 import java.util.Collection; 14 15 import java.util.HashMap; 16 import java.util.Locale; 15 17 import java.util.TimeZone; 16 18 17 19 import javax.swing.JScrollPane; 18 20 21 import org.junit.jupiter.api.BeforeEach; 19 22 import org.junit.jupiter.api.Test; 20 23 import org.junit.jupiter.api.extension.RegisterExtension; … … 30 33 import org.openstreetmap.josm.io.GpxReaderTest; 31 34 import org.openstreetmap.josm.testutils.JOSMTestRules; 35 import org.openstreetmap.josm.tools.date.DateUtils; 32 36 import org.xml.sax.SAXException; 33 37 … … 45 49 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD") 46 50 public JOSMTestRules test = new JOSMTestRules().main().projection().i18n().metricSystem(); 51 52 /** 53 * Setup test. 54 */ 55 @BeforeEach 56 void setUp() { 57 Locale.setDefault(Locale.ROOT); 58 DateUtils.PROP_ISO_DATES.put(true); 59 } 47 60 48 61 private static String getHtml(GpxLayer layer) { … … 167 180 " </td>\n" + 168 181 " <td>\n" + 169 " 1/3/16 11:59 AM - 12:00 PM (0:00)\n" +182 " 2016-01-03 11:59:58 – 12:00:00 (2.0 s)\n" + 170 183 " </td>\n" + 171 184 " <td>\n" + … … 197 210 new GpxTrack(new ArrayList<Collection<WayPoint>>(), new HashMap<String, Object>()))); 198 211 199 assertEquals(" 1/3/16 11:59 AM - 12:00 PM (0:00)", GpxLayer.getTimespanForTrack(getMinimalGpxData().tracks.iterator().next()));212 assertEquals("2016-01-03 11:59:58 \u2013 12:00:00 (2.0 s)", GpxLayer.getTimespanForTrack(getMinimalGpxData().tracks.iterator().next())); 200 213 201 214 TimeZone.setDefault(TimeZone.getTimeZone("Europe/Berlin")); 202 assertEquals("1/3/16 12:59 PM - 1:00 PM (0:00)", GpxLayer.getTimespanForTrack(getMinimalGpxData().tracks.iterator().next())); 215 assertEquals("2016-01-03 12:59:58 \u2013 13:00:00 (2.0 s)", GpxLayer.getTimespanForTrack(getMinimalGpxData().tracks.iterator().next())); 216 } 217 218 /** 219 * Unit test of {@link GpxLayer#formatTimespan}. 220 */ 221 @Test 222 void testFormatTimespan() { 223 Instant[] timespan = {Instant.parse("2021-03-01T17:53:16Z"), Instant.parse("2021-04-03T08:19:19Z")}; 224 assertEquals("2021-03-01T17:53:16 \u2013 2021-04-03T08:19:19 (32 days 14 h)", GpxLayer.formatTimespan(timespan)); 203 225 } 204 226
Note:
See TracChangeset
for help on using the changeset viewer.