LuciadCPillar 2023.1.04
|
A layer for feature models. More...
#include <luciad/layers/features/FeatureLayer.h>
Classes | |
class | Builder |
Builder for the luciad::FeatureLayer class. More... | |
Public Member Functions | |
~FeatureLayer () override | |
void | addObserver (std::shared_ptr< ILayerObserver > layerObserver) override |
Adds an observer that allows to receive change events from this layer. More... | |
std::shared_ptr< IFeatureEditConfiguration > | getEditConfiguration () const |
Returns if editing is supported and how editing is configured. More... | |
std::shared_ptr< IFeatureGeometryProvider > | getEditCreateGeometryProvider () const |
FeatureLayerLoadingStrategy | getLoadingStrategy () const |
const std::shared_ptr< IFeatureModel > & | getModel () const |
const std::shared_ptr< IFeaturePainter > & | getPainter () const |
const std::shared_ptr< FeatureQueryConfiguration > & | getQueryConfiguration () const |
const std::string & | getTitle () const override |
Returns the layer's title. More... | |
bool | isEditable () const |
Returns whether this layer is editable. More... | |
bool | isLabeled () const |
bool | isQueryable () const |
bool | isVisible () const override |
Returns whether this layer is visible. More... | |
void | removeObserver (const std::shared_ptr< ILayerObserver > &layerObserver) override |
Removes the given observer. More... | |
void | setEditable (bool editable) |
Sets whether this layer is editable. More... | |
void | setLabeled (bool labeled) |
Sets whether the layer should display labels. More... | |
void | setPainter (std::shared_ptr< IFeaturePainter > featurePainter) |
Sets the new IFeaturePainter to use. More... | |
void | setQueryable (bool queryable) |
Sets whether the features of this layer can be returned in the Map::queryFeatures method. More... | |
void | setTitle (std::string title) override |
Sets the layer's title. More... | |
void | setVisible (bool visible) override |
Sets whether this layer is visible. More... | |
Public Member Functions inherited from luciad::Layer | |
Layer () | |
Default constructor. More... | |
virtual | ~Layer ()=default |
virtual void | addObserver (std::shared_ptr< ILayerObserver > layerObserver)=0 |
Adds an observer that allows to receive change events from this layer. More... | |
virtual LayerId | getId () const |
Returns the layer's unique id. More... | |
virtual const std::string & | getTitle () const =0 |
Returns the layer's title. More... | |
virtual bool | isVisible () const =0 |
Returns whether this layer is visible. More... | |
virtual void | removeObserver (const std::shared_ptr< ILayerObserver > &layerObserver)=0 |
Removes the given observer. More... | |
virtual void | setTitle (std::string title)=0 |
Sets the layer's title. More... | |
virtual void | setVisible (bool visible)=0 |
Sets whether this layer is visible. More... | |
Static Public Member Functions | |
static Builder | newBuilder () |
Returns a new builder for creating a FeatureLayer. More... | |
static const std::string & | propertyEditable () |
Returns the property name for the LayerEvent that is fired as a result of changing the layer's editable flag. More... | |
static const std::string & | propertyLabeled () |
Returns the property name for the LayerEvent that is fired as a result of changing the layer's labeled flag. More... | |
static const std::string & | propertyPainter () |
Returns the property name for the LayerEvent that is fired as a result of changing the layer's IFeaturePainter . More... | |
static const std::string & | propertyQueryable () |
Returns the property name for the LayerEvent that is fired as a result of changing the layer's queryable flag. More... | |
Static Public Member Functions inherited from luciad::Layer | |
static const std::string & | propertyTitle () |
Property name for the LayerEvent that is fired as a result of changing the layer's title. More... | |
static const std::string & | propertyVisible () |
Property name for the LayerEvent that is fired as a result of changing the layer's visible flag. More... | |
A layer for feature models.
Use luciad::FeatureLayer::newBuilder to create a feature layer instance.
|
override |
|
overridevirtual |
Adds an observer that allows to receive change events from this layer.
Adding the same observer twice is forbidden, and will cause an exception to be thrown.
layerObserver | an observer. |
luciad::InvalidArgumentException | when the observer was already added. |
luciad::NullArgumentException | when the observer is nullptr . |
Implements luciad::Layer.
std::shared_ptr< IFeatureEditConfiguration > luciad::FeatureLayer::getEditConfiguration | ( | ) | const |
Returns if editing is supported and how editing is configured.
Whether or not the layer can be edited by the user is controlled using setEditable
.
IFeatureModel
of this layer, or nullptr
if editing is not supported. std::shared_ptr< IFeatureGeometryProvider > luciad::FeatureLayer::getEditCreateGeometryProvider | ( | ) | const |
FeatureLayerLoadingStrategy luciad::FeatureLayer::getLoadingStrategy | ( | ) | const |
const std::shared_ptr< IFeatureModel > & luciad::FeatureLayer::getModel | ( | ) | const |
const std::shared_ptr< IFeaturePainter > & luciad::FeatureLayer::getPainter | ( | ) | const |
const std::shared_ptr< FeatureQueryConfiguration > & luciad::FeatureLayer::getQueryConfiguration | ( | ) | const |
|
overridevirtual |
Returns the layer's title.
Should be suitable for presenting to the user.
Implements luciad::Layer.
bool luciad::FeatureLayer::isEditable | ( | ) | const |
Returns whether this layer is editable.
A layer is editable if it has an IFeatureEditConfiguration
and if the editable flag is set.
bool luciad::FeatureLayer::isLabeled | ( | ) | const |
bool luciad::FeatureLayer::isQueryable | ( | ) | const |
Map::queryFeatures
method.
|
overridevirtual |
Returns whether this layer is visible.
Implements luciad::Layer.
|
static |
Returns a new builder for creating a FeatureLayer.
|
static |
Returns the property name for the LayerEvent that is fired as a result of changing the layer's editable flag.
setEditable
|
static |
Returns the property name for the LayerEvent that is fired as a result of changing the layer's labeled flag.
setLabeled
|
static |
Returns the property name for the LayerEvent that is fired as a result of changing the layer's IFeaturePainter
.
IFeaturePainter
. setPainter
|
static |
Returns the property name for the LayerEvent that is fired as a result of changing the layer's queryable flag.
setQueryable
|
overridevirtual |
Removes the given observer.
If the given observer was never added, an exception is thrown.
layerObserver | an observer. |
luciad::InvalidArgumentException | when the observer is not known. |
luciad::NullArgumentException | when the observer is nullptr . |
Implements luciad::Layer.
void luciad::FeatureLayer::setEditable | ( | bool | editable | ) |
Sets whether this layer is editable.
Sets whether or not the features of the layer can be edited by the user. If the new value is different from the old one, a LayerEvent is delivered to the observers with the property name FeatureLayer::propertyEditable
.
This flag is checked by the Editor
when receiving events from the IFeatureEditCandidateProvider
in conjunction with the model's IFeatureModelUpdater
and the layer's IFeatureEditConfiguration
.
This flag is true by default. This flag has no effect if the layer does not contain an IFeatureEditConfiguration
or if the model's IFeatureModelUpdater
is missing.
editable | the new value for this property |
void luciad::FeatureLayer::setLabeled | ( | bool | labeled | ) |
Sets whether the layer should display labels.
Note that in order for the layer to display labels, its IFeaturePainter
should also call the FeatureCanvas::drawLabel
method for its features. If not, no labels will be displayed, regardless of this setting.
labeled | true to enable labels. |
void luciad::FeatureLayer::setPainter | ( | std::shared_ptr< IFeaturePainter > | featurePainter | ) |
Sets the new IFeaturePainter
to use.
It will replace the IFeaturePainter
that was set using the FeatureLayer::Builder::painter
method, or if that method was not called, it will replace the default feature painter.
Limitation: This method currently only supports setting a new IFeaturePainter
with the exact same level of details
as the previous painter. If this is not the case, this method will throw an exception.
featurePainter | the feature painter used to paint the feature model. Cannot be nullptr . |
luciad::NullArgumentException | when the given feature painter is nullptr |
luciad::InvalidArgumentException | when the new painter has different detail levels than the previous painter |
void luciad::FeatureLayer::setQueryable | ( | bool | queryable | ) |
Sets whether the features of this layer can be returned in the Map::queryFeatures
method.
The default is true.
It is useful to set this property to false when:
luciad::SelectEventHandler
or luciad::HoverEventHandler
classes.Map::queryFeatures
method, for example for a layer with many features that don't need to be selected.queryable | whether the features of this layer can be returned in the Map::queryFeatures method |
|
overridevirtual |
Sets the layer's title.
Should be suitable for presenting to the user.
If the new title is indeed different from the old one, a LayerEvent is delivered to the observers with the property name PropertyTitle.
title | the new title. |
Implements luciad::Layer.
|
overridevirtual |
Sets whether this layer is visible.
Changes this layer's visibility. If the new visibility is different from the old one, a LayerEvent is delivered to the observers with the property name PropertyVisible.
visible | the new visibility. |
Implements luciad::Layer.