001    // License: GPL. For details, see LICENSE file.
002    package org.openstreetmap.josm.gui.bbox;
003    
004    import org.openstreetmap.josm.data.Bounds;
005    
006    /**
007     * A BBoxChooser is a component which provides a UI for choosing a
008     * bounding box.
009     * 
010     */
011    public interface BBoxChooser {
012    
013        /**
014         * A BBoxChooser emits {@link ProperyChangeEvent}s for this property
015         * if the current bounding box changes.
016         */
017        String BBOX_PROP = BBoxChooser.class.getName() + ".bbox";
018    
019        /**
020         * Sets the current bounding box in this BboxChooser. If {@code bbox}
021         * is null the current bbox in this BBoxChooser is removed.
022         * 
023         * @param bbox the bounding box
024         */
025        public void setBoundingBox(Bounds bbox);
026    
027        /**
028         * Replies the currently selected bounding box in this BBoxChooser.
029         * Replies null, if currently there isn't a bbox choosen in this
030         * BBoxChooser.
031         * 
032         * @return the currently selected bounding box
033         */
034        public Bounds getBoundingBox();
035    }