001    // License: GPL. See LICENSE file for details.
002    package org.openstreetmap.josm.gui.download;
003    
004    import static org.openstreetmap.josm.tools.I18n.tr;
005    
006    import java.beans.PropertyChangeEvent;
007    import java.beans.PropertyChangeListener;
008    
009    import org.openstreetmap.josm.data.Bounds;
010    import org.openstreetmap.josm.gui.bbox.BBoxChooser;
011    import 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     */
020    public 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        public void addGui(final DownloadDialog gui) {
034            gui.addDownloadAreaSelector(chooser, tr("Tile Numbers"));
035            parent = gui;
036        }
037    
038        public void setDownloadArea(Bounds area) {
039            chooser.setBoundingBox(area);
040        }
041    
042        public void propertyChange(PropertyChangeEvent evt) {
043            if (evt.getPropertyName().equals(BBoxChooser.BBOX_PROP)) {
044                Bounds bbox = (Bounds)evt.getNewValue();
045                parent.boundingBoxChanged(bbox, this);
046            }
047        }
048    }