Changeset 2592 in josm for trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
- Timestamp:
- 2009-12-07T21:16:15+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
r2566 r2592 71 71 public long timeoffset = 0; 72 72 73 boolean loadThumbs; 74 73 75 /* 74 76 * Stores info about each image … … 117 119 118 120 protected void rememberError(String message) { 119 121 this.errorMessages.add(message); 120 122 } 121 123 … … 138 140 if (cancelled) { 139 141 return; 140 } 142 } 141 143 progressMonitor.subTask(tr("Read photos...")); 142 144 progressMonitor.setTicksCount(files.size()); … … 173 175 layer = new GeoImageLayer(data); 174 176 files.clear(); 175 Thread thumbsloader = new Thread(new Thumbsloader());176 thumbsloader.setPriority(Thread.MIN_PRIORITY);177 thumbsloader.start();178 177 } 179 178 … … 216 215 } 217 216 } else { 218 217 rememberError(tr("Error while getting files from directory {0}\n", f.getPath())); 219 218 } 220 219 … … 230 229 231 230 protected String formatErrorMessages() { 232 233 234 235 236 237 238 239 240 241 242 243 244 231 StringBuffer sb = new StringBuffer(); 232 sb.append("<html>"); 233 if (errorMessages.size() == 1) { 234 sb.append(errorMessages.iterator().next()); 235 } else { 236 sb.append("<ul>"); 237 for (String msg: errorMessages) { 238 sb.append("<li>").append(msg).append("</li>"); 239 } 240 sb.append("/ul>"); 241 } 242 sb.append("</html>"); 243 return sb.toString(); 245 244 } 246 245 247 246 @Override protected void finish() { 248 249 250 251 252 253 254 255 247 if (!errorMessages.isEmpty()) { 248 JOptionPane.showMessageDialog( 249 Main.parent, 250 formatErrorMessages(), 251 tr("Error"), 252 JOptionPane.ERROR_MESSAGE 253 ); 254 } 256 255 if (layer != null) { 257 256 Main.main.addLayer(layer); … … 276 275 cancelled = true; 277 276 } 278 279 class Thumbsloader implements Runnable { 280 public void run() { 281 System.err.println("Load Thumbnails"); 282 MediaTracker tracker = new MediaTracker(Main.map.mapView); 283 for (int i = 0; i < layer.data.size(); i++) { 284 System.err.println("getImg "+i); 285 Image img = Toolkit.getDefaultToolkit().createImage(layer.data.get(i).file.getPath()); 286 tracker.addImage(img, 0); 287 try { 288 tracker.waitForID(0); 289 } catch (InterruptedException e) { 290 System.err.println("InterruptedException"); 291 return; // FIXME 292 } 293 BufferedImage scaledBI = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); 294 Graphics2D g = scaledBI.createGraphics(); 295 while (!g.drawImage(img, 0, 0, 16, 16, null)) 296 { 297 try { 298 Thread.sleep(10); 299 } catch(InterruptedException ie) {} 300 } 301 g.dispose(); 302 tracker.removeImage(img); 303 layer.data.get(i).thumbnail = scaledBI; 304 if (Main.map != null && Main.map.mapView != null) { 305 Main.map.mapView.repaint(); 306 } 307 } 308 309 // boolean error = tracker.isErrorID(1); 310 // if (img != null && (img.getWidth(null) == 0 || img.getHeight(null) == 0)) { 311 // error = true; 312 // } 313 314 315 } 316 } 317 } 318 277 } 278 319 279 private static boolean addedToggleDialog = false; 320 280 … … 424 384 Point p = mv.getPoint(e.pos); 425 385 if (e.thumbnail != null && e.thumbnail.getWidth(null) > 0 && e.thumbnail.getHeight(null) > 0) { 426 g.drawImage(e.thumbnail, 427 p.x - e.thumbnail.getWidth(null) / 2, 386 g.drawImage(e.thumbnail, 387 p.x - e.thumbnail.getWidth(null) / 2, 428 388 p.y - e.thumbnail.getHeight(null) / 2, null); 429 389 } 430 390 else { 431 icon.paintIcon(mv, g, 432 p.x - icon.getIconWidth() / 2, 391 icon.paintIcon(mv, g, 392 p.x - icon.getIconWidth() / 2, 433 393 p.y - icon.getIconHeight() / 2); 434 394 } … … 537 497 Main.main.map.repaint(); 538 498 } 539 499 540 500 public void checkPreviousNextButtons() { 541 501 System.err.println("check: " + currentPhoto); … … 598 558 ImageViewerDialog.showImage(GeoImageLayer.this, e); 599 559 Main.main.map.repaint(); 600 601 602 560 break; 603 561 } … … 628 586 }); 629 587 } 630 631 588 }
Note:
See TracChangeset
for help on using the changeset viewer.