org.geotools.swing.tool
Class InfoToolHelper

Object
  extended by InfoToolHelper
All Implemented Interfaces:
EventListener, MapBoundsListener
Direct Known Subclasses:
FeatureLayerHelper, GridCoverageLayerHelper, GridReaderLayerHelper

public abstract class InfoToolHelper
extends Object
implements MapBoundsListener

Abstract base class for helper classes used by InfoTool to query features in map layers.

Since:
2.6
Author:
Michael Bedward

Field Summary
protected  WeakReference<MapContent> contentRef
           
static String KEY_POSITION
          String key used for the position element in the Map passed to #getInfo( org.geotools.util.KVP ).
protected  WeakReference<Layer> layerRef
           
 
Constructor Summary
InfoToolHelper()
           
 
Method Summary
protected  void clearTransform()
           
protected  MathTransform getContentToLayerTransform()
          Gets the MathTransform used to convert coordinates from the projection being used by the MapContent to that of the Layer.
abstract  InfoToolResult getInfo(DirectPosition2D pos)
          Gets layer data at the specified position.
 Layer getLayer()
          Gets the map layer associated with this helper.
 MapContent getMapContent()
          Gets the map content associated with this helper.
abstract  boolean isSupportedLayer(Layer layer)
          CAlled by the helper lookup system when selecting a helper for a given layer.
protected  boolean isTransformRequired()
           
 boolean isValid()
          Checks if this helper is holding a reference to a MapContent and a Layer.Helpers only hold a WeakReference to both the map content and layer to avoid blocking garbage collection when layers are discarded.
 void mapBoundsChanged(MapBoundsEvent event)
          A method from the MapBoundsListener interface used to listen for a change to the map content's coordinate reference system.
 void setLayer(Layer layer)
          Sets the map layer for this helper.
 void setMapContent(MapContent content)
          Sets the map content for this helper.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

KEY_POSITION

public static final String KEY_POSITION
String key used for the position element in the Map passed to #getInfo( org.geotools.util.KVP ).

See Also:
Constant Field Values

contentRef

protected WeakReference<MapContent> contentRef

layerRef

protected WeakReference<Layer> layerRef
Constructor Detail

InfoToolHelper

public InfoToolHelper()
Method Detail

isSupportedLayer

public abstract boolean isSupportedLayer(Layer layer)
CAlled by the helper lookup system when selecting a helper for a given layer.

Parameters:
layer - the layer
Returns:
true is this helper can handle the layer
Throws:
IllegalArgumentException - if layer is null

getInfo

public abstract InfoToolResult getInfo(DirectPosition2D pos)
                                throws Exception
Gets layer data at the specified position. If there are no feature data at the position, an empty InfoToolResult object is returned.

Parameters:
pos - query position
Returns:
layer data
Throws:
Exception - on error querying the layer

isValid

public boolean isValid()
Checks if this helper is holding a reference to a MapContent and a Layer.Helpers only hold a WeakReference to both the map content and layer to avoid blocking garbage collection when layers are discarded.

Returns:
true if both map content and layer references are valid

setMapContent

public void setMapContent(MapContent content)
Sets the map content for this helper.

Parameters:
layer - the map content
Throws:
IllegalArgumentException - if content is null

getMapContent

public MapContent getMapContent()
Gets the map content associated with this helper.

Returns:
the map content

setLayer

public void setLayer(Layer layer)
Sets the map layer for this helper.

Parameters:
layer - the map layer
Throws:
IllegalArgumentException - if layer is null

getLayer

public Layer getLayer()
Gets the map layer associated with this helper.

Returns:

mapBoundsChanged

public void mapBoundsChanged(MapBoundsEvent event)
A method from the MapBoundsListener interface used to listen for a change to the map content's coordinate reference system.

Specified by:
mapBoundsChanged in interface MapBoundsListener
Parameters:
event - The change event.

getContentToLayerTransform

protected MathTransform getContentToLayerTransform()
Gets the MathTransform used to convert coordinates from the projection being used by the MapContent to that of the Layer.

Returns:
the transform or null if the layer's CRS is the same as that of the map content, or if either has no CRS defined

isTransformRequired

protected boolean isTransformRequired()

clearTransform

protected void clearTransform()


Copyright © 1996-2014 Geotools. All Rights Reserved.