Groovy Documentation

org.jdesktop.swingx
[Java] Class JXMapViewer

java.lang.Object
  java.awt.Component
      java.awt.Container
          javax.swing.JComponent
              javax.swing.JPanel
                  org.jdesktop.swingx.JXPanel
                      org.jdesktop.swingx.JXMapViewer
All Implemented Interfaces:
DesignMode

public class JXMapViewer
extends org.jdesktop.swingx.JXPanel

A tile oriented map component that can easily be used with tile sources on the web like Google and Yahoo maps, satellite data such as NASA imagery, and also with file based sources like pre-processed NASA images. A known map provider can be used with the SLMapServerInfo, which will connect to a 2km resolution version of NASA's Blue Marble Next Generation imagery.

Authors:
Joshua.Marinacci@sun.com
See Also:
SLMapServerInfo
SLMapServerInfo


Nested Class Summary
private class JXMapViewer.PanKeyListener

private class JXMapViewer.PanMouseInputListener

private class JXMapViewer.TileLoadListener

private class JXMapViewer.ZoomMouseWheelListener

 
Field Summary
private GeoPosition addressLocation

The position in latitude/longitude of the "address" being mapped.

private Point2D center

The position, in map coordinates of the center point.

private boolean designTime

private boolean drawTileBorders

Indicates whether or not to draw the borders between tiles.

private TileFactory factory

Factory used by this component to grab the tiles necessary for painting the map.

private boolean horizontalWrapped

private boolean isNegativeYAllowed

private Image loadingImage

private org.jdesktop.swingx.painter.Painter overlay

The overlay to delegate to for painting the "foreground" of the map component.

private boolean panEnabled

Specifies whether panning is enabled.

private boolean recenterOnClickEnabled

Indicates whether the component should recenter the map when the "middle" mouse button is pressed

private boolean restrictOutsidePanning

private JXMapViewer.TileLoadListener tileLoadListener

private int zoom

The zoom level.

private boolean zoomEnabled

Specifies whether zooming is enabled (the mouse wheel, for example, zooms)

private float zoomScale

 
Fields inherited from class org.jdesktop.swingx.JXPanel
WHEN_FOCUSED, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_IN_FOCUSED_WINDOW, UNDEFINED_CONDITION, TOOL_TIP_TEXT_KEY, TOP_ALIGNMENT, CENTER_ALIGNMENT, BOTTOM_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, WIDTH, HEIGHT, PROPERTIES, SOMEBITS, FRAMEBITS, ALLBITS, ERROR, ABORT
 
Fields inherited from class JPanel
WHEN_FOCUSED, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_IN_FOCUSED_WINDOW, UNDEFINED_CONDITION, TOOL_TIP_TEXT_KEY, TOP_ALIGNMENT, CENTER_ALIGNMENT, BOTTOM_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, WIDTH, HEIGHT, PROPERTIES, SOMEBITS, FRAMEBITS, ALLBITS, ERROR, ABORT
 
Constructor Summary
JXMapViewer()

Create a new JXMapViewer.

 
Method Summary
private Rectangle calculateViewportBounds(Point2D center)

void calculateZoomFrom(Set positions)

Calculates a zoom level so that all points in the specified set will be visible on screen.

Point2D convertGeoPositionToPoint(GeoPosition pos)

GeoPosition convertPointToGeoPosition(Point2D pt)

private void doPaintComponent(Graphics g)

protected void drawMapTiles(Graphics g, int zoom, Rectangle viewportBounds)

private void drawOverlays(int zoom, Graphics g, Rectangle viewportBounds)

Sets the map overlay.

private Rectangle2D generateBoundingRect(Set positions, int zoom)

GeoPosition getAddressLocation()

Point2D getCenter()

GeoPosition getCenterPosition()

Set the current tile factory

Image getLoadingImage()

Gets the current pixel center of the map.

org.jdesktop.swingx.painter.Painter getOverlayPainter()

TileFactory getTileFactory()

A property for an image which will be display when an image is still loading.

Rectangle getViewportBounds()

Sets whether the map should recenter itself on mouse clicks (middle mouse clicks?)

int getZoom()

Gets the current zoom level

boolean isDesignTime()

boolean isDrawTileBorders()

A property indicating if the map should be pannable by the user using the mouse.

boolean isHorizontalWrapped()

boolean isPanEnabled()

A property indicating if the map should be zoomable by the user using the mouse wheel.

boolean isRecenterOnClickEnabled()

boolean isRestrictOutsidePanning()

private boolean isTileOnMap(int x, int y, Dimension mapSize)

boolean isZoomEnabled()

A property indicating the center position of the map

private static void p(String s)

void recenterToAddressLocation()

Set if the tile borders should be drawn.

void setAddressLocation(GeoPosition addressLocation)

void setCenter(Point2D center)

void setCenterPosition(GeoPosition geoPosition)

Get the current factory

void setDesignTime(boolean b)

Indicate that the component is being used at design time, such as in a visual editor like NetBeans' Matisse

void setDrawTileBorders(boolean drawTileBorders)

A property indicating if the map should be pannable by the user using the mouse.

void setHorizontalWrapped(boolean horizontalWrapped)

void setLoadingImage(Image loadingImage)

Sets the new center of the map in pixel coordinates.

void setOverlayPainter(org.jdesktop.swingx.painter.Painter overlay)

Gets the current map overlay

void setPanEnabled(boolean panEnabled)

A property indicating if the map should be zoomable by the user using the mouse wheel.

void setRecenterOnClickEnabled(boolean b)

Indicates if the map should recenter itself on mouse clicks.

void setRestrictOutsidePanning(boolean restrictOutsidePanning)

