Class ValuesUnderCursor

Object
ValuesUnderCursor

public abstract class ValuesUnderCursor extends Object
Provider of textual content to show in a Status­Bar for values under cursor position. When the mouse cursor moves, evaluate­Later(Direct­Position) is invoked with the same "real world" coordinates than the ones shown in the status bar.

Multi-threading

Instances of Value­Under­Cursor do not need to be thread-safe, because all Values­Under­Cursor methods will be invoked from JavaFX thread. However, the actual fetching and formatting of values will be done in a background thread using the Values­Under­Cursor​.Formatter inner class, which needs to be thread-safe.
Since:
1.1
  • Field Details

    • valueChoices

      protected final Menu valueChoices
      Menu offering choices among the values that this Values­Under­Cursor can show. This menu will be available as a contextual menu in the Status­Bar. It is subclass responsibility to listen to menu selections and adapt their evaluate­Later(Direct­Position) output accordingly.
  • Constructor Details

    • ValuesUnderCursor

      protected ValuesUnderCursor()
      Creates a new evaluator instance. The value­Choices list of items is initially empty; subclass constructor should set a text and add items.
  • Method Details

    • formatter

      protected abstract ValuesUnderCursor.Formatter formatter()
      Returns the task for fetching and formatting values in a background thread. Values­Under­Cursor subclasses should keep a single Values­Under­Cursor​.Formatter instance, eventually replaced when the data shown in Map­Canvas changed. That instance will be reused every time that the cursor position changed.
      Returns:
      task for fetching and formatting values in a background thread, or null if none.
      Since:
      1.3
    • evaluateLater

      public void evaluateLater(DirectPosition point)
      Formats a string representation of data under given "real world" position. This method shall be invoked in JavaFX thread, but values will be fetched and formatted in a background thread managed automatically by this Values­Under­Cursor class.

      The position CRS should be non-null for avoiding ambiguity about what is the default CRS. The position CRS can be anything; it will be transformed if needed.

      Parameters:
      point - the cursor location in arbitrary CRS (usually the CRS shown in the status bar). May be null for declaring that the point is outside canvas region.
      Since:
      1.3