Changeset 12156 in josm for trunk/src/org/openstreetmap/josm/gui
- Timestamp:
- 2017-05-15T14:14:40+02:00 (6 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/gui/layer
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
r12155 r12156 9 9 import java.io.File; 10 10 import java.text.DateFormat; 11 import java.util.ArrayList;12 11 import java.util.Arrays; 13 12 import java.util.Collection; … … 60 59 /** 61 60 * used by {@link ChooseTrackVisibilityAction} to determine which tracks to show/hide 61 * 62 * Call {@link #invalidate()} after each change! 63 * 64 * TODO: Make it private, make it respond to track changes. 62 65 */ 63 66 public boolean[] trackVisibility = new boolean[0]; 64 65 private final List<GpxTrack> lastTracks = new ArrayList<>(); // List of tracks at last paint66 private int lastUpdateCount;67 67 68 68 private final GpxDrawHelper drawHelper; … … 94 94 super(d.getString(GpxConstants.META_NAME)); 95 95 data = d; 96 data.addWeakChangeListener(e -> this.invalidate()); 96 97 drawHelper = new GpxDrawHelper(data); 97 98 SystemOfMeasurement.addSoMChangeListener(drawHelper); … … 151 152 } 152 153 153 if (!data. tracks.isEmpty()) {154 if (!data.getTracks().isEmpty()) { 154 155 info.append("<table><thead align='center'><tr><td colspan='5'>") 155 156 .append(trn("{0} track", "{0} tracks", data.tracks.size(), data.tracks.size())) … … 159 160 .append("</td></tr></thead>"); 160 161 161 for (GpxTrack trk : data. tracks) {162 for (GpxTrack trk : data.getTracks()) { 162 163 info.append("<tr><td>"); 163 164 if (trk.getAttributes().containsKey(GpxConstants.GPX_NAME)) { … … 182 183 183 184 info.append(tr("Length: {0}", SystemOfMeasurement.getSystemOfMeasurement().getDistText(data.length()))).append("<br>") 184 .append(trn("{0} route, ", "{0} routes, ", data. routes.size(), data.routes.size()))185 .append(trn("{0} waypoint", "{0} waypoints", data. waypoints.size(), data.waypoints.size())).append("<br></html>");185 .append(trn("{0} route, ", "{0} routes, ", data.getRoutes().size(), data.getRoutes().size())) 186 .append(trn("{0} waypoint", "{0} waypoints", data.getWaypoints().size(), data.getWaypoints().size())).append("<br></html>"); 186 187 187 188 final JScrollPane sp = new JScrollPane(new HtmlPanel(info.toString())); … … 240 241 } 241 242 242 info.append(trn("{0} track, ", "{0} tracks, ", data. tracks.size(), data.tracks.size()))243 .append(trn("{0} route, ", "{0} routes, ", data. routes.size(), data.routes.size()))244 .append(trn("{0} waypoint", "{0} waypoints", data. waypoints.size(), data.waypoints.size())).append("<br>")243 info.append(trn("{0} track, ", "{0} tracks, ", data.getTracks().size(), data.getTracks().size())) 244 .append(trn("{0} route, ", "{0} routes, ", data.getRoutes().size(), data.getRoutes().size())) 245 .append(trn("{0} waypoint", "{0} waypoints", data.getWaypoints().size(), data.getWaypoints().size())).append("<br>") 245 246 .append(tr("Length: {0}", SystemOfMeasurement.getSystemOfMeasurement().getDistText(data.length()))) 246 247 .append("<br></html>"); … … 251 252 public boolean isMergable(Layer other) { 252 253 return other instanceof GpxLayer; 253 }254 255 private int sumUpdateCount() {256 int updateCount = 0;257 for (GpxTrack track: data.tracks) {258 updateCount += track.getUpdateCount();259 }260 return updateCount;261 }262 263 @Override264 public boolean isChanged() {265 if (data.tracks.equals(lastTracks))266 return sumUpdateCount() != lastUpdateCount;267 else268 return true;269 254 } 270 255 … … 279 264 long from = fromDate.getTime(); 280 265 long to = toDate.getTime(); 281 for (GpxTrack trk : data. tracks) {266 for (GpxTrack trk : data.getTracks()) { 282 267 Date[] t = GpxData.getMinMaxTimeForTrack(trk); 283 268 … … 287 272 i++; 288 273 } 274 invalidate(); 289 275 } 290 276 … … 299 285 @Override 300 286 public void paint(Graphics2D g, MapView mv, Bounds box) { 301 lastUpdateCount = sumUpdateCount();302 lastTracks.clear();303 lastTracks.addAll(data.tracks);304 305 287 List<WayPoint> visibleSegments = listVisibleSegments(box); 306 288 if (!visibleSegments.isEmpty()) { … … 363 345 */ 364 346 private void ensureTrackVisibilityLength() { 365 final int l = data. tracks.size();347 final int l = data.getTracks().size(); 366 348 if (l == trackVisibility.length) 367 349 return; … … 371 353 trackVisibility[i] = true; 372 354 } 355 invalidate(); 373 356 } 374 357 -
trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
r12153 r12156 743 743 } 744 744 745 gpxData. tracks.add(new ImmutableGpxTrack(trk, trkAttr));745 gpxData.addTrack(new ImmutableGpxTrack(trk, trkAttr)); 746 746 }); 747 747 } -
trunk/src/org/openstreetmap/josm/gui/layer/gpx/ChooseTrackVisibilityAction.java
r11608 r12156 218 218 layer.trackVisibility[table.convertRowIndexToModel(i)] = s.isSelectedIndex(i); 219 219 } 220 Main.map.mapView.preferenceChanged(null); 221 Main.map.repaint(100); 220 layer.invalidate(); 222 221 } 223 222 … … 292 291 layer.trackVisibility[table.convertRowIndexToModel(i)] = all || s.isSelectedIndex(i); 293 292 } 293 // layer has been changed 294 layer.invalidate(); 294 295 // ...sync with layer visibility instead to avoid having two ways to hide everything 295 296 layer.setVisible(v == 1 || !s.isSelectionEmpty()); -
trunk/src/org/openstreetmap/josm/gui/layer/gpx/ConvertToDataLayerAction.java
r11848 r12156 74 74 public DataSet convert() { 75 75 final DataSet ds = new DataSet(); 76 for (GpxTrack trk : layer.data. tracks) {76 for (GpxTrack trk : layer.data.getTracks()) { 77 77 for (GpxTrackSegment segment : trk.getSegments()) { 78 78 List<Node> nodes = new ArrayList<>(); -
trunk/src/org/openstreetmap/josm/gui/layer/gpx/MarkersFromNamedPointsAction.java
r10436 r12156 11 11 import org.openstreetmap.josm.Main; 12 12 import org.openstreetmap.josm.data.gpx.GpxData; 13 import org.openstreetmap.josm.data.gpx.GpxTrack;14 import org.openstreetmap.josm.data.gpx.GpxTrackSegment;15 import org.openstreetmap.josm.data.gpx.WayPoint;16 13 import org.openstreetmap.josm.gui.layer.GpxLayer; 17 14 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer; … … 30 27 public void actionPerformed(ActionEvent e) { 31 28 GpxData namedTrackPoints = new GpxData(); 32 for (GpxTrack track : layer.data.tracks) { 33 for (GpxTrackSegment seg : track.getSegments()) { 34 for (WayPoint point : seg.getWayPoints()) { 35 if (point.attr.containsKey("name") || point.attr.containsKey("desc")) { 36 namedTrackPoints.waypoints.add(point); 37 } 38 } 39 } 40 } 29 layer.data.getTrackPoints() 30 .filter(point -> point.attr.containsKey("name") || point.attr.containsKey("desc")) 31 .forEach(namedTrackPoints.waypoints::add); 41 32 MarkerLayer ml = new MarkerLayer(namedTrackPoints, tr("Named Trackpoints from {0}", layer.getName()), layer.getAssociatedFile(), layer); 42 33 if (!ml.data.isEmpty()) { -
trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/PlayHeadMarker.java
r11746 r12156 317 317 WayPoint w2 = null; 318 318 319 for (GpxTrack track : trackLayer.data. tracks) {319 for (GpxTrack track : trackLayer.data.getTracks()) { 320 320 for (GpxTrackSegment trackseg : track.getSegments()) { 321 321 for (WayPoint w: trackseg.getWayPoints()) {
Note: See TracChangeset
for help on using the changeset viewer.