void setTileFactory(TileFactory factory)

A property for an image which will be display when an image is still loading.

void setZoom(int zoom)

void setZoomEnabled(boolean zoomEnabled)

 
Methods inherited from class org.jdesktop.swingx.JXPanel
org.jdesktop.swingx.JXPanel#paint(java.awt.Graphics), org.jdesktop.swingx.JXPanel#setOpaque(boolean), org.jdesktop.swingx.JXPanel#setBackgroundPainter(org.jdesktop.swingx.painter.Painter), org.jdesktop.swingx.JXPanel#getAlpha(), org.jdesktop.swingx.JXPanel#setAlpha(float), org.jdesktop.swingx.JXPanel#getEffectiveAlpha(), org.jdesktop.swingx.JXPanel#isInheritAlpha(), org.jdesktop.swingx.JXPanel#setInheritAlpha(boolean), org.jdesktop.swingx.JXPanel#setScrollableWidthHint(org.jdesktop.swingx.ScrollableSizeHint), org.jdesktop.swingx.JXPanel#setScrollableHeightHint(org.jdesktop.swingx.ScrollableSizeHint), org.jdesktop.swingx.JXPanel#getScrollableTracksViewportHeight(), org.jdesktop.swingx.JXPanel#getScrollableTracksViewportWidth(), org.jdesktop.swingx.JXPanel#getPreferredScrollableViewportSize(), org.jdesktop.swingx.JXPanel#getScrollableBlockIncrement(java.awt.Rectangle, int, int), org.jdesktop.swingx.JXPanel#getScrollableUnitIncrement(java.awt.Rectangle, int, int), org.jdesktop.swingx.JXPanel#setScrollableTracksViewportHeight(boolean), org.jdesktop.swingx.JXPanel#setScrollableTracksViewportWidth(boolean), org.jdesktop.swingx.JXPanel#getBackgroundPainter(), org.jdesktop.swingx.JXPanel#isPaintBorderInsets(), org.jdesktop.swingx.JXPanel#setPaintBorderInsets(boolean), org.jdesktop.swingx.JXPanel#getAccessibleContext(), org.jdesktop.swingx.JXPanel#getUI(), org.jdesktop.swingx.JXPanel#setUI(javax.swing.plaf.PanelUI), org.jdesktop.swingx.JXPanel#updateUI(), org.jdesktop.swingx.JXPanel#getUIClassID(), org.jdesktop.swingx.JXPanel#contains(int, int), org.jdesktop.swingx.JXPanel#getLocation(java.awt.Point), org.jdesktop.swingx.JXPanel#print(java.awt.Graphics), org.jdesktop.swingx.JXPanel#getSize(java.awt.Dimension), org.jdesktop.swingx.JXPanel#isOpaque(), org.jdesktop.swingx.JXPanel#enable(), org.jdesktop.swingx.JXPanel#disable(), org.jdesktop.swingx.JXPanel#update(java.awt.Graphics), org.jdesktop.swingx.JXPanel#getY(), org.jdesktop.swingx.JXPanel#getX(), org.jdesktop.swingx.JXPanel#firePropertyChange(java.lang.String, boolean, boolean), org.jdesktop.swingx.JXPanel#firePropertyChange(java.lang.String, int, int), org.jdesktop.swingx.JXPanel#firePropertyChange(java.lang.String, char, char), org.jdesktop.swingx.JXPanel#getBounds(java.awt.Rectangle), org.jdesktop.swingx.JXPanel#getInsets(java.awt.Insets), org.jdesktop.swingx.JXPanel#getInsets(), org.jdesktop.swingx.JXPanel#setFont(java.awt.Font), org.jdesktop.swingx.JXPanel#getPreferredSize(), org.jdesktop.swingx.JXPanel#getMinimumSize(), org.jdesktop.swingx.JXPanel#getMaximumSize(), org.jdesktop.swingx.JXPanel#getAlignmentX(), org.jdesktop.swingx.JXPanel#getAlignmentY(), org.jdesktop.swingx.JXPanel#getListeners(java.lang.Class), org.jdesktop.swingx.JXPanel#addNotify(), org.jdesktop.swingx.JXPanel#removeNotify(), org.jdesktop.swingx.JXPanel#setFocusTraversalKeys(int, java.util.Set), org.jdesktop.swingx.JXPanel#requestFocus(boolean), org.jdesktop.swingx.JXPanel#requestFocus(), org.jdesktop.swingx.JXPanel#setEnabled(boolean), org.jdesktop.swingx.JXPanel#isDoubleBuffered(), org.jdesktop.swingx.JXPanel#setVisible(boolean), org.jdesktop.swingx.JXPanel#setForeground(java.awt.Color), org.jdesktop.swingx.JXPanel#setBackground(java.awt.Color), org.jdesktop.swingx.JXPanel#reshape(int, int, int, int), org.jdesktop.swingx.JXPanel#getWidth(), org.jdesktop.swingx.JXPanel#getHeight(), org.jdesktop.swingx.JXPanel#setPreferredSize(java.awt.Dimension), org.jdesktop.swingx.JXPanel#setMinimumSize(java.awt.Dimension), org.jdesktop.swingx.JXPanel#setMaximumSize(java.awt.Dimension), org.jdesktop.swingx.JXPanel#getBaseline(int, int), org.jdesktop.swingx.JXPanel#getBaselineResizeBehavior(), org.jdesktop.swingx.JXPanel#getGraphics(), org.jdesktop.swingx.JXPanel#getFontMetrics(java.awt.Font), org.jdesktop.swingx.JXPanel#repaint(long, int, int, int, int), org.jdesktop.swingx.JXPanel#repaint(java.awt.Rectangle), org.jdesktop.swingx.JXPanel#printAll(java.awt.Graphics), org.jdesktop.swingx.JXPanel#requestFocusInWindow(), org.jdesktop.swingx.JXPanel#getToolTipText(), org.jdesktop.swingx.JXPanel#getToolTipText(java.awt.event.MouseEvent), org.jdesktop.swingx.JXPanel#revalidate(), org.jdesktop.swingx.JXPanel#putClientProperty(java.lang.Object, java.lang.Object), org.jdesktop.swingx.JXPanel#setInheritsPopupMenu(boolean), org.jdesktop.swingx.JXPanel#getInheritsPopupMenu(), org.jdesktop.swingx.JXPanel#setComponentPopupMenu(javax.swing.JPopupMenu), org.jdesktop.swingx.JXPanel#getComponentPopupMenu(), org.jdesktop.swingx.JXPanel#isPaintingTile(), org.jdesktop.swingx.JXPanel#isPaintingForPrint(), org.jdesktop.swingx.JXPanel#isManagingFocus(), org.jdesktop.swingx.JXPanel#setNextFocusableComponent(java.awt.Component), org.jdesktop.swingx.JXPanel#getNextFocusableComponent(), org.jdesktop.swingx.JXPanel#setRequestFocusEnabled(boolean), org.jdesktop.swingx.JXPanel#isRequestFocusEnabled(), org.jdesktop.swingx.JXPanel#grabFocus(), org.jdesktop.swingx.JXPanel#setVerifyInputWhenFocusTarget(boolean), org.jdesktop.swingx.JXPanel#getVerifyInputWhenFocusTarget(), org.jdesktop.swingx.JXPanel#setBorder(javax.swing.border.Border), org.jdesktop.swingx.JXPanel#getBorder(), org.jdesktop.swingx.JXPanel#setAlignmentY(float), org.jdesktop.swingx.JXPanel#setAlignmentX(float), org.jdesktop.swingx.JXPanel#setInputVerifier(javax.swing.InputVerifier), org.jdesktop.swingx.JXPanel#getInputVerifier(), org.jdesktop.swingx.JXPanel#setDebugGraphicsOptions(int), org.jdesktop.swingx.JXPanel#getDebugGraphicsOptions(), org.jdesktop.swingx.JXPanel#registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int), org.jdesktop.swingx.JXPanel#registerKeyboardAction(java.awt.event.ActionListener, javax.swing.KeyStroke, int), org.jdesktop.swingx.JXPanel#unregisterKeyboardAction(javax.swing.KeyStroke), org.jdesktop.swingx.JXPanel#getRegisteredKeyStrokes(), org.jdesktop.swingx.JXPanel#getConditionForKeyStroke(javax.swing.KeyStroke), org.jdesktop.swingx.JXPanel#getActionForKeyStroke(javax.swing.KeyStroke), org.jdesktop.swingx.JXPanel#resetKeyboardActions(), org.jdesktop.swingx.JXPanel#setInputMap(int, javax.swing.InputMap), org.jdesktop.swingx.JXPanel#getInputMap(), org.jdesktop.swingx.JXPanel#getInputMap(int), org.jdesktop.swingx.JXPanel#setActionMap(javax.swing.ActionMap), org.jdesktop.swingx.JXPanel#getActionMap(), org.jdesktop.swingx.JXPanel#requestDefaultFocus(), org.jdesktop.swingx.JXPanel#getDefaultLocale(), org.jdesktop.swingx.JXPanel#setDefaultLocale(java.util.Locale), org.jdesktop.swingx.JXPanel#setToolTipText(java.lang.String), org.jdesktop.swingx.JXPanel#getToolTipLocation(java.awt.event.MouseEvent), org.jdesktop.swingx.JXPanel#getPopupLocation(java.awt.event.MouseEvent), org.jdesktop.swingx.JXPanel#createToolTip(), org.jdesktop.swingx.JXPanel#scrollRectToVisible(java.awt.Rectangle), org.jdesktop.swingx.JXPanel#setAutoscrolls(boolean), org.jdesktop.swingx.JXPanel#getAutoscrolls(), org.jdesktop.swingx.JXPanel#setTransferHandler(javax.swing.TransferHandler), org.jdesktop.swingx.JXPanel#getTransferHandler(), org.jdesktop.swingx.JXPanel#getClientProperty(java.lang.Object), org.jdesktop.swingx.JXPanel#isLightweightComponent(java.awt.Component), org.jdesktop.swingx.JXPanel#computeVisibleRect(java.awt.Rectangle), org.jdesktop.swingx.JXPanel#getVisibleRect(), org.jdesktop.swingx.JXPanel#addVetoableChangeListener(java.beans.VetoableChangeListener), org.jdesktop.swingx.JXPanel#removeVetoableChangeListener(java.beans.VetoableChangeListener), org.jdesktop.swingx.JXPanel#getVetoableChangeListeners(), org.jdesktop.swingx.JXPanel#getTopLevelAncestor(), org.jdesktop.swingx.JXPanel#addAncestorListener(javax.swing.event.AncestorListener), org.jdesktop.swingx.JXPanel#removeAncestorListener(javax.swing.event.AncestorListener), org.jdesktop.swingx.JXPanel#getAncestorListeners(), org.jdesktop.swingx.JXPanel#isValidateRoot(), org.jdesktop.swingx.JXPanel#isOptimizedDrawingEnabled(), org.jdesktop.swingx.JXPanel#paintImmediately(int, int, int, int), org.jdesktop.swingx.JXPanel#paintImmediately(java.awt.Rectangle), org.jdesktop.swingx.JXPanel#setDoubleBuffered(boolean), org.jdesktop.swingx.JXPanel#getRootPane(), org.jdesktop.swingx.JXPanel#add(java.awt.Component, java.lang.Object, int), org.jdesktop.swingx.JXPanel#add(java.awt.Component), org.jdesktop.swingx.JXPanel#add(java.lang.String, java.awt.Component), org.jdesktop.swingx.JXPanel#add(java.awt.Component, int), org.jdesktop.swingx.JXPanel#add(java.awt.Component, java.lang.Object), org.jdesktop.swingx.JXPanel#remove(java.awt.Component), org.jdesktop.swingx.JXPanel#remove(int), org.jdesktop.swingx.JXPanel#list(java.io.PrintStream, int), org.jdesktop.swingx.JXPanel#list(java.io.PrintWriter, int), org.jdesktop.swingx.JXPanel#removeAll(), org.jdesktop.swingx.JXPanel#getComponent(int), org.jdesktop.swingx.JXPanel#invalidate(), org.jdesktop.swingx.JXPanel#validate(), org.jdesktop.swingx.JXPanel#addPropertyChangeListener(java.beans.PropertyChangeListener), org.jdesktop.swingx.JXPanel#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener), org.jdesktop.swingx.JXPanel#getComponentCount(), org.jdesktop.swingx.JXPanel#getComponents(), org.jdesktop.swingx.JXPanel#getComponentAt(int, int), org.jdesktop.swingx.JXPanel#getComponentAt(java.awt.Point), org.jdesktop.swingx.JXPanel#countComponents(), org.jdesktop.swingx.JXPanel#insets(), org.jdesktop.swingx.JXPanel#setComponentZOrder(java.awt.Component, int), org.jdesktop.swingx.JXPanel#getComponentZOrder(java.awt.Component), org.jdesktop.swingx.JXPanel#getLayout(), org.jdesktop.swingx.JXPanel#setLayout(java.awt.LayoutManager), org.jdesktop.swingx.JXPanel#doLayout(), org.jdesktop.swingx.JXPanel#layout(), org.jdesktop.swingx.JXPanel#preferredSize(), org.jdesktop.swingx.JXPanel#minimumSize(), org.jdesktop.swingx.JXPanel#paintComponents(java.awt.Graphics), org.jdesktop.swingx.JXPanel#printComponents(java.awt.Graphics), org.jdesktop.swingx.JXPanel#addContainerListener(java.awt.event.ContainerListener), org.jdesktop.swingx.JXPanel#removeContainerListener(java.awt.event.ContainerListener), org.jdesktop.swingx.JXPanel#getContainerListeners(), org.jdesktop.swingx.JXPanel#deliverEvent(java.awt.Event), org.jdesktop.swingx.JXPanel#locate(int, int), org.jdesktop.swingx.JXPanel#getMousePosition(boolean), org.jdesktop.swingx.JXPanel#findComponentAt(java.awt.Point), org.jdesktop.swingx.JXPanel#findComponentAt(int, int), org.jdesktop.swingx.JXPanel#isAncestorOf(java.awt.Component), org.jdesktop.swingx.JXPanel#getFocusTraversalKeys(int), org.jdesktop.swingx.JXPanel#areFocusTraversalKeysSet(int), org.jdesktop.swingx.JXPanel#isFocusCycleRoot(java.awt.Container), org.jdesktop.swingx.JXPanel#isFocusCycleRoot(), org.jdesktop.swingx.JXPanel#transferFocusBackward(), org.jdesktop.swingx.JXPanel#setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), org.jdesktop.swingx.JXPanel#getFocusTraversalPolicy(), org.jdesktop.swingx.JXPanel#isFocusTraversalPolicySet(), org.jdesktop.swingx.JXPanel#setFocusCycleRoot(boolean), org.jdesktop.swingx.JXPanel#setFocusTraversalPolicyProvider(boolean), org.jdesktop.swingx.JXPanel#isFocusTraversalPolicyProvider(), org.jdesktop.swingx.JXPanel#transferFocusDownCycle(), org.jdesktop.swingx.JXPanel#applyComponentOrientation(java.awt.ComponentOrientation), org.jdesktop.swingx.JXPanel#add(java.awt.PopupMenu), org.jdesktop.swingx.JXPanel#toString(), org.jdesktop.swingx.JXPanel#getName(), org.jdesktop.swingx.JXPanel#contains(java.awt.Point), org.jdesktop.swingx.JXPanel#size(), org.jdesktop.swingx.JXPanel#getParent(), org.jdesktop.swingx.JXPanel#getLocation(), org.jdesktop.swingx.JXPanel#remove(java.awt.MenuComponent), org.jdesktop.swingx.JXPanel#setName(java.lang.String), org.jdesktop.swingx.JXPanel#list(java.io.PrintWriter), org.jdesktop.swingx.JXPanel#list(java.io.PrintStream), org.jdesktop.swingx.JXPanel#list(), org.jdesktop.swingx.JXPanel#getSize(), org.jdesktop.swingx.JXPanel#resize(java.awt.Dimension), org.jdesktop.swingx.JXPanel#resize(int, int), org.jdesktop.swingx.JXPanel#setSize(int, int), org.jdesktop.swingx.JXPanel#setSize(java.awt.Dimension), org.jdesktop.swingx.JXPanel#enable(boolean), org.jdesktop.swingx.JXPanel#location(), org.jdesktop.swingx.JXPanel#isValid(), org.jdesktop.swingx.JXPanel#setLocale(java.util.Locale), org.jdesktop.swingx.JXPanel#action(java.awt.Event, java.lang.Object), org.jdesktop.swingx.JXPanel#removePropertyChangeListener(java.beans.PropertyChangeListener), org.jdesktop.swingx.JXPanel#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener), org.jdesktop.swingx.JXPanel#firePropertyChange(java.lang.String, short, short), org.jdesktop.swingx.JXPanel#firePropertyChange(java.lang.String, byte, byte), org.jdesktop.swingx.JXPanel#firePropertyChange(java.lang.String, float, float), org.jdesktop.swingx.JXPanel#firePropertyChange(java.lang.String, double, double), org.jdesktop.swingx.JXPanel#firePropertyChange(java.lang.String, long, long), org.jdesktop.swingx.JXPanel#getPropertyChangeListeners(java.lang.String), org.jdesktop.swingx.JXPanel#getPropertyChangeListeners(), org.jdesktop.swingx.JXPanel#getBounds(), org.jdesktop.swingx.JXPanel#getLocale(), org.jdesktop.swingx.JXPanel#getMousePosition(), org.jdesktop.swingx.JXPanel#getGraphicsConfiguration(), org.jdesktop.swingx.JXPanel#dispatchEvent(java.awt.AWTEvent), org.jdesktop.swingx.JXPanel#isVisible(), org.jdesktop.swingx.JXPanel#isEnabled(), org.jdesktop.swingx.JXPanel#isDisplayable(), org.jdesktop.swingx.JXPanel#isFocusable(), org.jdesktop.swingx.JXPanel#getTreeLock(), org.jdesktop.swingx.JXPanel#isLightweight(), org.jdesktop.swingx.JXPanel#getPeer(), org.jdesktop.swingx.JXPanel#isFocusOwner(), org.jdesktop.swingx.JXPanel#transferFocus(), org.jdesktop.swingx.JXPanel#getFont(), org.jdesktop.swingx.JXPanel#isPreferredSizeSet(), org.jdesktop.swingx.JXPanel#isMinimumSizeSet(), org.jdesktop.swingx.JXPanel#isMaximumSizeSet(), org.jdesktop.swingx.JXPanel#isShowing(), org.jdesktop.swingx.JXPanel#handleEvent(java.awt.Event), org.jdesktop.swingx.JXPanel#postEvent(java.awt.Event), org.jdesktop.swingx.JXPanel#getFocusCycleRootAncestor(), org.jdesktop.swingx.JXPanel#setDropTarget(java.awt.dnd.DropTarget), org.jdesktop.swingx.JXPanel#getDropTarget(), org.jdesktop.swingx.JXPanel#getToolkit(), org.jdesktop.swingx.JXPanel#enableInputMethods(boolean), org.jdesktop.swingx.JXPanel#show(), org.jdesktop.swingx.JXPanel#show(boolean), org.jdesktop.swingx.JXPanel#hide(), org.jdesktop.swingx.JXPanel#getForeground(), org.jdesktop.swingx.JXPanel#isForegroundSet(), org.jdesktop.swingx.JXPanel#getBackground(), org.jdesktop.swingx.JXPanel#isBackgroundSet(), org.jdesktop.swingx.JXPanel#isFontSet(), org.jdesktop.swingx.JXPanel#getColorModel(), org.jdesktop.swingx.JXPanel#getLocationOnScreen(), org.jdesktop.swingx.JXPanel#setLocation(int, int), org.jdesktop.swingx.JXPanel#setLocation(java.awt.Point), org.jdesktop.swingx.JXPanel#move(int, int), org.jdesktop.swingx.JXPanel#bounds(), org.jdesktop.swingx.JXPanel#setBounds(java.awt.Rectangle), org.jdesktop.swingx.JXPanel#setBounds(int, int, int, int), org.jdesktop.swingx.JXPanel#setCursor(java.awt.Cursor), org.jdesktop.swingx.JXPanel#getCursor(), org.jdesktop.swingx.JXPanel#isCursorSet(), org.jdesktop.swingx.JXPanel#paintAll(java.awt.Graphics), org.jdesktop.swingx.JXPanel#repaint(), org.jdesktop.swingx.JXPanel#repaint(long), org.jdesktop.swingx.JXPanel#repaint(int, int, int, int), org.jdesktop.swingx.JXPanel#imageUpdate(java.awt.Image, int, int, int, int, int), org.jdesktop.swingx.JXPanel#createImage(java.awt.image.ImageProducer), org.jdesktop.swingx.JXPanel#createImage(int, int), org.jdesktop.swingx.JXPanel#createVolatileImage(int, int, java.awt.ImageCapabilities), org.jdesktop.swingx.JXPanel#createVolatileImage(int, int), org.jdesktop.swingx.JXPanel#prepareImage(java.awt.Image, java.awt.image.ImageObserver), org.jdesktop.swingx.JXPanel#prepareImage(java.awt.Image, int, int, java.awt.image.ImageObserver), org.jdesktop.swingx.JXPanel#checkImage(java.awt.Image, java.awt.image.ImageObserver), org.jdesktop.swingx.JXPanel#checkImage(java.awt.Image, int, int, java.awt.image.ImageObserver), org.jdesktop.swingx.JXPanel#setIgnoreRepaint(boolean), org.jdesktop.swingx.JXPanel#getIgnoreRepaint(), org.jdesktop.swingx.JXPanel#inside(int, int), org.jdesktop.swingx.JXPanel#addComponentListener(java.awt.event.ComponentListener), org.jdesktop.swingx.JXPanel#removeComponentListener(java.awt.event.ComponentListener), org.jdesktop.swingx.JXPanel#getComponentListeners(), org.jdesktop.swingx.JXPanel#addFocusListener(java.awt.event.FocusListener), org.jdesktop.swingx.JXPanel#removeFocusListener(java.awt.event.FocusListener), org.jdesktop.swingx.JXPanel#getFocusListeners(), org.jdesktop.swingx.JXPanel#addHierarchyListener(java.awt.event.HierarchyListener), org.jdesktop.swingx.JXPanel#removeHierarchyListener(java.awt.event.HierarchyListener), org.jdesktop.swingx.JXPanel#getHierarchyListeners(), org.jdesktop.swingx.JXPanel#addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener), org.jdesktop.swingx.JXPanel#removeHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener), org.jdesktop.swingx.JXPanel#getHierarchyBoundsListeners(), org.jdesktop.swingx.JXPanel#addKeyListener(java.awt.event.KeyListener), org.jdesktop.swingx.JXPanel#removeKeyListener(java.awt.event.KeyListener), org.jdesktop.swingx.JXPanel#getKeyListeners(), org.jdesktop.swingx.JXPanel#addMouseListener(java.awt.event.MouseListener), org.jdesktop.swingx.JXPanel#removeMouseListener(java.awt.event.MouseListener), org.jdesktop.swingx.JXPanel#getMouseListeners(), org.jdesktop.swingx.JXPanel#addMouseMotionListener(java.awt.event.MouseMotionListener), org.jdesktop.swingx.JXPanel#removeMouseMotionListener(java.awt.event.MouseMotionListener), org.jdesktop.swingx.JXPanel#getMouseMotionListeners(), org.jdesktop.swingx.JXPanel#addMouseWheelListener(java.awt.event.MouseWheelListener), org.jdesktop.swingx.JXPanel#removeMouseWheelListener(java.awt.event.MouseWheelListener), org.jdesktop.swingx.JXPanel#getMouseWheelListeners(), org.jdesktop.swingx.JXPanel#addInputMethodListener(java.awt.event.InputMethodListener), org.jdesktop.swingx.JXPanel#removeInputMethodListener(java.awt.event.InputMethodListener), org.jdesktop.swingx.JXPanel#getInputMethodListeners(), org.jdesktop.swingx.JXPanel#getInputMethodRequests(), org.jdesktop.swingx.JXPanel#getInputContext(), org.jdesktop.swingx.JXPanel#mouseDown(java.awt.Event, int, int), org.jdesktop.swingx.JXPanel#mouseDrag(java.awt.Event, int, int), org.jdesktop.swingx.JXPanel#mouseUp(java.awt.Event, int, int), org.jdesktop.swingx.JXPanel#mouseMove(java.awt.Event, int, int), org.jdesktop.swingx.JXPanel#mouseEnter(java.awt.Event, int, int), org.jdesktop.swingx.JXPanel#mouseExit(java.awt.Event, int, int), org.jdesktop.swingx.JXPanel#keyDown(java.awt.Event, int), org.jdesktop.swingx.JXPanel#keyUp(java.awt.Event, int), org.jdesktop.swingx.JXPanel#gotFocus(java.awt.Event, java.lang.Object), org.jdesktop.swingx.JXPanel#lostFocus(java.awt.Event, java.lang.Object), org.jdesktop.swingx.JXPanel#isFocusTraversable(), org.jdesktop.swingx.JXPanel#setFocusable(boolean), org.jdesktop.swingx.JXPanel#setFocusTraversalKeysEnabled(boolean), org.jdesktop.swingx.JXPanel#getFocusTraversalKeysEnabled(), org.jdesktop.swingx.JXPanel#nextFocus(), org.jdesktop.swingx.JXPanel#transferFocusUpCycle(), org.jdesktop.swingx.JXPanel#hasFocus(), org.jdesktop.swingx.JXPanel#setComponentOrientation(java.awt.ComponentOrientation), org.jdesktop.swingx.JXPanel#getComponentOrientation(), org.jdesktop.swingx.JXPanel#wait(), org.jdesktop.swingx.JXPanel#wait(long), org.jdesktop.swingx.JXPanel#wait(long, int), org.jdesktop.swingx.JXPanel#equals(java.lang.Object), org.jdesktop.swingx.JXPanel#hashCode(), org.jdesktop.swingx.JXPanel#getClass(), org.jdesktop.swingx.JXPanel#notify(), org.jdesktop.swingx.JXPanel#notifyAll()
 
