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_SQLiteCreatorDialogForm.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::SQLiteCreatorDialogForm)
76 throw te::qt::widgets::Exception(TR_QT_WIDGETS(
"Sorry! No data access driver loaded for SQLite data sources!"));
78 std::map<std::string, std::string> dsInfo;
80 getConnectionInfo(dsInfo);
85 catch(
const std::exception& e)
87 QMessageBox::warning(
this,
88 tr(
"TerraLib Qt Components"),
94 QMessageBox::warning(
this,
95 tr(
"TerraLib Qt Components"),
96 tr(
"Unknown error while opening SQLite database!"));
105 QMessageBox::warning(
this,
106 tr(
"TerraLib Qt Components"),
107 tr(
"Not implemented yet!\nWe will provide it soon!"));
112 QString fileName = QFileDialog::getSaveFileName(
this, tr(
"Save SQLite Database"), QString(
""), tr(
"Database files (*.sqlite *.db);; All Files (*.*)"), 0, QFileDialog::ReadOnly);
114 if(fileName.isEmpty())
117 m_ui->m_fileLineEdit->setText(fileName);
125 QString qstr = m_ui->m_fileLineEdit->text().trimmed();
128 connInfo[
"SQLITE_FILE"] =
":memory:";
130 connInfo[
"SQLITE_FILE"] = qstr.toStdString();
132 connInfo[
"SQLITE_CREATE_INTERMEDIATE_DIR"] = m_ui->m_allowIntermediateDirCheckBox->isChecked() ?
"TRUE" :
"FALSE";
134 connInfo[
"SQLITE_CREATE_SPATIALITE_METADATA_TABLES"] =
"TRUE";
136 connInfo[
"SQLITE_HIDE_SPATIAL_METADATA_TABLES"] =
"TRUE";
static bool find(const std::string &dsType)
const te::da::DataSourcePtr & getDriver() const
boost::shared_ptr< DataSource > DataSourcePtr
void helpPushButtonPressed()
void searchDatabaseToolButtonPressed()
void applyPushButtonPressed()
static std::auto_ptr< DataSource > create(const std::string &dsType, const std::map< std::string, std::string > &dsInfo)
It creates a new repository for a data source.
SQLiteCreatorDialog(QWidget *parent=0, Qt::WindowFlags f=0)
const te::da::DataSourceInfoPtr & getDataSource() const
void getConnectionInfo(std::map< std::string, std::string > &connInfo) const
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr
std::auto_ptr< Ui::SQLiteCreatorDialogForm > m_ui