Changeset 316 in josm
- Timestamp:
- 2007-09-03T21:06:29+02:00 (17 years ago)
- Location:
- src/org/openstreetmap/josm
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/data/coor/LatLon.java
r298 r316 4 4 import org.openstreetmap.josm.data.Bounds; 5 5 import org.openstreetmap.josm.data.projection.Projection; 6 import java.text.NumberFormat; 6 7 7 8 /** … … 50 51 return lat() >= b.min.lat() && lat() <= b.max.lat() && lon() > b.min.lon() && lon() < b.max.lon(); 51 52 } 53 54 /** 55 * Returns this lat/lon pair in human-readable format. 56 * 57 * @return String in the format "lat=1.23456°, lon=2.34567°" 58 */ 59 public String toDisplayString() { 60 NumberFormat nf = NumberFormat.getInstance(); 61 nf.setMaximumFractionDigits(5); 62 return "lat=" + nf.format(lat()) + "°, lon=" + nf.format(lon()) + "°"; 63 } 52 64 53 54 65 @Override public String toString() { 66 return "LatLon[lat="+lat()+",lon="+lon()+"]"; 55 67 } 56 68 } -
src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java
r304 r316 44 44 import javax.swing.JTextField; 45 45 import javax.swing.JToggleButton; 46 import javax.swing.JButton; 46 47 import javax.swing.JViewport; 47 48 import javax.swing.border.BevelBorder; … … 161 162 private static final SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); 162 163 private MouseAdapter mouseAdapter; 163 164 private int currentImage; 165 164 166 public static final class GpsTimeIncorrect extends Exception { 165 167 public GpsTimeIncorrect(String message, Throwable cause) { … … 215 217 Rectangle r = new Rectangle(p.x-e.icon.getIconWidth()/2, p.y-e.icon.getIconHeight()/2, e.icon.getIconWidth(), e.icon.getIconHeight()); 216 218 if (r.contains(ev.getPoint())) { 217 showImage(e); 219 // showImage(e); 220 showImage(i-1); 218 221 break; 219 222 } … … 232 235 } 233 236 234 private void showImage(final ImageEntry e) { 237 // private void showImage(final ImageEntry e) { 238 private void showImage(int i) { 239 currentImage = i; 235 240 final JPanel p = new JPanel(new BorderLayout()); 241 final ImageEntry e = data.get(currentImage); 236 242 final JScrollPane scroll = new JScrollPane(new JLabel(loadScaledImage(e.image, 580))); 237 243 final JViewport vp = scroll.getViewport(); … … 239 245 240 246 final JToggleButton scale = new JToggleButton(ImageProvider.get("misc", "rectangle")); 247 final JButton next = new JButton(">>"); 248 final JButton prev = new JButton("<<"); 249 final JButton cent = new JButton("Centre"); 250 241 251 JPanel p2 = new JPanel(); 252 p2.add(prev); 242 253 p2.add(scale); 254 p2.add(cent); 255 p2.add(next); 256 prev.setEnabled(currentImage>0?true:false); 257 next.setEnabled(currentImage<data.size()-1?true:false); 243 258 p.add(p2, BorderLayout.SOUTH); 259 final JOptionPane pane = new JOptionPane(p, JOptionPane.PLAIN_MESSAGE); 260 //final JDialog dlg = pane.createDialog(Main.parent, e.image+" ("+e.coor.lat()+","+e.coor.lon()+")"); 261 final JDialog dlg = pane.createDialog(Main.parent, e.image+" ("+e.coor.toDisplayString()+")"); 244 262 scale.addActionListener(new ActionListener(){ 245 263 public void actionPerformed(ActionEvent ev) { … … 253 271 }); 254 272 scale.setSelected(true); 255 JOptionPane pane = new JOptionPane(p, JOptionPane.PLAIN_MESSAGE); 256 JDialog dlg = pane.createDialog(Main.parent, e.image+" ("+e.coor.lat()+","+e.coor.lon()+")"); 273 prev.addActionListener(new ActionListener(){ 274 public void actionPerformed(ActionEvent ev) { 275 p.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); 276 if(currentImage>0) currentImage--; 277 if(currentImage==0) prev.setEnabled(false); 278 next.setEnabled(true); 279 final ImageEntry e = data.get(currentImage); 280 if (scale.getModel().isSelected()) 281 ((JLabel)vp.getView()).setIcon(loadScaledImage(e.image, Math.max(vp.getWidth(), vp.getHeight()))); 282 else 283 ((JLabel)vp.getView()).setIcon(new ImageIcon(e.image.getPath())); 284 dlg.setTitle(e.image+" ("+e.coor.toDisplayString()+")"); 285 //dlg.setTitle(e.image+" ("+e.coor.lat()+","+e.coor.lon()+")"); 286 p.setCursor(Cursor.getDefaultCursor()); 287 } 288 }); 289 next.addActionListener(new ActionListener(){ 290 public void actionPerformed(ActionEvent ev) { 291 p.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); 292 if(currentImage<data.size()-1) currentImage++; 293 if(currentImage==data.size()-1) next.setEnabled(false); 294 prev.setEnabled(true); 295 final ImageEntry e = data.get(currentImage); 296 if (scale.getModel().isSelected()) 297 ((JLabel)vp.getView()).setIcon(loadScaledImage(e.image, Math.max(vp.getWidth(), vp.getHeight()))); 298 else 299 ((JLabel)vp.getView()).setIcon(new ImageIcon(e.image.getPath())); 300 dlg.setTitle(e.image+" (" + e.coor.toDisplayString() + ")"); 301 p.setCursor(Cursor.getDefaultCursor()); 302 } 303 }); 304 cent.addActionListener(new ActionListener(){ 305 public void actionPerformed(ActionEvent ev) { 306 final ImageEntry e = data.get(currentImage); 307 //Main.map.mapView.repaint(); 308 Main.map.mapView.zoomTo(e.pos, Main.map.mapView.getScale()); 309 } 310 }); 257 311 dlg.setModal(false); 258 312 dlg.setVisible(true);
Note:
See TracChangeset
for help on using the changeset viewer.