Methods inherited from class JPanel
getAccessibleContext, getUI, setUI, updateUI, getUIClassID, contains, getLocation, print, getSize, isOpaque, enable, disable, update, getY, getX, firePropertyChange, firePropertyChange, firePropertyChange, getBounds, getInsets, getInsets, setFont, getPreferredSize, getMinimumSize, getMaximumSize, getAlignmentX, getAlignmentY, paint, getListeners, addNotify, removeNotify, setFocusTraversalKeys, requestFocus, requestFocus, setEnabled, isDoubleBuffered, setVisible, setForeground, setBackground, reshape, getWidth, getHeight, setPreferredSize, setMinimumSize, setMaximumSize, getBaseline, getBaselineResizeBehavior, getGraphics, getFontMetrics, repaint, repaint, printAll, requestFocusInWindow, getToolTipText, getToolTipText, revalidate, putClientProperty, setInheritsPopupMenu, getInheritsPopupMenu, setComponentPopupMenu, getComponentPopupMenu, isPaintingTile, isPaintingForPrint, isManagingFocus, setNextFocusableComponent, getNextFocusableComponent, setRequestFocusEnabled, isRequestFocusEnabled, grabFocus, setVerifyInputWhenFocusTarget, getVerifyInputWhenFocusTarget, setBorder, getBorder, setAlignmentY, setAlignmentX, setInputVerifier, getInputVerifier, setDebugGraphicsOptions, getDebugGraphicsOptions, registerKeyboardAction, registerKeyboardAction, unregisterKeyboardAction, getRegisteredKeyStrokes, getConditionForKeyStroke, getActionForKeyStroke, resetKeyboardActions, setInputMap, getInputMap, getInputMap, setActionMap, getActionMap, requestDefaultFocus, getDefaultLocale, setDefaultLocale, setToolTipText, getToolTipLocation, getPopupLocation, createToolTip, scrollRectToVisible, setAutoscrolls, getAutoscrolls, setTransferHandler, getTransferHandler, getClientProperty, isLightweightComponent, setOpaque, computeVisibleRect, getVisibleRect, addVetoableChangeListener, removeVetoableChangeListener, getVetoableChangeListeners, getTopLevelAncestor, addAncestorListener, removeAncestorListener, getAncestorListeners, isValidateRoot, isOptimizedDrawingEnabled, paintImmediately, paintImmediately, setDoubleBuffered, getRootPane, add, add, add, add, add, remove, remove, list, list, removeAll, getComponent, invalidate, validate, addPropertyChangeListener, addPropertyChangeListener, getComponentCount, getComponents, getComponentAt, getComponentAt, countComponents, insets, setComponentZOrder, getComponentZOrder, getLayout, setLayout, doLayout, layout, preferredSize, minimumSize, paintComponents, printComponents, addContainerListener, removeContainerListener, getContainerListeners, deliverEvent, locate, getMousePosition, findComponentAt, findComponentAt, isAncestorOf, getFocusTraversalKeys, areFocusTraversalKeysSet, isFocusCycleRoot, isFocusCycleRoot, transferFocusBackward, setFocusTraversalPolicy, getFocusTraversalPolicy, isFocusTraversalPolicySet, setFocusCycleRoot, setFocusTraversalPolicyProvider, isFocusTraversalPolicyProvider, transferFocusDownCycle, applyComponentOrientation, add, toString, getName, contains, size, getParent, getLocation, remove, setName, list, list, list, getSize, resize, resize, setSize, setSize, enable, location, isValid, setLocale, action, removePropertyChangeListener, removePropertyChangeListener, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, getPropertyChangeListeners, getBounds, getLocale, getMousePosition, getGraphicsConfiguration, dispatchEvent, isVisible, isEnabled, isDisplayable, isFocusable, getTreeLock, isLightweight, getPeer, isFocusOwner, transferFocus, getFont, isPreferredSizeSet, isMinimumSizeSet, isMaximumSizeSet, isShowing, handleEvent, postEvent, getFocusCycleRootAncestor, setDropTarget, getDropTarget, getToolkit, enableInputMethods, show, show, hide, getForeground, isForegroundSet, getBackground, isBackgroundSet, isFontSet, getColorModel, getLocationOnScreen, setLocation, setLocation, move, bounds, setBounds, setBounds, setCursor, getCursor, isCursorSet, paintAll, repaint, repaint, repaint, imageUpdate, createImage, createImage, createVolatileImage, createVolatileImage, prepareImage, prepareImage, checkImage, checkImage, setIgnoreRepaint, getIgnoreRepaint, inside, addComponentListener, removeComponentListener, getComponentListeners, addFocusListener, removeFocusListener, getFocusListeners, addHierarchyListener, removeHierarchyListener, getHierarchyListeners, addHierarchyBoundsListener, removeHierarchyBoundsListener, getHierarchyBoundsListeners, addKeyListener, removeKeyListener, getKeyListeners, addMouseListener, removeMouseListener, getMouseListeners, addMouseMotionListener, removeMouseMotionListener, getMouseMotionListeners, addMouseWheelListener, removeMouseWheelListener, getMouseWheelListeners, addInputMethodListener, removeInputMethodListener, getInputMethodListeners, getInputMethodRequests, getInputContext, mouseDown, mouseDrag, mouseUp, mouseMove, mouseEnter, mouseExit, keyDown, keyUp, gotFocus, lostFocus, isFocusTraversable, setFocusable, setFocusTraversalKeysEnabled, getFocusTraversalKeysEnabled, nextFocus, transferFocusUpCycle, hasFocus, setComponentOrientation, getComponentOrientation, wait, wait, wait, equals, hashCode, getClass, notify, notifyAll
 

Field Detail

addressLocation

private GeoPosition addressLocation
The position in latitude/longitude of the "address" being mapped. This is a special coordinate that, when moved, will cause the map to be moved as well. It is separate from "center" in that "center" tracks the current center (in pixels) of the viewport whereas this will not change when panning or zooming. Whenever the addressLocation is changed, however, the map will be repositioned.


center

private Point2D center
The position, in map coordinates of the center point. This is defined as the distance from the top and left edges of the map in pixels. Dragging the map component will change the center position. Zooming in/out will cause the center to be recalculated so as to remain in the center of the new "map".


designTime

private boolean designTime


drawTileBorders

private boolean drawTileBorders
Indicates whether or not to draw the borders between tiles. Defaults to false. TODO Generally not very nice looking, very much a product of testing Consider whether this should really be a property or not.


factory

private TileFactory factory
Factory used by this component to grab the tiles necessary for painting the map.


horizontalWrapped

private boolean horizontalWrapped


isNegativeYAllowed

private final boolean isNegativeYAllowed


loadingImage

private Image loadingImage


overlay

private org.jdesktop.swingx.painter.Painter overlay
The overlay to delegate to for painting the "foreground" of the map component. This would include painting waypoints, day/night, etc. Also receives mouse events.


panEnabled

private boolean panEnabled
Specifies whether panning is enabled. Panning is being able to click and drag the map around to cause it to move


