org.openstreetmap.josm.gui.bbox
Class TileSelectionBBoxChooser

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.openstreetmap.josm.gui.bbox.TileSelectionBBoxChooser
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, BBoxChooser

public class TileSelectionBBoxChooser
extends javax.swing.JPanel
implements BBoxChooser

TileSelectionBBoxChooser allows to select a bounding box (i.e. for downloading) based on OSM tile numbers. TileSelectionBBoxChooser can be embedded as component in a Swing container. Example:

    JFrame f = new JFrame(....);
    f.getContentPane().setLayout(new BorderLayout()));
    TileSelectionBBoxChooser chooser = new TileSelectionBBoxChooser();
    f.add(chooser, BorderLayout.CENTER);
    chooser.addPropertyChangeListener(new PropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent evt) {
            // listen for BBOX events
            if (evt.getPropertyName().equals(BBoxChooser.BBOX_PROP)) {
               System.out.println("new bbox based on OSM tiles selected: " + (Bounds)evt.getNewValue());
            }
        }
    });

    // init the chooser with a bounding box
    chooser.setBoundingBox(....);

    f.setVisible(true);
 

See Also:
Serialized Form

Nested Class Summary
private static class TileSelectionBBoxChooser.TileAddressInputPanel
          A panel for entering the address of a single OSM tile at a given zoom level.
private static class TileSelectionBBoxChooser.TileAddressValidator
          Validates a tile address
private static class TileSelectionBBoxChooser.TileBounds
          Represents a rectangular area of tiles at a given zoom level.
(package private)  class TileSelectionBBoxChooser.TileBoundsChangeListener
          Listens to changes in the selected tile bounds, refreshes the map view and emits property change events for BBoxChooser.BBOX_PROP
private static class TileSelectionBBoxChooser.TileBoundsMapView
          The map view used in this bounding box chooser
private static class TileSelectionBBoxChooser.TileCoordinateValidator
          Validates the x- or y-coordinate of a tile at a given zoom level.
private static class TileSelectionBBoxChooser.TileGridInputPanel
          A panel for describing a rectangular area of OSM tiles at a given zoom level.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  Bounds bbox
          the current bounding box
private  TileSelectionBBoxChooser.TileBoundsMapView mapViewer
          the map viewer showing the selected bounding box
private  TileSelectionBBoxChooser.TileAddressInputPanel pnlTileAddress
          a panel for entering a bounding box given by the address of an individual OSM tile at a given zoom level
private  TileSelectionBBoxChooser.TileGridInputPanel pnlTileGrid
          a panel for entering a bounding box given by a tile grid and a zoom level
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface org.openstreetmap.josm.gui.bbox.BBoxChooser
BBOX_PROP
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
TileSelectionBBoxChooser()
           
 
Method Summary
protected  void build()
          builds the UI
protected  Bounds convertTileBoundsToBoundingBox(TileSelectionBBoxChooser.TileBounds tb)
          Computes the bounding box given a tile grid.
 Bounds getBoundingBox()
          Replies the current bounding box.
protected  LatLon getNorthWestLatLonOfTile(java.awt.Point tile, int zoom)
          Replies lat/lon of the north/west-corner of a tile at a specific zoom level
protected  void refreshMapView()
           
 void setBoundingBox(Bounds bbox)
          Sets the current bounding box.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

bbox

private Bounds bbox
the current bounding box


mapViewer

private TileSelectionBBoxChooser.TileBoundsMapView mapViewer
the map viewer showing the selected bounding box


pnlTileGrid

private TileSelectionBBoxChooser.TileGridInputPanel pnlTileGrid
a panel for entering a bounding box given by a tile grid and a zoom level


pnlTileAddress

private TileSelectionBBoxChooser.TileAddressInputPanel pnlTileAddress
a panel for entering a bounding box given by the address of an individual OSM tile at a given zoom level

Constructor Detail

TileSelectionBBoxChooser

public TileSelectionBBoxChooser()
Method Detail

build

protected void build()
builds the UI


getBoundingBox

public Bounds getBoundingBox()
Replies the current bounding box. null, if no valid bounding box is currently selected.

Specified by:
getBoundingBox in interface BBoxChooser
Returns:
the currently selected bounding box

setBoundingBox

public void setBoundingBox(Bounds bbox)
Sets the current bounding box.

Specified by:
setBoundingBox in interface BBoxChooser
Parameters:
bbox - the bounding box. null, if this widget isn't initialized with a bounding box

refreshMapView

protected void refreshMapView()

convertTileBoundsToBoundingBox

protected Bounds convertTileBoundsToBoundingBox(TileSelectionBBoxChooser.TileBounds tb)
Computes the bounding box given a tile grid.

Parameters:
tb - the description of the tile grid
Returns:
the bounding box

getNorthWestLatLonOfTile

protected LatLon getNorthWestLatLonOfTile(java.awt.Point tile,
                                          int zoom)
Replies lat/lon of the north/west-corner of a tile at a specific zoom level

Parameters:
tile - the tile address (x,y)
zoom - the zoom level
Returns:
lat/lon of the north/west-corner of a tile at a specific zoom level


JOSM