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 <frederik@remote.org>
018 *
019 */
020public class TileSelection implements DownloadSelection, PropertyChangeListener {
021    private TileSelectionBBoxChooser chooser;
022    private DownloadDialog parent;
023
024    protected void build() {
025        chooser = new TileSelectionBBoxChooser();
026        chooser.addPropertyChangeListener(this);
027    }
028
029    public TileSelection() {
030        build();
031    }
032
033    @Override
034    public void addGui(final DownloadDialog gui) {
035        gui.addDownloadAreaSelector(chooser, tr("Tile Numbers"));
036        parent = gui;
037    }
038
039    @Override
040    public void setDownloadArea(Bounds area) {
041        chooser.setBoundingBox(area);
042    }
043
044    @Override
045    public void propertyChange(PropertyChangeEvent evt) {
046        if (evt.getPropertyName().equals(BBoxChooser.BBOX_PROP)) {
047            Bounds bbox = (Bounds)evt.getNewValue();
048            parent.boundingBoxChanged(bbox, this);
049        }
050    }
051}