27 #include "../../../../dataaccess/dataset/DataSet.h"
28 #include "../../../../dataaccess/dataset/DataSetType.h"
29 #include "../../../../dataaccess/datasource/DataSource.h"
30 #include "../../../../dataaccess/datasource/DataSourceManager.h"
31 #include "../../../../dataaccess/datasource/DataSourceTransactor.h"
32 #include "../../../../memory/DataSet.h"
33 #include "../../datasource/explorer/AbstractDataSourceTreeItem.h"
34 #include "../../datasource/explorer/DataSetItem.h"
35 #include "../../datasource/explorer/DataSetGroupItem.h"
36 #include "../../mapdisplay/DataSetDisplay.h"
37 #include "../../table/DataSetTableView.h"
38 #include "../explorer/DataSetTreeView.h"
39 #include "../explorer/DataSetTreeModel.h"
41 #include "ui_DataSetSelectorWidgetForm.h"
50 #include <QtGui/QMessageBox>
51 #include <QtGui/QVBoxLayout>
55 m_ui(new Ui::DataSetSelectorWidgetForm),
66 QVBoxLayout* datasetGroupBoxLayout =
new QVBoxLayout(
m_ui->m_datasetGroupBox);
70 QVBoxLayout* mapPreviewGroupBoxLayout =
new QVBoxLayout(
m_ui->m_mapPreviewGroupBox);
71 mapPreviewGroupBoxLayout->addWidget(
m_mapPreview.get(), 1);
74 m_ui->m_mapPreviewGroupBox->setChecked(
false);
77 QVBoxLayout* dataPreviewGroupBoxLayout =
new QVBoxLayout(
m_ui->m_dataPreviewGroupBox);
78 dataPreviewGroupBoxLayout->addWidget(
m_tblView.get(), 1);
86 m_tblView->verticalHeader()->setVisible(
false);
87 m_tblView->setSelectionMode(QAbstractItemView::NoSelection);
88 m_ui->m_dataPreviewGroupBox->setChecked(
false);
111 m_ui->m_datasetGroupBox->setTitle(QString::fromStdString(ds->getTitle()));
115 m_datasetTreeView->set(m_datasource, useCheckableItems);
117 QAbstractItemModel* nmodel = m_datasetTreeView->model();
119 QModelIndex idx = nmodel->index(0, 0);
121 m_datasetTreeView->expand(idx);
123 catch(
const std::exception& e)
125 QMessageBox::warning(
this,
126 tr(
"TerraLib Qt Components"),
131 QMessageBox::warning(
this,
132 tr(
"TerraLib Qt Components"),
133 tr(
"Unknown error when showing datasets!"));
139 QMessageBox::warning(
this,
140 tr(
"TerraLib Qt Components"),
141 tr(
"Not implemented yet!\nWe will provide it soon!"));
146 m_ui->m_mapPreviewGroupBox->setChecked(
false);
151 QMessageBox::warning(
this,
152 tr(
"TerraLib Qt Components"),
153 tr(
"Not implemented yet!\nWe will provide it soon!"));
158 m_ui->m_dataPreviewGroupBox->setChecked(
false);
163 m_nPreviewRows = nrows;
168 std::list<te::da::DataSetTypePtr> datasets;
170 std::copy(m_checkedDatasets.begin(), m_checkedDatasets.end(), std::back_inserter(datasets));
177 return !m_checkedDatasets.empty();
182 std::list<te::da::DataSetTypePtr> datasets;
184 std::list<DataSetItem*> items = m_datasetTreeView->getSelectedDataSets();
186 for(std::list<DataSetItem*>::iterator it = items.begin(); it != items.end(); ++it)
204 return m_datasetTreeView->hasSelectedDataSets();
209 return m_datasetTreeView.get();
214 if(dataset.get() == 0)
219 if(m_ui->m_mapPreviewGroupBox->isChecked())
221 m_mapPreview->clear();
222 m_mapPreview->draw(dataset, m_datasource);
232 if((dataset.get() == 0) || (m_datasource.get() == 0))
235 if(!m_ui->m_dataPreviewGroupBox->isChecked())
245 std::auto_ptr<te::da::DataSet> feature(ds->getDataSet(dataset->getName()));
247 std::vector<std::size_t> properties;
248 for(std::size_t i = 0; i < feature->getNumProperties(); ++i)
249 properties.push_back(i);
251 std::auto_ptr<te::mem::DataSet> memFeature((
new te::mem::DataSet(*feature.get(), properties, m_nPreviewRows)));
253 m_tblView->setDataSet(memFeature.release());
287 for(std::size_t i = 0; i < items.size(); ++i)
288 onDataSetToggled(items[i]);
295 QModelIndex current = m_datasetTreeView->currentIndex();
311 m_mapPreview->clear();
319 QModelIndex current = m_datasetTreeView->currentIndex();
335 QAbstractItemModel* oldModel = m_tblView->model();
336 m_tblView->setModel(0);
343 return first->getName() < second->getName();
void setMapPreviewEnabled(bool enabled)
A tree view for datasets of a data source.
DataSetSelectorWidget(QWidget *parent=0, Qt::WindowFlags f=0)
Implementation of a random-access dataset class for the TerraLib In-Memory Data Access driver...
const std::vector< DataSetItem * > & getDataSetItems() const
void setMapPreviewVisible(bool visible)
void onDataSetToggled(DataSetItem *item)
bool hasSelectedDataSets() const
void previewMap(const te::da::DataSetTypePtr &dataset)
void onDataPreviewToggled(bool on)
#define TE_QTWIDGETS_DEFAULT_TREEVIEW_IDENTATION
void setDataPreviewEnabled(bool enabled)
void setNumPreviewRows(int nrows)
std::auto_ptr< DataSetTreeView > m_datasetTreeView
std::list< te::da::DataSetTypePtr > getSelectedDataSets() const
bool operator()(const te::da::DataSetTypePtr &first, const te::da::DataSetTypePtr &second) const
void setDataPreviewVisible(bool visible)
A map display for a dataset.
std::list< te::da::DataSetTypePtr > getCheckedDataSets() const
std::auto_ptr< DataSetTableView > m_tblView
boost::shared_ptr< DataSource > DataSourcePtr
DataSetTreeView * getTreeView() const
std::auto_ptr< Ui::DataSetSelectorWidgetForm > m_ui
std::auto_ptr< te::qt::widgets::DataSetDisplay > m_mapPreview
bool hasCheckedDataSets() const
A customized table view for te::map::AbstractLayer objects. Uses a te::qt::widgets::DataSetModel as i...
void onDataSetGroupToggled(DataSetGroupItem *item)
boost::shared_ptr< DataSetType > DataSetTypePtr
void set(const te::da::DataSourceInfoPtr &ds, bool useCheckableItems=false)
static DataSourceManager & getInstance()
It returns a reference to the singleton instance.
void onMapPreviewToggled(bool on)
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr
void previewData(const te::da::DataSetTypePtr &dataset)
A wizard for selecting datasets from a data source.
const te::da::DataSetTypePtr & getDataSet() const
void onDataSetClicked(DataSetItem *item)