コード例 #1
0
    @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();
      }
    }
コード例 #2
0
 protected void computeBboxAndCenterScale() {
   BoundingXYVisitor v = new BoundingXYVisitor();
   if (currentBounds != null) {
     v.visit(currentBounds);
   } else {
     v.computeBoundingBox(dataSet.getNodes());
   }
   // Main.map.mapView.recalculateCenterScale(v);
 }
コード例 #3
0
  /**
   * 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);
  }
コード例 #4
0
ファイル: OsmDataLayer.java プロジェクト: nackd/gofleet
 @Override
 public void visitBoundingBox(final BoundingXYVisitor v) {
   for (final Node n : data.nodes) if (!n.deleted && !n.incomplete) v.visit(n);
 }
コード例 #5
0
ファイル: GeoImageLayer.java プロジェクト: codesman/josm
 @Override
 public void visitBoundingBox(BoundingXYVisitor v) {
   for (ImageEntry e : data) {
     v.visit(e.getPos());
   }
 }
コード例 #6
0
ファイル: NoteLayer.java プロジェクト: openstreetmap/josm
 @Override
 public void visitBoundingBox(BoundingXYVisitor v) {
   for (Note note : noteData.getNotes()) {
     v.visit(note.getLatLon());
   }
 }