001// License: GPL. See LICENSE file for details. 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 * Tile selector. 014 * 015 * Provides a tile coordinate input field. 016 * 017 * @author Frederik Ramm 018 * 019 */ 020public class TileSelection implements DownloadSelection, PropertyChangeListener { 021 private TileSelectionBBoxChooser chooser; 022 private DownloadDialog parent; 023 024 protected final void build() { 025 chooser = new TileSelectionBBoxChooser(); 026 chooser.addPropertyChangeListener(this); 027 } 028 029 /** 030 * Constructs a new {@code TileSelection}. 031 */ 032 public TileSelection() { 033 build(); 034 } 035 036 @Override 037 public void addGui(final DownloadDialog gui) { 038 gui.addDownloadAreaSelector(chooser, tr("Tile Numbers")); 039 parent = gui; 040 } 041 042 @Override 043 public void setDownloadArea(Bounds area) { 044 chooser.setBoundingBox(area); 045 } 046 047 @Override 048 public void propertyChange(PropertyChangeEvent evt) { 049 if (evt.getPropertyName().equals(BBoxChooser.BBOX_PROP)) { 050 Bounds bbox = (Bounds)evt.getNewValue(); 051 parent.boundingBoxChanged(bbox, this); 052 } 053 } 054}