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 gui.addDownloadAreaSelector(chooser, tr("Tile Numbers")); 040 parent = gui; 041 } 042 043 @Override 044 public void setDownloadArea(Bounds area) { 045 chooser.setBoundingBox(area); 046 } 047 048 @Override 049 public void propertyChange(PropertyChangeEvent evt) { 050 if (evt.getPropertyName().equals(BBoxChooser.BBOX_PROP)) { 051 Bounds bbox = (Bounds) evt.getNewValue(); 052 parent.boundingBoxChanged(bbox, this); 053 } 054 } 055}