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
Modifier and TypeClassDescriptionprotected static class
Task for fetching and formatting values in a background thread. -
Field Summary
Modifier and TypeFieldDescriptionprotected final Menu
Menu offering choices among the values that thisValuesUnderCursor
can show. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
evaluateLater
(DirectPosition point) Formats a string representation of data under given "real world" position.protected abstract ValuesUnderCursor.Formatter
Returns the task for fetching and formatting values in a background thread.
-
Field Details
-
valueChoices
Menu offering choices among the values that thisValuesUnderCursor
can 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. ThevalueChoices
list 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.ValuesUnderCursor
subclasses should keep a singleValuesUnderCursor.Formatter
instance, eventually replaced when the data shown inMapCanvas
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
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 thisValuesUnderCursor
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 benull
for declaring that the point is outside canvas region.- Since:
- 1.3
-