Class InfoTool

All Implemented Interfaces:
TextReporterListener, MapMouseListener

public class InfoTool extends CursorTool implements TextReporterListener
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 Details

    • TOOL_NAME

      public static final String TOOL_NAME
      The tool name
    • TOOL_TIP

      public static final String TOOL_TIP
      Tool tip text
    • CURSOR_IMAGE

      public static final String CURSOR_IMAGE
      Cursor
      See Also:
    • CURSOR_HOTSPOT

      public static final Point CURSOR_HOTSPOT
      Cursor hotspot coordinates
    • ICON_IMAGE

      public static final String ICON_IMAGE
      Icon for the control
      See Also:
  • Constructor Details

    • InfoTool

      public InfoTool()
      Constructor
  • Method Details

    • onMouseClicked

      public void onMouseClicked(MapMouseEvent ev)
      Respond to a mouse click by querying each of the Layers. The details of features lying within the threshold distance of the mouse position are reported on screen using a JTextReporter dialog.

      Implementation note: An instance of InfoToolHelper is created and cached for each of the Layers. 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 interface MapMouseListener
      Overrides:
      onMouseClicked in class MapMouseAdapter
      Parameters:
      ev - mouse event
      See Also:
    • getTextReporterConnection

      public JTextReporter.Connection getTextReporterConnection()
      Gets the connection to the text reporter displayed by this tool. Returns null 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

      public Cursor 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 class CursorTool
      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 class CursorTool
      Returns:
      Always returns false
    • onReporterClosed

      public void onReporterClosed()
      Called when a JTextReporter dialog used by this tool is closed.
      Specified by:
      onReporterClosed in interface TextReporterListener
    • 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 interface TextReporterListener