27 #include "../../../../common/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 "Ui_SQLiteConnectorDialogForm.h" 
   37 #include <boost/algorithm/string/case_conv.hpp> 
   38 #include <boost/lexical_cast.hpp> 
   39 #include <boost/uuid/random_generator.hpp> 
   40 #include <boost/uuid/uuid_io.hpp> 
   43 #include <QtGui/QFileDialog> 
   44 #include <QtGui/QMessageBox> 
   48     m_ui(new Ui::SQLiteConnectorDialogForm)
 
   78   if(m_datasource.get() != 0)
 
   80     setConnectionInfo(m_datasource->getConnInfo());
 
   82     m_ui->m_datasourceTitleLineEdit->setText(QString::fromStdString(m_datasource->getTitle()));
 
   84     m_ui->m_datasourceDescriptionTextEdit->setText(QString::fromStdString(m_datasource->getDescription()));
 
   93       throw te::qt::widgets::Exception(TR_QT_WIDGETS(
"Sorry! No data access driver loaded for SQLite data sources!"));
 
   95     std::map<std::string, std::string> dsInfo;
 
   97     getConnectionInfo(dsInfo);
 
  101     m_driver->setConnectionInfo(dsInfo);
 
  104     if(m_driver.get() == 0)
 
  105       throw te::qt::widgets::Exception(TR_QT_WIDGETS(
"Could not open SQLite data source due to an unknown error!"));
 
  107     QString title = m_ui->m_datasourceTitleLineEdit->text().trimmed();
 
  110       title = m_ui->m_fileLineEdit->text().trimmed();
 
  112     if(m_datasource.get() == 0)
 
  116       m_datasource->setConnInfo(dsInfo);
 
  118       boost::uuids::basic_random_generator<boost::mt19937> gen;
 
  119       boost::uuids::uuid u = gen();
 
  120       std::string dsId = boost::uuids::to_string(u);
 
  122       m_datasource->setId(dsId);
 
  123       m_driver->setId(dsId);
 
  124       m_datasource->setTitle(title.toUtf8().data());
 
  125       m_datasource->setDescription(m_ui->m_datasourceDescriptionTextEdit->toPlainText().trimmed().toUtf8().data());
 
  126       m_datasource->setAccessDriver(
"SQLITE");
 
  127       m_datasource->setType(
"SQLITE");
 
  131       m_driver->setId(m_datasource->getId());
 
  132       m_datasource->setConnInfo(dsInfo);
 
  133       m_datasource->setTitle(title.toUtf8().data());
 
  134       m_datasource->setDescription(m_ui->m_datasourceDescriptionTextEdit->toPlainText().trimmed().toUtf8().data());
 
  137   catch(
const std::exception& e)
 
  139     QMessageBox::warning(
this,
 
  140                          tr(
"TerraLib Qt Components"),
 
  146     QMessageBox::warning(
this,
 
  147                          tr(
"TerraLib Qt Components"),
 
  148                          tr(
"Unknown error while opening SQLite database!"));
 
  160       throw te::qt::widgets::Exception(TR_QT_WIDGETS(
"Sorry! No data access driver loaded for SQLite data sources!"));
 
  162     std::map<std::string, std::string> dsInfo;
 
  164     getConnectionInfo(dsInfo);
 
  168     ds->setConnectionInfo(dsInfo);
 
  172       throw te::qt::widgets::Exception(TR_QT_WIDGETS(
"Could not open SQLite database!"));
 
  174     QMessageBox::warning(
this,
 
  175                        tr(
"TerraLib Qt Components"),
 
  176                        tr(
"Data source is ok!"));
 
  178   catch(
const std::exception& e)
 
  180     QMessageBox::warning(
this,
 
  181                          tr(
"TerraLib Qt Components"),
 
  186     QMessageBox::warning(
this,
 
  187                          tr(
"TerraLib Qt Components"),
 
  188                          tr(
"Unknown error while testing SQLite data source!"));
 
  194   QMessageBox::warning(
this,
 
  195                        tr(
"TerraLib Qt Components"),
 
  196                        tr(
"Not implemented yet!\nWe will provide it soon!"));
 
  201   QString fileName = QFileDialog::getOpenFileName(
this, tr(
"Open SQLite Database"), QString(
""), tr(
"Database files (*.sqlite *.db);; All Files (*.*)"), 0, QFileDialog::ReadOnly);
 
  203   if(fileName.isEmpty())
 
  206   m_ui->m_fileLineEdit->setText(fileName);
 
  214   QString qstr = m_ui->m_fileLineEdit->text().trimmed();
 
  217     connInfo[
"SQLITE_FILE"] = 
":memory:";
 
  219     connInfo[
"SQLITE_FILE"] = qstr.toUtf8().data();
 
  221   connInfo[
"SQLITE_OPEN_READWRITE"] = m_ui->m_rwAccessCheckBox->isChecked() ? 
"FALSE" : 
"TRUE";
 
  223   connInfo[
"SQLITE_OPEN_CREATE"] = m_ui->m_createdbCheckBox->isChecked() ? 
"TRUE" : 
"FALSE";
 
  225   connInfo[
"SQLITE_CREATE_INTERMEDIATE_DIR"] = m_ui->m_createdbCheckBox->isChecked() ? 
"TRUE" : 
"FALSE";
 
  227   connInfo[
"SQLITE_CREATE_SPATIALITE_METADATA_TABLES"] = 
"TRUE";
 
  229   connInfo[
"SQLITE_HIDE_SPATIAL_METADATA_TABLES"] = 
"TRUE";
 
  234   std::map<std::string, std::string>::const_iterator it = connInfo.find(
"SQLITE_FILE");
 
  235   std::map<std::string, std::string>::const_iterator itend = connInfo.end();
 
  238     m_ui->m_fileLineEdit->setText(QString::fromUtf8(it->second.c_str()));
 
  240   it = connInfo.find(
"SQLITE_OPEN_READWRITE");
 
  242   m_ui->m_rwAccessCheckBox->setChecked((it != itend) && (boost::to_upper_copy(it->second) == 
"TRUE"));
 
  244   it = connInfo.find(
"SQLITE_OPEN_CREATE");
 
  246   m_ui->m_createdbCheckBox->setChecked((it != itend) && (boost::to_upper_copy(it->second) == 
"TRUE"));
 
  248   it = connInfo.find(
"SQLITE_CREATE_INTERMEDIATE_DIR");
 
  250   m_ui->m_allowIntermediateDirCheckBox->setChecked((it != itend) && (boost::to_upper_copy(it->second) == 
"TRUE"));
 
  252   it = connInfo.find(
"SQLITE_CREATE_OGR_METADATA_TABLES");
 
void openPushButtonPressed()
 
static bool find(const std::string &dsType)
 
boost::shared_ptr< DataSource > DataSourcePtr
 
const te::da::DataSourceInfoPtr & getDataSource() const 
 
void setConnectionInfo(const std::map< std::string, std::string > &connInfo)
 
void getConnectionInfo(std::map< std::string, std::string > &connInfo) const 
 
const te::da::DataSourcePtr & getDriver() const 
 
void searchDatabaseToolButtonPressed()
 
SQLiteConnectorDialog(QWidget *parent=0, Qt::WindowFlags f=0)
 
std::auto_ptr< Ui::SQLiteConnectorDialogForm > m_ui
 
static std::auto_ptr< DataSource > make(const std::string &dsType)
 
void testPushButtonPressed()
 
A class that represents a data source component. 
 
void set(const te::da::DataSourceInfoPtr &ds)
 
void helpPushButtonPressed()
 
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr