Object
ValuesUnderCursor
Provider of textual content to show in a
StatusBar for values under cursor position.
When the mouse cursor moves, evaluateLater(DirectPosition) is invoked with the same
"real world" coordinates than the ones shown in the status bar.
Multi-threading
Instances ofValueUnderCursor do not need to be thread-safe, because
all ValuesUnderCursor methods will be invoked from JavaFX thread.
However, the actual fetching and formatting of values will be done in a background
thread using the ValuesUnderCursor.Formatter inner class, which needs to be thread-safe.- Since:
- 1.1
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classTask for fetching and formatting values in a background thread. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final MenuMenu offering choices among the values that thisValuesUnderCursorcan show. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidevaluateLater(DirectPosition point) Formats a string representation of data under given "real world" position.protected abstract ValuesUnderCursor.FormatterReturns the task for fetching and formatting values in a background thread.
-
Field Details
-
valueChoices
Menu offering choices among the values that thisValuesUnderCursorcan show. This menu will be available as a contextual menu in theStatusBar. It is subclass responsibility to listen to menu selections and adapt theirevaluateLater(DirectPosition)output accordingly.
-
-
Constructor Details
-
ValuesUnderCursor
protected ValuesUnderCursor()Creates a new evaluator instance. ThevalueChoiceslist of items is initially empty; subclass constructor should set a text and add items.
-
-
Method Details
-
formatter
Returns the task for fetching and formatting values in a background thread.ValuesUnderCursorsubclasses should keep a singleValuesUnderCursor.Formatterinstance, eventually replaced when the data shown inMapCanvaschanged. That instance will be reused every time that the cursor position changed.- Returns:
- task for fetching and formatting values in a background thread, or
nullif none. - Since:
- 1.3
-
evaluateLater
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 thisValuesUnderCursorclass.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 benullfor declaring that the point is outside canvas region.- Since:
- 1.3
-