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" 
   34 #include "ui_WMSConnectorDialogForm.h" 
   37 #include <boost/algorithm/string/case_conv.hpp> 
   38 #include <boost/uuid/random_generator.hpp> 
   39 #include <boost/uuid/uuid_io.hpp> 
   40 #include <boost/lexical_cast.hpp> 
   43 #include <QMessageBox> 
   47     m_ui(new Ui::WMSConnectorDialogForm)
 
   76   if(m_datasource.get() != 0)
 
   78     const std::map<std::string, std::string>& connInfo = m_datasource->getConnInfo();
 
   80     std::map<std::string, std::string>::const_iterator it = connInfo.find(
"URI");
 
   81     if(it != connInfo.end())
 
   82       m_ui->m_serverLineEdit->setText(QString::fromStdString(it->second));
 
   84     m_ui->m_datasourceTitleLineEdit->setText(QString::fromStdString(m_datasource->getTitle()));
 
   86     m_ui->m_dataSourceDescriptionTextEdit->setText(QString::fromStdString(m_datasource->getDescription()));
 
   96       throw te::qt::widgets::Exception(
TE_TR(
"Sorry! No data access driver loaded for WMS data sources!"));
 
   99     std::map<std::string, std::string> dsInfo;
 
  100     getConnectionInfo(dsInfo);
 
  104     ds->setConnectionInfo(dsInfo);
 
  106     m_driver.reset(ds.release());
 
  108     if(m_driver.get() == 0)
 
  109       throw te::qt::widgets::Exception(
TE_TR(
"Could not open WMS data source due to an unknown error!"));
 
  111     QString title = m_ui->m_datasourceTitleLineEdit->text().trimmed();
 
  114       title = m_ui->m_serverLineEdit->text().trimmed();
 
  116     if(m_datasource.get() == 0)
 
  121       m_datasource->setConnInfo(dsInfo);
 
  123       boost::uuids::basic_random_generator<boost::mt19937> gen;
 
  124       boost::uuids::uuid u = gen();
 
  125       std::string dsId = boost::uuids::to_string(u);
 
  127       m_datasource->setId(dsId);
 
  128       m_driver->setId(dsId);
 
  129       m_datasource->setTitle(title.toStdString());
 
  130       m_datasource->setDescription(m_ui->m_dataSourceDescriptionTextEdit->toPlainText().trimmed().toStdString());
 
  131       m_datasource->setAccessDriver(
"WMS");
 
  132       m_datasource->setType(
"WMS");
 
  136       m_driver->setId(m_datasource->getId());
 
  137       m_datasource->setConnInfo(dsInfo);
 
  138       m_datasource->setTitle(title.toStdString());
 
  139       m_datasource->setDescription(m_ui->m_dataSourceDescriptionTextEdit->toPlainText().trimmed().toStdString());
 
  142   catch(
const std::exception& e)
 
  144     QMessageBox::warning(
this,
 
  145                          tr(
"TerraLib Qt Components"),
 
  150     QMessageBox::warning(
this,
 
  151                          tr(
"TerraLib Qt Components"),
 
  152                          tr(
"Unknown error while opening WMS data source!"));
 
  164       throw te::qt::widgets::Exception(
TE_TR(
"Sorry! No data access driver loaded for WMS data sources!"));
 
  167     std::map<std::string, std::string> dsInfo;
 
  168     getConnectionInfo(dsInfo);
 
  174       throw te::qt::widgets::Exception(
TE_TR(
"Could not open WMS server!"));
 
  176     ds->setConnectionInfo(dsInfo);
 
  179     QMessageBox::information(
this,
 
  180                              tr(
"TerraLib Qt Components"),
 
  181                              tr(
"Data source is ok!"));
 
  185   catch(
const std::exception& e)
 
  187     QMessageBox::warning(
this,
 
  188                          tr(
"TerraLib Qt Components"),
 
  193     QMessageBox::warning(
this,
 
  194                          tr(
"TerraLib Qt Components"),
 
  195                          tr(
"Unknown error while testing WMS data source!"));
 
  201   QMessageBox::warning(
this,
 
  202                        tr(
"TerraLib Qt Components"),
 
  203                        tr(
"Not implemented yet!\nWe will provide it soon!"));
 
  211   QString url = m_ui->m_serverLineEdit->text().trimmed();
 
  213     throw te::qt::widgets::Exception(
TE_TR(
"Please define the server address first!"));
 
  215   if(!url.startsWith(
"WMS:"))
 
  218   connInfo[
"URI"] = url.toStdString();
 
std::auto_ptr< Ui::WMSConnectorDialogForm > m_ui
 
static bool find(const std::string &dsType)
 
boost::shared_ptr< DataSource > DataSourcePtr
 
void set(const te::da::DataSourceInfoPtr &ds)
 
void helpPushButtonPressed()
 
#define TE_TR(message)
It marks a string in order to get translated. 
 
const te::da::DataSourceInfoPtr & getDataSource() const 
 
static std::auto_ptr< DataSource > make(const std::string &dsType)
 
const te::da::DataSourcePtr & getDriver() const 
 
WMSConnectorDialog(QWidget *parent=0, Qt::WindowFlags f=0)
 
void getConnectionInfo(std::map< std::string, std::string > &connInfo) const 
 
A dialog window for showing the WMS connector widget. 
 
void openPushButtonPressed()
 
A class that represents a data source component. 
 
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr
 
void testPushButtonPressed()