Interface IGeometryHandlesProvider
- All Known Implementing Classes:
CompositeGeometryHandlesProvider
,PatchHandlesProvider
,PointHandlesProvider
,PolygonHandlesProvider
,PolylineHandlesProvider
,PolylineRingHandlesProvider
edit handles
for a given Geometry
.
The given Geometry
is passed to this provider as an Observable
. This object allows Editor
to communicate
geometry changes
to the IEditHandles
implementations, who can use it to create and update their collection of handles. Editing changes originating from IEditHandles
are communicated to the Editor
or handles wrappers
by calling IGeometryEditCallback
. See also the related guide on editing interactions.
This class is typically used in the context of feature editing
, when a feature is edited by modifying its geometry.
It has a default implementation
that supports many geometries.
See the related guide for an overview of the editing API.
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canProvide
(Observable<@Nullable Geometry> geometry, FeatureEditContext context) Indicates if this handles provider can create handles for the given geometry.provide
(Observable<@Nullable Geometry> geometry, FeatureEditContext context, IGeometryEditCallback geometryEditCallback) Returns the handles for the given feature.provideTranslateAction
(Observable<@Nullable Geometry> geometry, FeatureEditContext context, IGeometryEditCallback geometryEditCallback) Provides a translate action that can be used by the caller to add translation behavior.
-
Method Details
-
canProvide
boolean canProvide(@NotNull Observable<@Nullable Geometry> geometry, @NotNull FeatureEditContext context) Indicates if this handles provider can create handles for the given geometry.- Parameters:
geometry
- an observable geometry, cannot benull
context
- the context. Contains additional information about the edited feature, cannot benull
.- Returns:
- if this handles provider can provide handles and a translate action for the given
Feature
-
provide
@NotNull IEditHandles provide(@NotNull Observable<@Nullable Geometry> geometry, @NotNull FeatureEditContext context, @NotNull IGeometryEditCallback geometryEditCallback) Returns the handles for the given feature.Note:
translation
of features is handled byIFeatureHandlesProvider
. So geometry handles providers should not provide handles to translate a geometry.- Parameters:
geometry
- the observable geometry for which to provide handles, cannot benull
.context
- the context. Contains additional information about the edited feature, cannot benull
.geometryEditCallback
- a callback that notifies the caller when theFeature
has changed, cannot benull
.- Returns:
- handles for the given feature. Never
null
.
-
provideTranslateAction
@NotNull ITranslateEditAction provideTranslateAction(@NotNull Observable<@Nullable Geometry> geometry, @NotNull FeatureEditContext context, @NotNull IGeometryEditCallback geometryEditCallback) Provides a translate action that can be used by the caller to add translation behavior.A translation handle is typically added by an
IFeatureHandlesProvider
, like for example theFeatureHandlesProvider
implementation. It calls this method to retrieve a translate action, and uses it to create aTranslateEditHandle
.When
ITranslateEditAction#translate
is called, the returned implementation must:- apply a translation on the geometry
- apply this
IGeometryHandlesProvider
's constraint (if configured) on the translated geometry - call
IGeometryEditCallback
with the resulting geometry
- Parameters:
geometry
- the observable geometry for which to provide a translate action, cannot benull
context
- the context, cannot benull
geometryEditCallback
- a callback that notifies the caller of this method when a translation has occurred, cannot benull
- Returns:
- a translate action. Never
null
.
-