public final class PointHandlesProvider extends Object implements AutoCloseable, IGeometryHandlesProvider
Point
geometries.
The handles provider offers the following handles:
change the height
of the point. Note that the default implementation of PointHandlesProvider.IHandleFactory
automatically omits these handles on a 2D map, or on a 3D map when for points without elevation.
Note: the handle to translate the entire feature is typically created by the IFeatureHandlesProvider
. FeatureHandlesProvider
does this by default.
Modifier and Type | Class and Description |
---|---|
static interface |
PointHandlesProvider.IHandleFactory
Allows you to specify which handles are created by this handles provider.
|
Constructor and Description |
---|
PointHandlesProvider()
Creates a new
PointHandlesProvider that can create handles to modify Point geometries. |
Modifier and Type | Method and Description |
---|---|
boolean |
canProvide(Observable<Geometry> geometry,
FeatureEditContext context)
Indicates if this handles provider can create handles for the given geometry.
|
void |
close() |
protected void |
finalize() |
IPointConstraint |
getConstraint() |
PointHandlesProvider.IHandleFactory |
getHandleFactory() |
IEditHandles |
provide(Observable<Geometry> geometry,
FeatureEditContext context,
IGeometryEditCallback geometryEditCallback)
Returns the handles for the given feature.
|
ITranslateEditAction |
provideTranslateAction(Observable<Geometry> geometry,
FeatureEditContext context,
IGeometryEditCallback geometryEditCallback)
Provides a translate action that can be used by the caller to add translation behavior.
|
void |
setConstraint(IPointConstraint constraint)
Sets the constraint that is applied to the handles created by this handles provider.
|
void |
setHandleFactory(PointHandlesProvider.IHandleFactory handleFactory)
Sets the
IHandleFactory that is used to create handles by this provider. |
public PointHandlesProvider()
PointHandlesProvider
that can create handles to modify Point
geometries.public void close()
close
in interface AutoCloseable
public boolean canProvide(@NotNull Observable<Geometry> geometry, @NotNull FeatureEditContext context)
canProvide
in interface IGeometryHandlesProvider
geometry
- an observable geometry, cannot be null
context
- the context. Contains additional information about the edited feature, cannot be null
.Feature
@NotNull public IEditHandles provide(@NotNull Observable<Geometry> geometry, @NotNull FeatureEditContext context, @NotNull IGeometryEditCallback geometryEditCallback)
Note: translation
of features is handled by IFeatureHandlesProvider
. So geometry handles providers should not provide handles to translate a geometry.
provide
in interface IGeometryHandlesProvider
geometry
- the observable geometry for which to provide handles, cannot be null
.context
- the context. Contains additional information about the edited feature, cannot be null
.geometryEditCallback
- a callback that notifies the caller when the Feature
has changed, cannot be null
.null
.@NotNull public ITranslateEditAction provideTranslateAction(@NotNull Observable<Geometry> geometry, @NotNull FeatureEditContext context, @NotNull IGeometryEditCallback geometryEditCallback)
A translation handle is typically added by an IFeatureHandlesProvider
, like for example the FeatureHandlesProvider
implementation. It calls this method to retrieve a translate action, and uses it to create a TranslateEditHandle
.
When ITranslateEditAction#translate
is called, the returned implementation must:
IGeometryHandlesProvider
's constraint (if configured) on the translated geometry
IGeometryEditCallback
with the resulting geometry
provideTranslateAction
in interface IGeometryHandlesProvider
geometry
- the observable geometry for which to provide a translate action, cannot be null
context
- the context, cannot be null
geometryEditCallback
- a callback that notifies the caller of this method when a translation has occurred, cannot be null
null
.@NotNull public PointHandlesProvider.IHandleFactory getHandleFactory()
public void setHandleFactory(@NotNull PointHandlesProvider.IHandleFactory handleFactory) throws NullPointerException
IHandleFactory
that is used to create handles by this provider.
If this method is not called, a default handle factory is used. You can change the behavior of this default handle factory by:
retrieving it
IHandleFactory
implementation, by delegating to the default factory
handleFactory
- a handle factoryNullPointerException
- when null
is passed.public void setConstraint(@Nullable IPointConstraint constraint)
Handles always call the constraint with a PointChange
parameter, containing the point difference.
constraint
- the constraint that is applied to the handles' edit actions, or null
if no constraint should be applied.@Nullable public IPointConstraint getConstraint()
null
if no constraint is set.