27 #include "../../../../core/translator/Translator.h" 28 #include "../../../../dataaccess/datasource/DataSource.h" 29 #include "../../../../dataaccess/datasource/DataSourceFactory.h" 30 #include "../../../../dataaccess/datasource/DataSourceInfo.h" 31 #include "../../../../dataaccess/datasource/DataSourceManager.h" 32 #include "../../../widgets/Exception.h" 33 #include "../../../widgets/Utils.h" 34 #include "ui_ADOCreatorDialogForm.h" 38 #include <boost/algorithm/string/case_conv.hpp> 39 #include <boost/lexical_cast.hpp> 40 #include <boost/uuid/random_generator.hpp> 41 #include <boost/uuid/uuid_io.hpp> 44 #include <QFileDialog> 45 #include <QMessageBox> 49 m_ui(new
Ui::ADOCreatorDialogForm)
56 m_ui->m_providerComboBox->addItem(
"Microsoft.Jet.OLEDB.4.0");
58 m_ui->m_providerComboBox->addItem(
"Microsoft.ACE.OLEDB.12.0");
59 m_ui->m_providerComboBox->addItem(
"Microsoft.ACE.OLEDB.15.0");
67 m_ui->m_helpPushButton->setNameSpace(
"dpi.inpe.br.plugins");
68 m_ui->m_helpPushButton->setPageReference(
"plugins/ado/ado_creator.html");
91 throw te::qt::widgets::Exception(
TE_TR(
"Sorry! No data access driver loaded for ADO data sources!"));
108 throw te::qt::widgets::Exception(
TE_TR(
"Could not open ADO data source due to an unknown error!"));
110 QString title =
m_ui->m_fileLineEdit->text().trimmed();
120 boost::uuids::basic_random_generator<boost::mt19937> gen;
121 boost::uuids::uuid u = gen();
122 std::string dsId = boost::uuids::to_string(u);
139 catch(
const std::exception& e)
141 QMessageBox::warning(
this,
142 tr(
"TerraLib Qt Components"),
148 QMessageBox::warning(
this,
149 tr(
"TerraLib Qt Components"),
150 tr(
"Unknown error while opening ADO database!"));
159 QMessageBox::warning(
this,
160 tr(
"TerraLib Qt Components"),
161 tr(
"Not implemented yet!\nWe will provide it soon!"));
166 QString fileName = QFileDialog::getSaveFileName(
this, tr(
"Save ADO Database"),
te::qt::widgets::GetFilePathFromSettings(
"vector"), tr(
"Database files (*.accdb *.mdb);; All Files (*.*)"), 0, QFileDialog::ReadOnly);
168 if(fileName.isEmpty())
171 m_ui->m_fileLineEdit->setText(fileName);
173 QFileInfo info(fileName);
180 std::string strURI =
"file://";
183 qstr =
m_ui->m_fileLineEdit->text().trimmed();
188 qstr =
m_ui->m_passwordLineEdit->text().trimmed();
189 strURI += qstr.isEmpty() ?
"" :
"user:" + std::string(qstr.toUtf8().data()) +
"@";
193 qstr =
m_ui->m_fileLineEdit->text().trimmed();
194 strURI += qstr.isEmpty() ?
"" : qstr.toUtf8().data();
196 qstr =
m_ui->m_providerComboBox->currentText().trimmed();
199 qstr =
m_ui->m_providerComboBox->currentText().trimmed();
201 strURI +=
"?PROVIDER=" + std::string(qstr.toUtf8().data());
204 if (
m_ui->m_createOGCTablesCheckBox->isChecked())
205 strURI +=
"&CREATE_OGC_METADATA_TABLES=TRUE";
static std::unique_ptr< DataSource > create(const std::string &dsType, const std::string &connInfo)
It creates a new repository for a data source.
static std::unique_ptr< DataSource > make(const std::string &driver, const te::core::URI &connInfo)
static bool find(const std::string &dsType)
boost::shared_ptr< DataSource > DataSourcePtr
te::da::DataSourceInfoPtr m_datasource
te::da::DataSourcePtr m_driver
void searchDatabaseToolButtonPressed()
const te::da::DataSourcePtr & getDriver() const
std::unique_ptr< Ui::ADOCreatorDialogForm > m_ui
static te::dt::Date ds(2010, 01, 01)
#define TE_TR(message)
It marks a string in order to get translated.
const te::da::DataSourceInfoPtr & getDataSource() const
ADOCreatorDialog(QWidget *parent=0, Qt::WindowFlags f=0)
void applyPushButtonPressed()
void helpPushButtonPressed()
A class that represents a data source component.
const std::string getConnectionInfo(bool getPrivateKeys) const
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr