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 "../../../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 <QtGui/QFileDialog> 
   45 #include <QtGui/QMessageBox> 
   49     m_ui(new Ui::ADOCreatorDialogForm)
 
   55   m_ui->m_providerComboBox->addItem(
"Microsoft.Jet.OLEDB.4.0");
 
   62   m_ui->m_helpPushButton->setNameSpace(
"dpi.inpe.br.plugins");
 
   63   m_ui->m_helpPushButton->setPageReference(
"plugins/ado/ado_creator.html");
 
   86       throw te::qt::widgets::Exception(
TR_QT_WIDGETS(
"Sorry! No data access driver loaded for ADO data sources!"));
 
   89     std::map<std::string, std::string> dsInfo;
 
   91     getConnectionInfo(dsInfo);
 
   97     std::map<std::string, std::string> connInfo;
 
   98     connInfo[
"DB_NAME"] = dsInfo[
"DB_NAME"];
 
   99     connInfo[
"PROVIDER"] = dsInfo[
"PROVIDER"];
 
  100     if(!dsInfo[
"PASSWORD"].empty())
 
  101       connInfo[
"PASSWORD"] = dsInfo[
"PASSWORD"];
 
  104     ds->setConnectionInfo(connInfo);
 
  107     m_driver.reset(ds.release());
 
  109     if(m_driver.get() == 0)
 
  110       throw te::qt::widgets::Exception(
TR_QT_WIDGETS(
"Could not open ADO data source due to an unknown error!"));
 
  112     QString title = m_ui->m_fileLineEdit->text().trimmed();
 
  114     if(m_datasource.get() == 0)
 
  119       m_datasource->setConnInfo(connInfo);
 
  121       boost::uuids::basic_random_generator<boost::mt19937> gen;
 
  122       boost::uuids::uuid u = gen();
 
  123       std::string dsId = boost::uuids::to_string(u);
 
  125       m_datasource->setId(dsId);
 
  126       m_driver->setId(dsId);
 
  127       m_datasource->setTitle(title.toUtf8().data());
 
  128       m_datasource->setDescription(
"");
 
  129       m_datasource->setAccessDriver(
"ADO");
 
  130       m_datasource->setType(
"ADO");
 
  134       m_driver->setId(m_datasource->getId());
 
  135       m_datasource->setConnInfo(connInfo);
 
  136       m_datasource->setTitle(title.toUtf8().data());
 
  137       m_datasource->setDescription(
"");
 
  140   catch(
const std::exception& e)
 
  142     QMessageBox::warning(
this,
 
  143                          tr(
"TerraLib Qt Components"),
 
  149     QMessageBox::warning(
this,
 
  150                          tr(
"TerraLib Qt Components"),
 
  151                          tr(
"Unknown error while opening ADO database!"));
 
  160   QMessageBox::warning(
this,
 
  161                        tr(
"TerraLib Qt Components"),
 
  162                        tr(
"Not implemented yet!\nWe will provide it soon!"));
 
  167   QString fileName = QFileDialog::getSaveFileName(
this, tr(
"Save ADO Database"), 
te::qt::widgets::GetFilePathFromSettings(
"vector"), tr(
"Database files (*.accdb *.mdb);; All Files (*.*)"), 0, QFileDialog::ReadOnly);
 
  169   if(fileName.isEmpty())
 
  172   m_ui->m_fileLineEdit->setText(fileName);
 
  174   QFileInfo info(fileName);
 
  184   QString qstr = m_ui->m_fileLineEdit->text().trimmed();
 
  187     connInfo[
"DB_NAME"] = qstr.toStdString();
 
  189   qstr = m_ui->m_passwordLineEdit->text().trimmed();
 
  192     connInfo[
"PASSWORD"] = qstr.toStdString();
 
  194   qstr = m_ui->m_providerComboBox->currentText().trimmed();
 
  197     connInfo[
"PROVIDER"] = qstr.toStdString();
 
  199   if(m_ui->m_createOGCTablesCheckBox->isChecked())
 
  200     connInfo[
"CREATE_OGC_METADATA_TABLES"] = 
"TRUE";
 
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. 
 
const te::da::DataSourceInfoPtr & getDataSource() const 
 
TEQTWIDGETSEXPORT QString GetFilePathFromSettings(const QString &typeFile)
Returns the value of the last saved file path for the typeFile required. 
 
A class that represents a data source component. 
 
TEQTWIDGETSEXPORT void AddFilePathToSettings(const QString &path, const QString &typeFile)
Save last used path in QSettings. 
 
static std::auto_ptr< DataSource > make(const std::string &dsType)
 
void getConnectionInfo(std::map< std::string, std::string > &connInfo) const 
 
static bool find(const std::string &dsType)
 
void helpPushButtonPressed()
 
boost::shared_ptr< DataSource > DataSourcePtr
 
ADOCreatorDialog(QWidget *parent=0, Qt::WindowFlags f=0)
 
void searchDatabaseToolButtonPressed()
 
const te::da::DataSourcePtr & getDriver() const 
 
#define TR_QT_WIDGETS(message)
It marks a string in order to get translated. This is a special mark used in the TerraLib Qt Widgets ...
 
std::auto_ptr< Ui::ADOCreatorDialogForm > m_ui
 
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr
 
void applyPushButtonPressed()