27 #include "../../dataaccess/dataset/DataSetType.h"
28 #include "../../maptools/DataSetLayer.h"
29 #include "../../se/Style.h"
42 : te::qt::widgets::AbstractTreeItem(parent),
47 m_onlySelecteds(false),
50 if(layer->hasChildren())
52 for(
size_t i = 0; i < layer->getChildrenCount(); ++i)
56 if(layerChild->isValid())
63 else if(
m_layer->getSchema()->getProperties().size() > 0)
65 std::auto_ptr<te::map::LayerSchema> schema =
m_layer->getSchema();
70 std::vector<te::dt::Property*> properties = schema->getProperties();
82 const std::vector<te::se::Rule*>& rules = dataSetLayer->
getStyle()->
getRules();
102 if(role == Qt::DisplayRole && column == 0)
103 return QVariant(QString::fromStdString(m_layer->getTitle()));
105 if(role == Qt::CheckStateRole && column == 0)
106 return (m_selected ? Qt::Checked : Qt::Unchecked);
108 if(role == Qt::CheckStateRole && column == 1)
109 return (m_onlySelecteds ? Qt::Checked : Qt::Unchecked);
128 return m_layer->hasChildren() || (m_layer->getSchema()->getProperties().size() > 0);
136 for(
size_t i = 0; i < m_items.size(); ++i)
138 m_items[i]->fetchMore();
144 return Qt::ItemIsUserCheckable;
149 return m_layer->hasChildren() || !children().isEmpty();
154 if(role == Qt::CheckStateRole)
157 Qt::CheckState checkState =
static_cast<Qt::CheckState
>(value.toInt(&ok));
164 if(checkState == Qt::Checked)
166 else if(checkState == Qt::Unchecked)
169 std::vector<te::qt::widgets::AbstractTreeItem*> items = m_propertyGroup->getItems();
171 for(
size_t i = 0; i < items.size(); ++i)
179 if(checkState == Qt::Checked)
180 m_onlySelecteds =
true;
181 else if(checkState == Qt::Unchecked)
182 m_onlySelecteds =
false;
197 m_selected = selected;
207 std::vector<te::qt::widgets::AbstractTreeItem*> propItems = m_propertyGroup->getItems();
209 std::vector<te::dt::Property*> selected;
211 for(
size_t i = 0; i < propItems.size(); ++i)
bool setData(int column, const QVariant &value, int role=Qt::EditRole)
This is the base class for layers.
A class that represents a group of legends in a LayerTreeModel.
QMenu * getMenu(QWidget *parent=0) const
te::dt::Property * getProperty() const
const std::vector< Rule * > & getRules() const
std::vector< te::dt::Property * > getSelected()
Get the selected Properties of the Layer.
void setSelected(bool selected)
Set the Property as selected.
A class that represents a group of Properties in a LayerTreeModel.
std::vector< te::qt::widgets::AbstractTreeItem * > m_items
bool isSelected()
Check if the Property is selected.
virtual te::se::Style * getStyle() const
It returns the Style associated to the layer.
bool canFetchMore() const
A class that represents a Property in a LayerTreeModel.
LayerItem(te::map::AbstractLayerPtr layer, QObject *parent=0)
te::map::AbstractLayerPtr getLayer() const
Qt::ItemFlags flags() const
QVariant data(int column, int role) const
te::vp::LegendGroupItem * m_legendGroup
A class that represents a Layer in a LayerTreeModel.
A layer with reference to a dataset.
te::map::AbstractLayerPtr m_layer
Terralib Layer of the LayerItem.
bool isSelected()
Check if the Layer is selected.
te::vp::PropertyGroupItem * m_propertyGroup
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
const std::string getItemType() const
It returns the item type.