Package org.geotools.swing.tool
Class InfoTool
Object
MapMouseAdapter
CursorTool
InfoTool
- All Implemented Interfaces:
TextReporterListener
,MapMouseListener
A cursor tool to retrieve information about features that the user clicks on with the mouse. It works with
InfoToolHelper objects which do the work of querying feature data.
Feature information is displayed on screen using a JTextReporter dialog. If you want to access the displayed text programmatically you can override the onReporterUpdated() method as shown here:
InfoTool tool = new InfoTool() {
@Override
public void onReporterUpdated() {
String text = getTextReporterConnection().getText();
// do something with text
}
};
- Since:
- 2.6
- Author:
- Michael Bedward
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
Query if the tool is one that draws a box on the map display when the mouse is being dragged (eg. to indicate a zoom area).Get the cursor for this tool.Gets the connection to the text reporter displayed by this tool.void
Respond to a mouse click by querying each of theLayers
.void
Called when aJTextReporter
dialog used by this tool is closed.void
Called when text is updated in a JTextReporter dialog being used by this tool.Methods inherited from class CursorTool
getMapPane, setMapPane
Methods inherited from class MapMouseAdapter
onMouseDragged, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onMouseWheelMoved
-
Field Details
-
TOOL_NAME
The tool name -
TOOL_TIP
Tool tip text -
CURSOR_IMAGE
Cursor- See Also:
-
CURSOR_HOTSPOT
Cursor hotspot coordinates -
ICON_IMAGE
Icon for the control- See Also:
-
-
Constructor Details
-
InfoTool
public InfoTool()Constructor
-
-
Method Details
-
onMouseClicked
Respond to a mouse click by querying each of theLayers
. The details of features lying within the threshold distance of the mouse position are reported on screen using aJTextReporter
dialog.Implementation note: An instance of
InfoToolHelper
is created and cached for each of theLayers
. The helpers are created using reflection to avoid direct references to grid coverage classes here that would required JAI (Java Advanced Imaging) to be on the classpath even when only vector layers are being used.- Specified by:
onMouseClicked
in interfaceMapMouseListener
- Overrides:
onMouseClicked
in classMapMouseAdapter
- Parameters:
ev
- mouse event- See Also:
-
getTextReporterConnection
Gets the connection to the text reporter displayed by this tool. Returnsnull
if the reporter dialog is not currently displayed. The connection should not be stored because it will expire when the reporter dialog is closed.This method was added for unit test purposes but may be useful for applications wishing to access the feature data report text, e.g. by overriding onReporterUpdated().
- Returns:
- the text reporter connection or
null
if the reporter dialog is not currently displayed
-
getCursor
Description copied from class:CursorTool
Get the cursor for this tool. Sub-classes should override this method to provide a custom cursor.- Overrides:
getCursor
in classCursorTool
- Returns:
- the default cursor
-
drawDragBox
public boolean drawDragBox()Query if the tool is one that draws a box on the map display when the mouse is being dragged (eg. to indicate a zoom area).- Overrides:
drawDragBox
in classCursorTool
- Returns:
- Always returns false
-
onReporterClosed
public void onReporterClosed()Called when aJTextReporter
dialog used by this tool is closed.- Specified by:
onReporterClosed
in interfaceTextReporterListener
-
onReporterUpdated
public void onReporterUpdated()Called when text is updated in a JTextReporter dialog being used by this tool. This is an empty method but may be useful to override.- Specified by:
onReporterUpdated
in interfaceTextReporterListener
-