28 #include "../../../../core/translator/Translator.h" 29 #include "../../../../core/filesystem/FileSystem.h" 30 #include "../../../../core/uri/URI.h" 31 #include "../../../../core/uri/Utils.h" 32 #include "../../../../dataaccess/datasource/DataSource.h" 33 #include "../../../../dataaccess/datasource/DataSourceFactory.h" 34 #include "../../../../dataaccess/datasource/DataSourceManager.h" 35 #include "../../../../dataaccess/datasource/DataSourceInfo.h" 36 #include "../../../af/Utils.h" 37 #include "../../../widgets/Exception.h" 38 #include "../../../widgets/Utils.h" 39 #include "../../../widgets/raster/RasterInfoDialog.h" 40 #include "../../../widgets/raster/RasterInfoWidget.h" 41 #include "ui_GDALConnectorDialogForm.h" 44 #include <boost/uuid/random_generator.hpp> 45 #include <boost/uuid/uuid_io.hpp> 46 #include <boost/lexical_cast.hpp> 50 #include <QFileDialog> 51 #include <QMessageBox> 57 m_ui(new
Ui::GDALConnectorDialogForm)
67 m_ui->m_helpPushButton->setNameSpace(
"dpi.inpe.br.plugins");
68 m_ui->m_helpPushButton->setPageReference(
"plugins/gdal/gdal.html");
91 m_ui->m_datasourceTitleLineEdit->setText(QString::fromUtf8(
m_datasource->getTitle().c_str()));
93 m_ui->m_datasourceDescriptionTextEdit->setText(QString::fromUtf8(
m_datasource->getDescription().c_str()));
103 throw te::qt::widgets::Exception(
TE_TR(
"Sorry! No data access driver loaded for GDAL data sources!"));
114 throw te::qt::widgets::Exception(
TE_TR(
"Could not open dataset via GDAL due to an unknown error!"));
116 QString title =
m_ui->m_datasourceTitleLineEdit->text();
119 title =
m_ui->m_datasetLineEdit->text();
128 boost::uuids::basic_random_generator<boost::mt19937> gen;
129 boost::uuids::uuid u = gen();
130 std::string dsId = boost::uuids::to_string(u);
135 m_datasource->setDescription(
m_ui->m_datasourceDescriptionTextEdit->toPlainText().toUtf8().data());
144 m_datasource->setDescription(
m_ui->m_datasourceDescriptionTextEdit->toPlainText().toUtf8().data());
147 catch(
const std::exception& e)
149 QMessageBox::warning(
this,
150 tr(
"TerraLib Qt Components"),
156 QMessageBox::warning(
this,
157 tr(
"TerraLib Qt Components"),
158 tr(
"Unknown error while opening dataset via GDAL!"));
171 throw te::qt::widgets::Exception(
TE_TR(
"Sorry! No data access driver loaded for GDAL data sources!"));
177 if(ds.get() ==
nullptr)
178 throw te::qt::widgets::Exception(
TE_TR(
"Could not open dataset via GDAL!"));
180 QMessageBox::warning(
this,
181 tr(
"TerraLib Qt Components"),
182 tr(
"Data source is ok!"));
184 catch(
const std::exception& e)
186 QMessageBox::warning(
this,
187 tr(
"TerraLib Qt Components"),
192 QMessageBox::warning(
this,
193 tr(
"TerraLib Qt Components"),
194 tr(
"Unknown error while testing GDAL data source!"));
200 if(
m_ui->m_fileRadioButton->isChecked())
202 std::unique_ptr< te::qt::widgets::RasterInfoDialog > diagPtr(
206 if( diagPtr->getWidget()->getFullName().empty() )
213 m_ui->m_datasetLineEdit->setText(QString(diagPtr->getWidget()->getFullName().c_str()));
215 else if(
m_ui->m_dirRadioButton->isChecked())
219 if(dirName.isEmpty())
224 m_ui->m_datasetLineEdit->setText(dirName);
228 QMessageBox::warning(
this,
229 tr(
"TerraLib Qt Components"),
230 tr(
"Sorry, network files are not implemented yet!\nWe will provide it soon!"));
238 std::string strURI =
"file://";
240 qstr =
m_ui->m_datasetLineEdit->text().trimmed();
243 throw te::qt::widgets::Exception(
TE_TR(
"Please select a dataset first!"));
245 strURI += qstr.toUtf8().data();
258 m_ui->m_datasetLineEdit->setText(QString::fromUtf8(path.c_str()));
261 m_ui->m_dirRadioButton->setChecked(
true);
263 m_ui->m_fileRadioButton->setChecked(
true);
const std::string getConnectionInfo() const
std::string path() const
Retrieving the path.
static std::unique_ptr< DataSource > make(const std::string &driver, const te::core::URI &connInfo)
static bool find(const std::string &dsType)
static bool isDirectory(const std::string &path)
Checks if a given path in UTF-8 is a directory.
boost::shared_ptr< DataSource > DataSourcePtr
te::da::DataSourcePtr m_driver
void testPushButtonPressed()
void openPushButtonPressed()
void setConnectionInfo(const std::string &connInfo)
static te::dt::Date ds(2010, 01, 01)
#define TE_TR(message)
It marks a string in order to get translated.
GDALConnectorDialog(QWidget *parent=0, Qt::WindowFlags f=0)
const te::da::DataSourceInfoPtr & getDataSource() const
void set(const te::da::DataSourceInfoPtr &ds)
A dialog window for showing the GDAL connector widget.
const te::da::DataSourcePtr & getDriver() const
std::string host() const
Retrieving the host.
void searchDatasetToolButtonPressed()
std::unique_ptr< Ui::GDALConnectorDialogForm > m_ui
A class for representing an Uniform Resource Identifier (URI).
A class that represents a data source component.
te::da::DataSourceInfoPtr m_datasource
TECOREEXPORT std::string URIDecode(const std::string &srcUri)
Decodes an encoded URI. The algorithm implementation is based on http://www.codeguru.com/cpp/cpp/algorithms/strings/article.php/c12759/URI-Encoding-and-Decoding.htm.
static bool isRegularFile(const std::string &path)
Checks if a given path in UTF-8 is a regular file.
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr