001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.download; 003 004import static org.openstreetmap.josm.tools.I18n.tr; 005 006import java.beans.PropertyChangeEvent; 007import java.beans.PropertyChangeListener; 008 009import org.openstreetmap.josm.data.Bounds; 010import org.openstreetmap.josm.gui.bbox.BBoxChooser; 011import org.openstreetmap.josm.gui.bbox.TileSelectionBBoxChooser; 012 013/** 014 * Tile selector. 015 * 016 * Provides a tile coordinate input field. 017 * 018 * @author Frederik Ramm 019 * 020 */ 021public class TileSelection implements DownloadSelection, PropertyChangeListener { 022 private TileSelectionBBoxChooser chooser; 023 private DownloadDialog parent; 024 025 protected final void build() { 026 chooser = new TileSelectionBBoxChooser(); 027 chooser.addPropertyChangeListener(this); 028 } 029 030 /** 031 * Constructs a new {@code TileSelection}. 032 */ 033 public TileSelection() { 034 build(); 035 } 036 037 @Override 038 public void addGui(final DownloadDialog gui) { 039 if (gui != null) 040 gui.addDownloadAreaSelector(chooser, tr("Tile Numbers")); 041 parent = gui; 042 } 043 044 @Override 045 public void setDownloadArea(Bounds area) { 046 chooser.setBoundingBox(area); 047 } 048 049 @Override 050 public void propertyChange(PropertyChangeEvent evt) { 051 if (evt.getPropertyName().equals(BBoxChooser.BBOX_PROP)) { 052 Bounds bbox = (Bounds) evt.getNewValue(); 053 parent.boundingBoxChanged(bbox, this); 054 } 055 } 056}