Changeset 1685 in josm for trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
- Timestamp:
- 21.06.2009 12:02:15 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
r1646 r1685 345 345 346 346 public static void playAudio() { 347 playAdjacentMarker(null, true); 348 } 349 350 public static void playNextMarker() { 351 playAdjacentMarker(AudioMarker.recentlyPlayedMarker(), true); 352 } 353 354 public static void playPreviousMarker() { 355 playAdjacentMarker(AudioMarker.recentlyPlayedMarker(), false); 356 } 357 358 private static Marker getAdjacentMarker(Marker startMarker, boolean next, Layer layer) { 359 Marker previousMarker = null; 360 boolean nextTime = false; 361 if (layer.getClass() == MarkerLayer.class) { 362 MarkerLayer markerLayer = (MarkerLayer) layer; 363 for (Marker marker : markerLayer.data) { 364 if (marker == startMarker) { 365 if (next) 366 nextTime = true; 367 else { 368 if (previousMarker == null) 369 previousMarker = startMarker; // if no previous one, play the first one again 370 return previousMarker; 371 } 372 } 373 else if (marker.getClass() == AudioMarker.class) 374 { 375 if(nextTime || startMarker == null) 376 return marker; 377 previousMarker = marker; 378 } 379 } 380 if (nextTime) // there was no next marker in that layer, so play the last one again 381 return startMarker; 382 } 383 return null; 384 } 385 386 private static void playAdjacentMarker(Marker startMarker, boolean next) { 387 Marker m = null; 347 388 if (Main.map == null || Main.map.mapView == null) 348 389 return; 349 for (Layer layer : Main.map.mapView.getAllLayers()) { 350 if (layer.getClass() == MarkerLayer.class) { 351 MarkerLayer markerLayer = (MarkerLayer) layer; 352 for (Marker marker : markerLayer.data) { 353 if (marker.getClass() == AudioMarker.class) { 354 ((AudioMarker)marker).play(); 355 break; 356 } 357 } 358 } 359 } 360 } 361 362 public static void playNextMarker() { 363 playAdjacentMarker(true); 364 } 365 366 public static void playPreviousMarker() { 367 playAdjacentMarker(false); 368 } 369 370 private static void playAdjacentMarker(boolean next) { 371 Marker startMarker = AudioMarker.recentlyPlayedMarker(); 372 if (startMarker == null) { 373 // message? 374 return; 375 } 376 Marker previousMarker = null; 377 boolean nextTime = false; 378 if (Main.map == null || Main.map.mapView == null) 379 return; 380 for (Layer layer : Main.map.mapView.getAllLayers()) { 381 if (layer.getClass() == MarkerLayer.class) { 382 MarkerLayer markerLayer = (MarkerLayer) layer; 383 for (Marker marker : markerLayer.data) { 384 if (marker == startMarker) { 385 if (next) { 386 nextTime = true; 387 } else { 388 if (previousMarker == null) 389 previousMarker = startMarker; // if no previous one, play the first one again 390 ((AudioMarker)previousMarker).play(); 391 break; 392 } 393 } else if (nextTime && marker.getClass() == AudioMarker.class) { 394 ((AudioMarker)marker).play(); 395 return; 396 } 397 if (marker.getClass() == AudioMarker.class) 398 previousMarker = marker; 399 } 400 if (nextTime) { 401 // there was no next marker in that layer, so play the last one again 402 ((AudioMarker)startMarker).play(); 403 return; 404 } 405 } 406 } 390 Layer l = Main.map.mapView.getActiveLayer(); 391 if(l != null) 392 m = getAdjacentMarker(startMarker, next, l); 393 if(m == null) 394 { 395 for (Layer layer : Main.map.mapView.getAllLayers()) 396 { 397 m = getAdjacentMarker(startMarker, next, layer); 398 if(m != null) 399 break; 400 } 401 } 402 if(m != null) 403 ((AudioMarker)m).play(); 407 404 } 408 405
Note: See TracChangeset
for help on using the changeset viewer.
