29 #include "../../../dataaccess/dataset/DataSet.h"
30 #include "../../../dataaccess/dataset/ObjectIdSet.h"
31 #include "../../../dataaccess/utils/Utils.h"
32 #include "../../../maptools/AbstractLayer.h"
33 #include "../../widgets/charts/ChartConfigurer.h"
34 #include "../../widgets/charts/ChartDisplayWidget.h"
35 #include "../events/LayerEvents.h"
36 #include "../ApplicationController.h"
42 while(dataset->moveNext())
53 QDockWidget(parent, Qt::Widget),
54 m_displayWidget(displayWidget),
60 setAttribute(Qt::WA_DeleteOnClose,
true);
79 m_displayWidget->highlightOIds(m_layer->getSelected(), m_layer->getSchema().get());
84 setWindowTitle(m_layer->getTitle().c_str());
89 m_displayWidget->setSelectionColor(selColor);
105 if(ev->
m_layer->getId() == m_layer->getId())
107 m_displayWidget->highlightOIds(ev->
m_layer->getSelected(), ev->
m_layer->getSchema().get());
116 if(ev->
m_layer->getId() == m_layer->getId())
130 if(m_layer->getSelected())
136 std::set<te::da::ObjectId*, te::common::LessCmp<te::da::ObjectId*> >::const_iterator itObjSet;
137 for(itObjSet = oids->
begin(); itObjSet != oids->
end(); ++itObjSet)
139 if(m_layer->getSelected()->contains(*itObjSet))
141 removed->
add(*itObjSet);
145 m_layer->deselect(removed);
149 m_layer->clearSelected();
153 std::vector<std::size_t> objIdIdx;
156 std::vector<size_t>::iterator it;
158 for(it=objIdIdx.begin(); it!=objIdIdx.end(); ++it)
159 added->
addProperty(m_layer->getData()->getPropertyName(*it), *it, m_layer->getData()->getPropertyDataType(*it));
162 if(added->
size() > 0 && m_layer->getSchema()->hasGeom())
164 std::auto_ptr<te::da::DataSet> ds = m_layer->getData(added);
165 ds->moveBeforeFirst();
167 size_t numProp = ds->getNumProperties();
170 for(
size_t i=0; i<numProp; i++)
179 m_layer->select(added);
185 m_layer->select(added);
This is the base class for layers.
te::map::AbstractLayerPtr m_layer
Layer whose selected objects were changed.
A base class for application events.
void addProperty(const std::string &name, std::size_t pos, int type)
It adds a property that will be used to generate the unique ids.
This event indicates that the selected objects of the layer were changed.
void Union(const Envelope &rhs)
It updates the envelop with coordinates of another envelope.
static ApplicationController & getInstance()
It returns a reference to the singleton instance.
An Envelope defines a 2D rectangular region.
This class represents a set of unique ids created in the same context. i.e. from the same data set...
std::size_t size() const
It returns the object id set size.
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
void broadcast(te::qt::af::evt::Event *evt)
Send events in broadcast for all registered components.
void remove(ObjectId *oid)
Removes the object id from set.
TEDATAACCESSEXPORT void GetOIDPropertyPos(const DataSetType *type, std::vector< std::size_t > &ppos)
te::map::AbstractLayerPtr m_layer
Layer removed.
std::set< ObjectId *, te::common::LessCmp< ObjectId * > >::const_iterator end() const
Returns an iterator for the object ids in container.
void clear()
It clears this object id set.
void add(ObjectId *oid)
It adds an object id to this object id set.
This event signals that a layer is to be removed from the layer explorer.
std::set< ObjectId *, te::common::LessCmp< ObjectId * > >::const_iterator begin() const
Returns an iterator for the object ids in container.
ObjectIdSet * clone() const
const Envelope * getMBR() const
It returns the minimum bounding rectangle for the geometry in an internal representation.