LuciadCPillar C# 2024.0.04
|
An edit handle is a visual element on the Map
that can react to events to perform an edit operation.
More...
Public Member Functions | |
void | AddEditStateObserver (Luciad.Utils.IInvalidationCallback observer) |
Adds an observer that is called when the edit state of this handle has changed. More... | |
Luciad.Edit.Handles.EditHandleState | GetEditState () |
Returns the current state of this handle. More... | |
Luciad.Maps.? MouseCursor | GetMouseCursor () |
Returns the current mouse cursor that should be displayed for this handle. More... | |
Luciad.Controllers.EventResult | OnEvent (Luciad.Input.IInputEvent inputEvent, Luciad.Edit.Features.FeatureEditContext context) |
Handles the given event, and returns if the event was consumed or not. More... | |
void | Paint (Luciad.Layers.Features.FeatureCanvas canvas, Luciad.Edit.Features.FeatureEditContext context) |
Paints this handle on the given canvas. More... | |
void | RemoveEditStateObserver (Luciad.Utils.IInvalidationCallback observer) |
Removes the given observer. More... | |
void | SetInvalidationCallback (Luciad.Utils.IInvalidationCallback invalidationCallback) |
Sets the callback for the handle to call when its visual representation or cursor has changed. More... | |
An edit handle is a visual element on the Map
that can react to events to perform an edit operation.
Edit handles are used in the context of a IEditHandles
. IEditHandles
implementations are responsible for providing and updating edit handles during editing. IEditHandles
implementations typically allow to replace/customize/remove handles.
Edit handles can have one of 3 states
. This state determines:
Editor
passes events to handles Editor
gets the mouse cursor
from a handle The edit handle is responsible for deciding when it needs to be repainted. For that purpose, it is given an IInvalidationCallback
, see SetInvalidationCallback
. This invalidation callback must be called whenever the handle needs to be repainted.
Concrete implementations of this interface have specific behavior. For example:
PointEditHandle
: allows you to move a point to a new location, or apply an action to a point location, insert a new point in a Polyline
for example. This handle typically paints itself as an IIcon
. TranslateEditHandle
: allows you to translate a Geometry
to a new location. This handle typically doesn't paint itself, because the Geometry
to be moved is already painted. void Luciad.Edit.Handles.IEditHandle.AddEditStateObserver | ( | Luciad.Utils.IInvalidationCallback | observer | ) |
Adds an observer that is called when the edit state
of this handle has changed.
Adding the same observer twice is forbidden, and will cause an exception to be thrown.
observer | an observer |
System.ArgumentException | when the observer was already added. |
Implemented in Luciad.Edit.Handles.PointEditHandle, and Luciad.Edit.Handles.TranslateEditHandle.
Luciad.Edit.Handles.EditHandleState Luciad.Edit.Handles.IEditHandle.GetEditState | ( | ) |
Returns the current state of this handle.
Implemented in Luciad.Edit.Handles.PointEditHandle, and Luciad.Edit.Handles.TranslateEditHandle.
Luciad.Maps.? MouseCursor Luciad.Edit.Handles.IEditHandle.GetMouseCursor | ( | ) |
Returns the current mouse cursor that should be displayed for this handle.
This method typically returns a value when this handle is highlighted or active. If not, null
can be returned.
Implemented in Luciad.Edit.Handles.PointEditHandle, and Luciad.Edit.Handles.TranslateEditHandle.
Luciad.Controllers.EventResult Luciad.Edit.Handles.IEditHandle.OnEvent | ( | Luciad.Input.IInputEvent | inputEvent, |
Luciad.Edit.Features.FeatureEditContext | context | ||
) |
Handles the given event, and returns if the event was consumed or not.
While handling events, IEditHandles
can mark themselves as highlighted or as Active. Related to event handling, the main effect of this is that highlighted or active handles get a higher priority compared to other handles: they get the chance to consume events first. See EditHandleState
inputEvent | the event to handle, cannot be null |
context | the context, cannot be null |
System.ArgumentNullException | when null is passed. |
Implemented in Luciad.Edit.Handles.PointEditHandle, and Luciad.Edit.Handles.TranslateEditHandle.
void Luciad.Edit.Handles.IEditHandle.Paint | ( | Luciad.Layers.Features.FeatureCanvas | canvas, |
Luciad.Edit.Features.FeatureEditContext | context | ||
) |
Paints this handle on the given canvas.
This method is called when
IEditHandles
fires an EditHandlesEvent
containing this handle, when the handle is newly added or removed for example. invalidation callback
. This method only gets called on the UI thread, so there is no need for additional synchronization.
canvas | the canvas on which this handle gets painted. |
context | the context, cannot be null |
Implemented in Luciad.Edit.Handles.PointEditHandle, and Luciad.Edit.Handles.TranslateEditHandle.
void Luciad.Edit.Handles.IEditHandle.RemoveEditStateObserver | ( | Luciad.Utils.IInvalidationCallback | observer | ) |
Removes the given observer.
If the given observer was never added, an exception is thrown.
observer | an observer |
System.ArgumentException | when the observer is not known. |
Implemented in Luciad.Edit.Handles.PointEditHandle, and Luciad.Edit.Handles.TranslateEditHandle.
void Luciad.Edit.Handles.IEditHandle.SetInvalidationCallback | ( | Luciad.Utils.IInvalidationCallback | invalidationCallback | ) |
Sets the callback for the handle to call when its visual representation or cursor has changed.
Calling this callback triggers a new call to this handle's Paint
method.
invalidationCallback | the callback for the handle to call when its visual representation has changed |
Implemented in Luciad.Edit.Handles.PointEditHandle, and Luciad.Edit.Handles.TranslateEditHandle.