@Override public void windowDeactivated(WindowEvent e) { int result = checkAndSave(); switch (result) { case NOTHING: break; case CANCEL: if (yLayer != null) { if (yLayer.data != null) { for (ImageEntry ie : yLayer.data) { ie.discardTmp(); } } yLayer.updateBufferAndRepaint(); } break; case AGAIN: actionPerformed(null); break; case DONE: Main.pref.put("geoimage.timezone", formatTimezone(timezone)); Main.pref.put("geoimage.delta", Long.toString(delta * 1000)); Main.pref.put("geoimage.showThumbs", yLayer.useThumbs); yLayer.useThumbs = cbShowThumbs.isSelected(); yLayer.startLoadThumbs(); // Search whether an other layer has yet defined some bounding box. // If none, we'll zoom to the bounding box of the layer with the photos. boolean boundingBoxedLayerFound = false; for (Layer l : Main.map.mapView.getAllLayers()) { if (l != yLayer) { BoundingXYVisitor bbox = new BoundingXYVisitor(); l.visitBoundingBox(bbox); if (bbox.getBounds() != null) { boundingBoxedLayerFound = true; break; } } } if (!boundingBoxedLayerFound) { BoundingXYVisitor bbox = new BoundingXYVisitor(); yLayer.visitBoundingBox(bbox); Main.map.mapView.zoomTo(bbox); } if (yLayer.data != null) { for (ImageEntry ie : yLayer.data) { ie.applyTmp(); } } yLayer.updateBufferAndRepaint(); break; default: throw new IllegalStateException(); } }
protected void computeBboxAndCenterScale() { BoundingXYVisitor v = new BoundingXYVisitor(); if (currentBounds != null) { v.visit(currentBounds); } else { v.computeBoundingBox(dataSet.getNodes()); } // Main.map.mapView.recalculateCenterScale(v); }
/** * Extracts the address information from the given primitive into a newly created {@link Node}. * The new node is added into the JOSM database. * * <p>If the extraction in not applicable, nothing happens. * * @param primitive the {@link Way} from which the address will be extracted */ @Override public void apply(OsmPrimitive primitive) { if (!isApplicable(primitive)) return; Way way = (Way) primitive; BoundingXYVisitor visitor = new BoundingXYVisitor(); way.accept(visitor); Node addrNode = new Node(visitor.getBounds().getCenter()); for (String key : way.keySet()) if (key.startsWith("addr")) addrNode.put(key, way.get(key)); for (String key : addrNode.keySet()) way.remove(key); Main.main.getCurrentDataSet().addPrimitive(addrNode); }
@Override public void visitBoundingBox(final BoundingXYVisitor v) { for (final Node n : data.nodes) if (!n.deleted && !n.incomplete) v.visit(n); }
@Override public void visitBoundingBox(BoundingXYVisitor v) { for (ImageEntry e : data) { v.visit(e.getPos()); } }
@Override public void visitBoundingBox(BoundingXYVisitor v) { for (Note note : noteData.getNotes()) { v.visit(note.getLatLon()); } }