27 #include "../../../../dataaccess/datasource/DataSourceFactory.h" 28 #include "../../../../dataaccess/datasource/DataSourceManager.h" 29 #include "../../../../dataaccess/utils/Utils.h" 30 #include "../../../../qt/widgets/datasource/core/DataSourceType.h" 31 #include "../../../../qt/widgets/datasource/core/DataSourceTypeManager.h" 32 #include "../../../../qt/widgets/mapdisplay/DataSetDisplay.h" 34 #include "ui_PostGISDataSetSelectorDialogForm.h" 37 #include <QMessageBox> 38 #include <QTreeWidget> 39 #include <QTreeWidgetItem> 43 m_ui(new
Ui::PostGISDataSetSelectorDialogForm),
45 m_propertyBrowser(nullptr),
46 m_rasterPropertyInfo(nullptr),
47 m_timer(new QTimer(this))
55 QVBoxLayout* mapPreviewGroupBoxLayout =
new QVBoxLayout(
m_ui->m_mapPreviewGroupBox);
56 mapPreviewGroupBoxLayout->addWidget(
m_mapPreview.get(), 1);
59 m_ui->m_mapPreviewGroupBox->setChecked(
true);
70 m_ui->m_helpPushButton->setPageReference(
"widgets/dataset_selector/dataset_selector.html");
83 if (ds.get() ==
nullptr)
87 QString title(tr(
"Dataset Selection - %1"));
88 title = title.arg(QString::fromUtf8(ds->getTitle().c_str()));
95 title = tr(
"%1 - %2");
96 title = title.arg(QString::fromUtf8(dsType->
getTitle().c_str())).arg(QString::fromUtf8(ds->getTitle().c_str()));
98 m_ui->m_titleLabel->setText(title);
109 for (
int i = 0; i <
m_rootItem->childCount(); ++i)
113 if (item->checkState(0) == Qt::Checked)
128 m_ui->m_treeWidget->clear();
141 QMessageBox::warning(
this, tr(
"PostGIS Raster"), tr(
"Error openning data source."));
150 std::unique_ptr<te::da::DataSet> dataSet;
154 dataSet = ds->query(
"SELECT r_table_name, r_table_schema FROM raster_columns");
158 QMessageBox::warning(
this, tr(
"PostGIS Raster"), tr(
"Error getting data sets."));
164 QMessageBox::warning(
this, tr(
"PostGIS Raster"), tr(
"Error getting data sets."));
168 dataSet->moveBeforeFirst();
171 while (dataSet->moveNext())
173 std::string name = dataSet->getString(0);
174 std::string schema = dataSet->getString(1);
178 item->setFlags(Qt::ItemIsEnabled |Qt::ItemIsUserCheckable | Qt::ItemIsSelectable);
179 item->setText(0, name.c_str());
180 item->setText(1, schema.c_str());
181 item->setCheckState(0, Qt::Unchecked);
189 if (!
m_ui->m_mapPreviewGroupBox->isChecked())
193 std::map<std::string, std::string> rinfo;
195 std::string uri =
getGDALURI(dataSetName, schema);
204 std::vector<std::string> dsNames = ds->getDataSetNames();
206 std::unique_ptr<te::da::DataSet> dataSet = ds->getDataSet(dsNames[0]);
216 std::map<std::string, std::string> rinfo;
218 std::string uri =
getGDALURI(dataSetName, schema);
226 std::vector<std::string> dsNames = ds->getDataSetNames();
228 std::unique_ptr<te::da::DataSet> dataSet = ds->getDataSet(dsNames[0]);
232 std::unique_ptr<te::rst::Raster> inraster = dataSet->getRaster(rpos);
256 QWidget::resizeEvent(e);
265 std::string uri =
"PG://";
288 QList<QTreeWidgetItem*> list =
m_ui->m_treeWidget->selectedItems();
309 std::string dataSetName = item->text(0).toUtf8().data();
310 std::string schemaName = item->text(1).toUtf8().data();
void set(const te::da::DataSourceInfoPtr &ds)
void drawDataSet(std::string dataSetName, std::string schema)
static std::unique_ptr< DataSource > make(const std::string &driver, const te::core::URI &connInfo)
QTreeWidgetItem * m_rootItem
boost::shared_ptr< DataSetType > DataSetTypePtr
boost::shared_ptr< DataSource > DataSourcePtr
void onItemPressed(QTreeWidgetItem *item, int column)
std::unique_ptr< Ui::PostGISDataSetSelectorDialogForm > m_ui
PostGISDataSetSelectorDialog(QWidget *parent=0, Qt::WindowFlags f=0)
QGridLayout * m_propertyLayout
static te::dt::Date ds(2010, 01, 01)
QTimer * m_timer
Timer to execute redraw on resize action.
static DataSourceTypeManager & getInstance()
It returns a reference to the singleton instance.
An abstract class for raster data strucutures.
void buildDataSetInfoProperties(te::rst::Raster *raster)
void getSelecteds(PostGISRasterInfoVec &vec)
te::da::DataSourceInfoPtr m_datasource
std::vector< PostGISRasterInfo > PostGISRasterInfoVec
void resizeEvent(QResizeEvent *e)
std::string getGDALURI(std::string dataSetName, std::string schema)
QtTreePropertyBrowser * m_propertyBrowser
void getDataSetInfo(std::string dataSetName, std::string schema)
std::unique_ptr< te::qt::widgets::DataSetDisplay > m_mapPreview
~PostGISDataSetSelectorDialog()
TEDATAACCESSEXPORT std::size_t GetFirstPropertyPos(const te::da::DataSet *dataset, int datatype)
void onMapPreviewToggled(bool on)
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr
RasterPropertiesInfo * m_rasterPropertyInfo