Changeset 10611 in josm for trunk/src/org/openstreetmap/josm/gui/layer
- Timestamp:
- 2016-07-23T18:46:45+02:00 (8 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/gui/layer
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
r10596 r10611 1880 1880 double bufferX, double bufferY) { 1881 1881 PrecacheTask precacheTask = new PrecacheTask(progressMonitor); 1882 final Set<Tile> requestedTiles = new ConcurrentSkipListSet<>(new Comparator<Tile>() { 1883 @Override 1884 public int compare(Tile o1, Tile o2) { 1885 return String.CASE_INSENSITIVE_ORDER.compare(o1.getKey(), o2.getKey()); 1886 } 1887 }); 1882 final Set<Tile> requestedTiles = new ConcurrentSkipListSet<>( 1883 (o1, o2) -> String.CASE_INSENSITIVE_ORDER.compare(o1.getKey(), o2.getKey())); 1888 1884 for (LatLon point: points) { 1889 1885 -
trunk/src/org/openstreetmap/josm/gui/layer/AlignImageryPanel.java
r10000 r10611 7 7 import java.awt.Font; 8 8 import java.awt.GridBagLayout; 9 import java.awt.event.ActionEvent;10 import java.awt.event.ActionListener;11 9 12 10 import javax.swing.JButton; … … 55 53 closeButton.setBorderPainted(false); 56 54 closeButton.setToolTipText(tr("Hide this message and never show it again")); 57 closeButton.addActionListener(new ActionListener() { 58 @Override 59 public void actionPerformed(ActionEvent e) { 60 if (Main.isDisplayingMapView()) { 61 Main.map.removeTopPanel(AlignImageryPanel.class); 62 if (doNotShowAgain.isSelected()) { 63 showAgain.put(Boolean.FALSE); 64 } 55 closeButton.addActionListener(e -> { 56 if (Main.isDisplayingMapView()) { 57 Main.map.removeTopPanel(AlignImageryPanel.class); 58 if (doNotShowAgain.isSelected()) { 59 showAgain.put(Boolean.FALSE); 65 60 } 66 61 } -
trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
r10364 r10611 183 183 final JScrollPane sp = new JScrollPane(new HtmlPanel(info.toString())); 184 184 sp.setPreferredSize(new Dimension(sp.getPreferredSize().width+20, 370)); 185 SwingUtilities.invokeLater(new Runnable() { 186 @Override 187 public void run() { 188 sp.getVerticalScrollBar().setValue(0); 189 } 190 }); 185 SwingUtilities.invokeLater(() -> sp.getVerticalScrollBar().setValue(0)); 191 186 return sp; 192 187 } -
trunk/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java
r10571 r10611 301 301 */ 302 302 public static ImageProcessor createImageProcessor(final BufferedImageOp op, final boolean inPlace) { 303 return new ImageProcessor() { 304 @Override 305 public BufferedImage process(BufferedImage image) { 306 return op.filter(image, inPlace ? image : null); 307 } 308 }; 303 return image -> op.filter(image, inPlace ? image : null); 309 304 } 310 305 -
trunk/src/org/openstreetmap/josm/gui/layer/Layer.java
r10600 r10611 516 516 517 517 // run later to not block loading the UI. 518 SwingUtilities.invokeLater(new Runnable() { 519 @Override 520 public void run() { 521 JOptionPane.showMessageDialog(Main.parent, 522 message, 523 tr("Warning"), 524 JOptionPane.WARNING_MESSAGE); 525 } 526 }); 518 SwingUtilities.invokeLater(() -> JOptionPane.showMessageDialog(Main.parent, 519 message, 520 tr("Warning"), 521 JOptionPane.WARNING_MESSAGE)); 527 522 } 528 523 } -
trunk/src/org/openstreetmap/josm/gui/layer/LayerManager.java
r10598 r10611 178 178 // we force this on to the EDT Thread to make events fire from there. 179 179 // The synchronization lock needs to be held by the EDT. 180 GuiHelper.runInEDTAndWaitWithException(new Runnable() { 181 @Override 182 public void run() { 183 realAddLayer(layer); 184 } 185 }); 180 GuiHelper.runInEDTAndWaitWithException(() -> realAddLayer(layer)); 186 181 } 187 182 … … 208 203 // we force this on to the EDT Thread to make events fire from there. 209 204 // The synchronization lock needs to be held by the EDT. 210 GuiHelper.runInEDTAndWaitWithException(new Runnable() { 211 @Override 212 public void run() { 213 realRemoveLayer(layer); 214 } 215 }); 205 GuiHelper.runInEDTAndWaitWithException(() -> realRemoveLayer(layer)); 216 206 } 217 207 … … 247 237 // we force this on to the EDT Thread to make events fire from there. 248 238 // The synchronization lock needs to be held by the EDT. 249 GuiHelper.runInEDTAndWaitWithException(new Runnable() { 250 @Override 251 public void run() { 252 realMoveLayer(layer, position); 253 } 254 }); 239 GuiHelper.runInEDTAndWaitWithException(() -> realMoveLayer(layer, position)); 255 240 } 256 241 -
trunk/src/org/openstreetmap/josm/gui/layer/MainLayerManager.java
r10600 r10611 228 228 // we force this on to the EDT Thread to make events fire from there. 229 229 // The synchronization lock needs to be held by the EDT. 230 GuiHelper.runInEDTAndWaitWithException(new Runnable() { 231 @Override 232 public void run() { 233 realSetActiveLayer(layer); 234 } 235 }); 230 GuiHelper.runInEDTAndWaitWithException(() -> realSetActiveLayer(layer)); 236 231 } 237 232 -
trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
r10600 r10611 30 30 import java.util.Map; 31 31 import java.util.Set; 32 import java.util.concurrent.Callable;33 32 import java.util.concurrent.CopyOnWriteArrayList; 34 33 import java.util.regex.Pattern; … … 994 993 @Override 995 994 public boolean checkSaveConditions() { 996 if (isDataSetEmpty() && 1 != GuiHelper.runInEDTAndWaitAndReturn(new Callable<Integer>() { 997 @Override 998 public Integer call() { 999 if (GraphicsEnvironment.isHeadless()) { 1000 return 2; 1001 } 1002 ExtendedDialog dialog = new ExtendedDialog( 1003 Main.parent, 1004 tr("Empty document"), 1005 new String[] {tr("Save anyway"), tr("Cancel")} 1006 ); 1007 dialog.setContent(tr("The document contains no data.")); 1008 dialog.setButtonIcons(new String[] {"save", "cancel"}); 1009 return dialog.showDialog().getValue(); 1010 } 995 if (isDataSetEmpty() && 1 != GuiHelper.runInEDTAndWaitAndReturn(() -> { 996 if (GraphicsEnvironment.isHeadless()) { 997 return 2; 998 } 999 ExtendedDialog dialog = new ExtendedDialog( 1000 Main.parent, 1001 tr("Empty document"), 1002 new String[] {tr("Save anyway"), tr("Cancel")} 1003 ); 1004 dialog.setContent(tr("The document contains no data.")); 1005 dialog.setButtonIcons(new String[] {"save", "cancel"}); 1006 return dialog.showDialog().getValue(); 1011 1007 })) { 1012 1008 return false; … … 1014 1010 1015 1011 ConflictCollection conflictsCol = getConflicts(); 1016 if (conflictsCol != null && !conflictsCol.isEmpty() && 1 != GuiHelper.runInEDTAndWaitAndReturn(new Callable<Integer>() { 1017 @Override 1018 public Integer call() { 1019 ExtendedDialog dialog = new ExtendedDialog( 1020 Main.parent, 1021 /* I18N: Display title of the window showing conflicts */ 1022 tr("Conflicts"), 1023 new String[] {tr("Reject Conflicts and Save"), tr("Cancel")} 1024 ); 1025 dialog.setContent( 1026 tr("There are unresolved conflicts. Conflicts will not be saved and handled as if you rejected all. Continue?")); 1027 dialog.setButtonIcons(new String[] {"save", "cancel"}); 1028 return dialog.showDialog().getValue(); 1029 } 1012 if (conflictsCol != null && !conflictsCol.isEmpty() && 1 != GuiHelper.runInEDTAndWaitAndReturn(() -> { 1013 ExtendedDialog dialog = new ExtendedDialog( 1014 Main.parent, 1015 /* I18N: Display title of the window showing conflicts */ 1016 tr("Conflicts"), 1017 new String[] {tr("Reject Conflicts and Save"), tr("Cancel")} 1018 ); 1019 dialog.setContent( 1020 tr("There are unresolved conflicts. Conflicts will not be saved and handled as if you rejected all. Continue?")); 1021 dialog.setButtonIcons(new String[] {"save", "cancel"}); 1022 return dialog.showDialog().getValue(); 1030 1023 })) { 1031 1024 return false; -
trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java
r10184 r10611 73 73 @Override 74 74 protected TMSTileSource getTileSource(ImageryInfo info) { 75 return getTileSourceStatic(info, new Runnable() { 76 @Override 77 public void run() { 78 Main.debug("Attribution loaded, running loadAllErrorTiles"); 79 TMSLayer.this.loadAllErrorTiles(false); 80 } 75 return getTileSourceStatic(info, () -> { 76 Main.debug("Attribution loaded, running loadAllErrorTiles"); 77 TMSLayer.this.loadAllErrorTiles(false); 81 78 }); 82 79 } -
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
r10420 r10611 30 30 import java.util.Collection; 31 31 import java.util.Collections; 32 import java.util.Comparator;33 32 import java.util.Date; 34 33 import java.util.Dictionary; … … 60 59 import javax.swing.event.DocumentEvent; 61 60 import javax.swing.event.DocumentListener; 62 import javax.swing.event.ListSelectionEvent;63 import javax.swing.event.ListSelectionListener;64 61 import javax.swing.filechooser.FileFilter; 65 62 … … 460 457 }); 461 458 imgList.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 462 imgList.getSelectionModel().addListSelectionListener(new ListSelectionListener() { 463 464 @Override 465 public void valueChanged(ListSelectionEvent arg0) { 466 int index = imgList.getSelectedIndex(); 467 Integer orientation = ExifReader.readOrientation(yLayer.data.get(index).getFile()); 468 imgDisp.setImage(yLayer.data.get(index).getFile(), orientation); 469 Date date = yLayer.data.get(index).getExifTime(); 470 if (date != null) { 471 DateFormat df = DateUtils.getDateTimeFormat(DateFormat.SHORT, DateFormat.MEDIUM); 472 lbExifTime.setText(df.format(date)); 473 tfGpsTime.setText(df.format(date)); 474 tfGpsTime.setCaretPosition(tfGpsTime.getText().length()); 475 tfGpsTime.setEnabled(true); 476 tfGpsTime.requestFocus(); 477 } else { 478 lbExifTime.setText(tr("No date")); 479 tfGpsTime.setText(""); 480 tfGpsTime.setEnabled(false); 481 } 459 imgList.getSelectionModel().addListSelectionListener(evt -> { 460 int index = imgList.getSelectedIndex(); 461 Integer orientation = ExifReader.readOrientation(yLayer.data.get(index).getFile()); 462 imgDisp.setImage(yLayer.data.get(index).getFile(), orientation); 463 Date date = yLayer.data.get(index).getExifTime(); 464 if (date != null) { 465 DateFormat df = DateUtils.getDateTimeFormat(DateFormat.SHORT, DateFormat.MEDIUM); 466 lbExifTime.setText(df.format(date)); 467 tfGpsTime.setText(df.format(date)); 468 tfGpsTime.setCaretPosition(tfGpsTime.getText().length()); 469 tfGpsTime.setEnabled(true); 470 tfGpsTime.requestFocus(); 471 } else { 472 lbExifTime.setText(tr("No date")); 473 tfGpsTime.setText(""); 474 tfGpsTime.setEnabled(false); 482 475 } 483 476 }); … … 485 478 486 479 JButton openButton = new JButton(tr("Open another photo")); 487 openButton.addActionListener(new ActionListener() { 488 489 @Override 490 public void actionPerformed(ActionEvent ae) { 491 AbstractFileChooser fc = DiskAccessAction.createAndOpenFileChooser(true, false, null, 492 JpgImporter.FILE_FILTER_WITH_FOLDERS, JFileChooser.FILES_ONLY, "geoimage.lastdirectory"); 493 if (fc == null) 494 return; 495 File sel = fc.getSelectedFile(); 496 497 Integer orientation = ExifReader.readOrientation(sel); 498 imgDisp.setImage(sel, orientation); 499 500 Date date = ExifReader.readTime(sel); 501 if (date != null) { 502 lbExifTime.setText(DateUtils.getDateTimeFormat(DateFormat.SHORT, DateFormat.MEDIUM).format(date)); 503 tfGpsTime.setText(DateUtils.getDateFormat(DateFormat.SHORT).format(date)+' '); 504 tfGpsTime.setEnabled(true); 505 } else { 506 lbExifTime.setText(tr("No date")); 507 tfGpsTime.setText(""); 508 tfGpsTime.setEnabled(false); 509 } 480 openButton.addActionListener(ae -> { 481 AbstractFileChooser fc = DiskAccessAction.createAndOpenFileChooser(true, false, null, 482 JpgImporter.FILE_FILTER_WITH_FOLDERS, JFileChooser.FILES_ONLY, "geoimage.lastdirectory"); 483 if (fc == null) 484 return; 485 File sel = fc.getSelectedFile(); 486 487 Integer orientation = ExifReader.readOrientation(sel); 488 imgDisp.setImage(sel, orientation); 489 490 Date date = ExifReader.readTime(sel); 491 if (date != null) { 492 lbExifTime.setText(DateUtils.getDateTimeFormat(DateFormat.SHORT, DateFormat.MEDIUM).format(date)); 493 tfGpsTime.setText(DateUtils.getDateFormat(DateFormat.SHORT).format(date)+' '); 494 tfGpsTime.setEnabled(true); 495 } else { 496 lbExifTime.setText(tr("No date")); 497 tfGpsTime.setText(""); 498 tfGpsTime.setEnabled(false); 510 499 } 511 500 }); … … 1092 1081 } 1093 1082 1094 Collections.sort(dateImgLst, new Comparator<ImageEntry>() { 1095 @Override 1096 public int compare(ImageEntry arg0, ImageEntry arg1) { 1097 return arg0.getExifTime().compareTo(arg1.getExifTime()); 1098 } 1099 }); 1083 Collections.sort(dateImgLst, (o1, o2) -> o1.getExifTime().compareTo(o2.getExifTime())); 1100 1084 1101 1085 return dateImgLst; -
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
r10604 r10611 66 66 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; 67 67 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 68 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;69 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;70 68 import org.openstreetmap.josm.gui.util.GuiHelper; 71 69 import org.openstreetmap.josm.io.JpgImporter; … … 431 429 432 430 if (selected != null && !data.isEmpty()) { 433 GuiHelper.runInEDTAndWait(new Runnable() { 434 @Override 435 public void run() { 436 for (int i = 0; i < data.size(); i++) { 437 if (selected.equals(data.get(i))) { 438 currentPhoto = i; 439 ImageViewerDialog.showImage(GeoImageLayer.this, data.get(i)); 440 break; 441 } 431 GuiHelper.runInEDTAndWait(() -> { 432 for (int i = 0; i < data.size(); i++) { 433 if (selected.equals(data.get(i))) { 434 currentPhoto = i; 435 ImageViewerDialog.showImage(GeoImageLayer.this, data.get(i)); 436 break; 442 437 } 443 438 } … … 881 876 }; 882 877 883 mapModeListener = new MapModeChangeListener() { 884 @Override 885 public void mapModeChange(MapMode oldMapMode, MapMode newMapMode) { 886 if (newMapMode == null || isSupportedMapMode(newMapMode)) { 887 Main.map.mapView.addMouseListener(mouseAdapter); 888 } else { 889 Main.map.mapView.removeMouseListener(mouseAdapter); 890 } 878 mapModeListener = (oldMapMode, newMapMode) -> { 879 if (newMapMode == null || isSupportedMapMode(newMapMode)) { 880 Main.map.mapView.addMouseListener(mouseAdapter); 881 } else { 882 Main.map.mapView.removeMouseListener(mouseAdapter); 891 883 } 892 884 }; … … 895 887 mapModeListener.mapModeChange(null, Main.map.mapMode); 896 888 897 Main.getLayerManager().addActiveLayerChangeListener(new ActiveLayerChangeListener() { 898 @Override 899 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 900 if (Main.getLayerManager().getActiveLayer() == GeoImageLayer.this) { 901 // only in select mode it is possible to click the images 902 Main.map.selectSelectTool(false); 903 } 889 Main.getLayerManager().addActiveLayerChangeListener(e -> { 890 if (Main.getLayerManager().getActiveLayer() == GeoImageLayer.this) { 891 // only in select mode it is possible to click the images 892 Main.map.selectSelectTool(false); 904 893 } 905 894 }); -
trunk/src/org/openstreetmap/josm/gui/layer/gpx/ChooseTrackVisibilityAction.java
r9880 r10611 10 10 import java.awt.GridBagLayout; 11 11 import java.awt.event.ActionEvent; 12 import java.awt.event.ActionListener;13 12 import java.awt.event.MouseAdapter; 14 13 import java.awt.event.MouseEvent; … … 27 26 import javax.swing.JToggleButton; 28 27 import javax.swing.ListSelectionModel; 29 import javax.swing.event.ListSelectionEvent;30 import javax.swing.event.ListSelectionListener;31 28 import javax.swing.table.DefaultTableModel; 32 29 import javax.swing.table.TableCellRenderer; … … 205 202 /** listens to selection changes in the table and redraws the map */ 206 203 private void listenToSelectionChanges() { 207 table.getSelectionModel().addListSelectionListener(new ListSelectionListener() { 208 @Override 209 public void valueChanged(ListSelectionEvent e) { 210 if (noUpdates || !(e.getSource() instanceof ListSelectionModel)) { 211 return; 212 } 213 updateVisibilityFromTable(); 214 } 204 table.getSelectionModel().addListSelectionListener(e -> { 205 if (noUpdates || !(e.getSource() instanceof ListSelectionModel)) { 206 return; 207 } 208 updateVisibilityFromTable(); 215 209 }); 216 210 } … … 230 224 231 225 dateFilter = new DateFilterPanel(layer, "gpx.traces", false); 232 dateFilter.setFilterAppliedListener(new ActionListener() { 233 @Override public void actionPerformed(ActionEvent e) { 234 noUpdates = true; 235 selectVisibleTracksInTable(); 236 noUpdates = false; 237 Main.map.mapView.preferenceChanged(null); 238 Main.map.repaint(100); 239 } 226 dateFilter.setFilterAppliedListener(e -> { 227 noUpdates = true; 228 selectVisibleTracksInTable(); 229 noUpdates = false; 230 Main.map.mapView.preferenceChanged(null); 231 Main.map.repaint(100); 240 232 }); 241 233 dateFilter.loadFromPrefs(); -
trunk/src/org/openstreetmap/josm/gui/layer/gpx/DateFilterPanel.java
r10378 r10611 6 6 import java.awt.Component; 7 7 import java.awt.GridBagLayout; 8 import java.awt.event.ActionEvent;9 8 import java.awt.event.ActionListener; 10 9 import java.util.Date; … … 14 13 import javax.swing.JPanel; 15 14 import javax.swing.Timer; 16 import javax.swing.event.ChangeEvent;17 15 import javax.swing.event.ChangeListener; 18 16 … … 70 68 } 71 69 72 private final transient ChangeListener changeListener = new ChangeListener() { 73 @Override public void stateChanged(ChangeEvent e) { 74 if (isEnabled()) applyFilterWithDelay(); 75 } 70 private final transient ChangeListener changeListener = e -> { 71 if (isEnabled()) applyFilterWithDelay(); 76 72 }; 77 73 78 private final Timer t = new Timer(200, new ActionListener() { 79 @Override public void actionPerformed(ActionEvent e) { 80 applyFilter(); 81 } 82 }); 74 private final Timer t = new Timer(200, e -> applyFilter()); 83 75 84 76 /** -
trunk/src/org/openstreetmap/josm/gui/layer/gpx/DownloadAlongPanel.java
r9917 r10611 14 14 import javax.swing.JSpinner; 15 15 import javax.swing.SpinnerNumberModel; 16 import javax.swing.event.ChangeEvent;17 16 import javax.swing.event.ChangeListener; 18 17 … … 179 178 }; 180 179 181 addChangeListener(new ChangeListener() { 182 @Override public void stateChanged(ChangeEvent e) { 183 options[0].setEnabled(isDownloadOsmData() || isDownloadGpxData()); 184 } 185 }); 180 addChangeListener(e -> options[0].setEnabled(isDownloadOsmData() || isDownloadGpxData())); 186 181 187 182 int ret = HelpAwareOptionPane.showOptionDialog(Main.parent, this, title, -
trunk/src/org/openstreetmap/josm/gui/layer/gpx/ImportAudioAction.java
r10436 r10611 12 12 import java.util.Collection; 13 13 import java.util.Collections; 14 import java.util.Comparator;15 14 16 15 import javax.swing.AbstractAction; … … 89 88 // long as they don't overlap, that's fine) 90 89 if (sel.length > 1) { 91 Arrays.sort(sel, new Comparator<File>() { 92 @Override 93 public int compare(File a, File b) { 94 return a.lastModified() <= b.lastModified() ? -1 : 1; 95 } 96 }); 90 Arrays.sort(sel, (a, b) -> a.lastModified() <= b.lastModified() ? -1 : 1); 97 91 } 98 92 StringBuilder names = new StringBuilder(); … … 284 278 /* we must have got at least one waypoint now */ 285 279 286 Collections.sort((ArrayList<WayPoint>) waypoints, new Comparator<WayPoint>() { 287 @Override 288 public int compare(WayPoint a, WayPoint b) { 289 return a.time <= b.time ? -1 : 1; 290 } 291 }); 280 Collections.sort((ArrayList<WayPoint>) waypoints, (a, b) -> a.time <= b.time ? -1 : 1); 292 281 293 282 firstTime = -1.0; /* this time of the first waypoint, not first trackpoint */ … … 299 288 AudioMarker am = new AudioMarker(w.getCoor(), w, url, ml, w.time, offset); 300 289 /* 301 * timeFromAudio intended for future use to shift markers of this type on 302 * synchronization 290 * timeFromAudio intended for future use to shift markers of this type on synchronization 303 291 */ 304 292 if (w == wayPointFromTimeStamp) { -
trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ImageMarker.java
r9779 r10611 7 7 import java.awt.Image; 8 8 import java.awt.event.ActionEvent; 9 import java.awt.event.ActionListener;10 9 import java.net.URL; 11 10 import java.util.Collections; … … 55 54 p2.add(scale); 56 55 p.add(p2, BorderLayout.SOUTH); 57 scale.addActionListener(new ActionListener() { 58 @Override 59 public void actionPerformed(ActionEvent ev) { 60 p.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); 61 if (scale.getModel().isSelected()) { 62 ((JLabel) vp.getView()).setIcon(loadScaledImage(imageUrl, Math.max(vp.getWidth(), vp.getHeight()))); 63 } else { 64 ((JLabel) vp.getView()).setIcon(new ImageIcon(imageUrl)); 65 } 66 p.setCursor(Cursor.getDefaultCursor()); 56 scale.addActionListener(ev1 -> { 57 p.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); 58 if (scale.getModel().isSelected()) { 59 ((JLabel) vp.getView()).setIcon(loadScaledImage(imageUrl, Math.max(vp.getWidth(), vp.getHeight()))); 60 } else { 61 ((JLabel) vp.getView()).setIcon(new ImageIcon(imageUrl)); 67 62 } 63 p.setCursor(Cursor.getDefaultCursor()); 68 64 }); 69 65 scale.setSelected(true); -
trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java
r10173 r10611 183 183 // Add one Marker specifying the default behaviour. 184 184 static { 185 Marker.markerProducers.add(new MarkerProducers() { 186 @Override 187 public Collection<Marker> createMarkers(WayPoint wpt, File relativePath, MarkerLayer parentLayer, double time, double offset) { 188 String uri = null; 189 // cheapest way to check whether "link" object exists and is a non-empty collection of GpxLink objects... 190 Collection<GpxLink> links = wpt.<GpxLink>getCollection(GpxConstants.META_LINKS); 191 if (links != null) { 192 for (GpxLink oneLink : links) { 193 uri = oneLink.uri; 194 break; 185 Marker.markerProducers.add((wpt, relativePath, parentLayer, time, offset) -> { 186 String uri = null; 187 // cheapest way to check whether "link" object exists and is a non-empty collection of GpxLink objects... 188 Collection<GpxLink> links = wpt.<GpxLink>getCollection(GpxConstants.META_LINKS); 189 if (links != null) { 190 for (GpxLink oneLink : links) { 191 uri = oneLink.uri; 192 break; 193 } 194 } 195 196 URL url = uriToUrl(uri, relativePath); 197 198 String urlStr = url == null ? "" : url.toString(); 199 String symbolName = wpt.getString("symbol"); 200 if (symbolName == null) { 201 symbolName = wpt.getString(GpxConstants.PT_SYM); 202 } 203 // text marker is returned in every case, see #10208 204 final Marker marker = new Marker(wpt.getCoor(), wpt, symbolName, parentLayer, time, offset); 205 if (url == null) { 206 return Collections.singleton(marker); 207 } else if (urlStr.endsWith(".wav")) { 208 final AudioMarker audioMarker = new AudioMarker(wpt.getCoor(), wpt, url, parentLayer, time, offset); 209 Extensions exts = (Extensions) wpt.get(GpxConstants.META_EXTENSIONS); 210 if (exts != null && exts.containsKey("offset")) { 211 try { 212 audioMarker.syncOffset = Double.parseDouble(exts.get("sync-offset")); 213 } catch (NumberFormatException nfe) { 214 Main.warn(nfe); 195 215 } 196 216 } 197 198 URL url = uriToUrl(uri, relativePath); 199 200 String urlStr = url == null ? "" : url.toString(); 201 String symbolName = wpt.getString("symbol"); 202 if (symbolName == null) { 203 symbolName = wpt.getString(GpxConstants.PT_SYM); 204 } 205 // text marker is returned in every case, see #10208 206 final Marker marker = new Marker(wpt.getCoor(), wpt, symbolName, parentLayer, time, offset); 207 if (url == null) { 208 return Collections.singleton(marker); 209 } else if (urlStr.endsWith(".wav")) { 210 final AudioMarker audioMarker = new AudioMarker(wpt.getCoor(), wpt, url, parentLayer, time, offset); 211 Extensions exts = (Extensions) wpt.get(GpxConstants.META_EXTENSIONS); 212 if (exts != null && exts.containsKey("offset")) { 213 try { 214 audioMarker.syncOffset = Double.parseDouble(exts.get("sync-offset")); 215 } catch (NumberFormatException nfe) { 216 Main.warn(nfe); 217 } 218 } 219 return Arrays.asList(marker, audioMarker); 220 } else if (urlStr.endsWith(".png") || urlStr.endsWith(".jpg") || urlStr.endsWith(".jpeg") || urlStr.endsWith(".gif")) { 221 return Arrays.asList(marker, new ImageMarker(wpt.getCoor(), url, parentLayer, time, offset)); 222 } else { 223 return Arrays.asList(marker, new WebMarker(wpt.getCoor(), url, parentLayer, time, offset)); 224 } 217 return Arrays.asList(marker, audioMarker); 218 } else if (urlStr.endsWith(".png") || urlStr.endsWith(".jpg") || urlStr.endsWith(".jpeg") || urlStr.endsWith(".gif")) { 219 return Arrays.asList(marker, new ImageMarker(wpt.getCoor(), url, parentLayer, time, offset)); 220 } else { 221 return Arrays.asList(marker, new WebMarker(wpt.getCoor(), url, parentLayer, time, offset)); 225 222 } 226 223 }); -
trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
r10458 r10611 20 20 import java.util.Collection; 21 21 import java.util.Collections; 22 import java.util.Comparator;23 22 import java.util.List; 24 23 … … 235 234 if (from instanceof MarkerLayer) { 236 235 data.addAll(((MarkerLayer) from).data); 237 Collections.sort(data, new Comparator<Marker>() { 238 @Override 239 public int compare(Marker o1, Marker o2) { 240 return Double.compare(o1.time, o2.time); 241 } 242 }); 236 Collections.sort(data, (o1, o2) -> Double.compare(o1.time, o2.time)); 243 237 } 244 238 } -
trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/PlayHeadMarker.java
r10212 r10611 7 7 import java.awt.Point; 8 8 import java.awt.Rectangle; 9 import java.awt.event.ActionEvent;10 import java.awt.event.ActionListener;11 9 import java.awt.event.MouseAdapter; 12 10 import java.awt.event.MouseEvent; … … 290 288 if (timer == null) { 291 289 animationInterval = Main.pref.getDouble("marker.audioanimationinterval", 1.0); //milliseconds 292 timer = new Timer((int) (animationInterval * 1000.0), new ActionListener() { 293 @Override 294 public void actionPerformed(ActionEvent e) { 295 timerAction(); 296 } 297 }); 290 timer = new Timer((int) (animationInterval * 1000.0), e -> timerAction()); 298 291 timer.setInitialDelay(0); 299 292 } else {
Note:
See TracChangeset
for help on using the changeset viewer.