recenterOnClickEnabled

private boolean recenterOnClickEnabled
Indicates whether the component should recenter the map when the "middle" mouse button is pressed


restrictOutsidePanning

private boolean restrictOutsidePanning


tileLoadListener

private JXMapViewer.TileLoadListener tileLoadListener


zoom

private int zoom
The zoom level. Generally a value between 1 and 15 (TODO Is this true for all the mapping worlds? What does this mean if some mapping system doesn't support the zoom level?


zoomEnabled

private boolean zoomEnabled
Specifies whether zooming is enabled (the mouse wheel, for example, zooms)


zoomScale

private float zoomScale


 
Constructor Detail

JXMapViewer

public JXMapViewer()
Create a new JXMapViewer. By default it will use the EmptyTileFactory


 
Method Detail

calculateViewportBounds

private Rectangle calculateViewportBounds(Point2D center)


calculateZoomFrom

public void calculateZoomFrom(Set positions)
Calculates a zoom level so that all points in the specified set will be visible on screen. This is useful if you have a bunch of points in an area like a city and you want to zoom out so that the entire city and it's points are visible without panning.
Parameters:
positions - A set of GeoPositions to calculate the new zoom from


convertGeoPositionToPoint

public Point2D convertGeoPositionToPoint(GeoPosition pos)


convertPointToGeoPosition

public GeoPosition convertPointToGeoPosition(Point2D pt)


doPaintComponent

private void doPaintComponent(Graphics g)


drawMapTiles

protected void drawMapTiles(Graphics g, int zoom, Rectangle viewportBounds)


drawOverlays

private void drawOverlays(int zoom, Graphics g, Rectangle viewportBounds)
Sets the map overlay. This is a Painter which will paint on top of the map. It can be used to draw waypoints, lines, or static overlays like text messages.
Parameters:
overlay - the map overlay to use
See Also:
org.jdesktop.swingx.painters.Painter


generateBoundingRect

private Rectangle2D generateBoundingRect(Set positions, int zoom)


getAddressLocation

public GeoPosition getAddressLocation()


getCenter

public Point2D getCenter()


getCenterPosition

public GeoPosition getCenterPosition()
Set the current tile factory
Parameters:
factory - the new property value


getLoadingImage

public Image getLoadingImage()
Gets the current pixel center of the map. This point is in the global bitmap coordinate system, not as lat/longs.
Returns:
the current center of the map as a pixel value


getOverlayPainter

public org.jdesktop.swingx.painter.Painter getOverlayPainter()


getTileFactory

public TileFactory getTileFactory()
A property for an image which will be display when an image is still loading.
Returns:
the current property value


getViewportBounds

public Rectangle getViewportBounds()
Sets whether the map should recenter itself on mouse clicks (middle mouse clicks?)
Parameters:
b - if should recenter


getZoom

public int getZoom()
Gets the current zoom level
Returns:
the current zoom level


isDesignTime

public boolean isDesignTime()


isDrawTileBorders

public boolean isDrawTileBorders()
A property indicating if the map should be pannable by the user using the mouse.
Returns:
property value


isHorizontalWrapped

public boolean isHorizontalWrapped()


isPanEnabled

public boolean isPanEnabled()
A property indicating if the map should be zoomable by the user using the mouse wheel.
Returns:
the current property value


isRecenterOnClickEnabled

public boolean isRecenterOnClickEnabled()


isRestrictOutsidePanning

public boolean isRestrictOutsidePanning()


isTileOnMap

private boolean isTileOnMap(int x, int y, Dimension mapSize)


isZoomEnabled

public boolean isZoomEnabled()
A property indicating the center position of the map
Parameters:
geoPosition - the new property value


p

private static void p(String s)


recenterToAddressLocation

public void recenterToAddressLocation()
Set if the tile borders should be drawn. Mainly used for debugging.
Parameters:
drawTileBorders - new value of this drawTileBorders


setAddressLocation

public void setAddressLocation(GeoPosition addressLocation)


setCenter

public void setCenter(Point2D center)


setCenterPosition

public void setCenterPosition(GeoPosition geoPosition)
Get the current factory
Returns:
the current property value


setDesignTime

public void setDesignTime(boolean b)
Indicate that the component is being used at design time, such as in a visual editor like NetBeans' Matisse
Parameters:
b - indicates if the component is being used at design time


setDrawTileBorders

public void setDrawTileBorders(boolean drawTileBorders)
A property indicating if the map should be pannable by the user using the mouse.
Parameters:
panEnabled - new property value


setHorizontalWrapped

public void setHorizontalWrapped(boolean horizontalWrapped)


setLoadingImage

public void setLoadingImage(Image loadingImage)
Sets the new center of the map in pixel coordinates.
Parameters:
center - the new center of the map in pixel coordinates


setOverlayPainter

* points into the world bitmap coordinate space.
public void setOverlayPainter(org.jdesktop.swingx.painter.Painter overlay)
Gets the current map overlay
Returns:
the current map overlay


setPanEnabled

public void setPanEnabled(boolean panEnabled)
A property indicating if the map should be zoomable by the user using the mouse wheel.
Parameters:
zoomEnabled - the new value of the property


setRecenterOnClickEnabled

public void setRecenterOnClickEnabled(boolean b)
Indicates if the map should recenter itself on mouse clicks.
Returns:
boolean indicating if the map should recenter itself


setRestrictOutsidePanning

public void setRestrictOutsidePanning(boolean restrictOutsidePanning)


setTileFactory

public void setTileFactory(TileFactory factory)
A property for an image which will be display when an image is still loading.
Parameters:
loadingImage - the new property value


setZoom

public void setZoom(int zoom)


setZoomEnabled

public void setZoomEnabled(boolean zoomEnabled)


 

Groovy Documentation