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 <QMessageBox>
51 #include <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::map<te::da::DataSetTypePtr, std::string, DataSetComparer>::const_iterator it;
171 for(it = m_checkedDatasets.begin(); it != m_checkedDatasets.end(); ++it)
172 datasets.push_back(it->first);
179 return !m_checkedDatasets.empty();
184 std::list<std::string> gp;
186 std::map<te::da::DataSetTypePtr, std::string, DataSetComparer>::const_iterator it;
187 for(it = m_checkedDatasets.begin(); it != m_checkedDatasets.end(); ++it)
188 gp.push_back(it->second);
195 std::list<te::da::DataSetTypePtr> datasets;
197 std::list<DataSetItem*> items = m_datasetTreeView->getSelectedDataSets();
199 for(std::list<DataSetItem*>::iterator it = items.begin(); it != items.end(); ++it)
217 return m_datasetTreeView->hasSelectedDataSets();
222 std::list<std::string> gp;
224 std::list<DataSetItem*> items = m_datasetTreeView->getSelectedDataSets();
226 for(std::list<DataSetItem*>::iterator it = items.begin(); it != items.end(); ++it)
244 return m_datasetTreeView.get();
249 if(dataset.get() == 0)
254 if(m_ui->m_mapPreviewGroupBox->isChecked())
256 m_mapPreview->clear();
257 m_mapPreview->draw(dataset, m_datasource);
267 if((dataset.get() == 0) || (m_datasource.get() == 0))
270 if(!m_ui->m_dataPreviewGroupBox->isChecked())
280 std::auto_ptr<te::da::DataSet> feature(ds->getDataSet(dataset->getName()));
282 std::vector<std::size_t> properties;
283 for(std::size_t i = 0; i < feature->getNumProperties(); ++i)
284 properties.push_back(i);
286 std::size_t previewrows = m_nPreviewRows;
287 std::size_t dsetsize = feature->size();
289 if(dsetsize < previewrows)
290 previewrows = dsetsize;
292 std::auto_ptr<te::mem::DataSet> memFeature((
new te::mem::DataSet(*feature.get(), properties, previewrows)));
295 m_tblView->setDataSet(memFeature.release(), ds->getEncoding());
330 for(std::size_t i = 0; i < items.size(); ++i)
331 onDataSetToggled(items[i]);
338 QModelIndex current = m_datasetTreeView->currentIndex();
354 m_mapPreview->clear();
362 QModelIndex current = m_datasetTreeView->currentIndex();
380 return first->getName() < second->getName();
boost::shared_ptr< DataSetType > DataSetTypePtr
boost::shared_ptr< DataSource > DataSourcePtr
Implementation of a random-access dataset class for the TerraLib In-Memory Data Access driver...
static DataSourceManager & getInstance()
It returns a reference to the singleton instance.
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr