27 #include "../../../dataaccess/dataset/DataSetType.h" 
   28 #include "../../../dataaccess/dataset/DataSetTypeConverter.h" 
   29 #include "../../../dataaccess/dataset/Index.h" 
   30 #include "../../../dataaccess/dataset/PrimaryKey.h" 
   31 #include "../../../dataaccess/dataset/UniqueKey.h" 
   32 #include "../../../dataaccess/datasource/DataSourceTransactor.h" 
   33 #include "../../../dataaccess/datasource/DataSourceManager.h" 
   34 #include "../../../dataaccess/utils/Utils.h" 
   35 #include "../../../geometry/GeometryProperty.h" 
   36 #include "../../../qt/widgets/utils/ScopedCursor.h" 
   37 #include "../../../qt/widgets/srs/SRSManagerDialog.h" 
   38 #include "../property/ConstraintsIndexesListWidget.h" 
   39 #include "../property/DataSetAdapterWidget.h" 
   41 #include "ui_DataSetOptionsWizardPageForm.h" 
   47 #include <boost/algorithm/string/replace.hpp> 
   48 #include <boost/lexical_cast.hpp> 
   52 #include <QMessageBox> 
   55   : QWizardPage(parent),
 
   56     m_ui(new Ui::DataSetOptionsWizardPageForm)
 
   63   QGridLayout* constraintLayout = 
new QGridLayout(
m_ui->m_constraintWidget);
 
   65   constraintLayout->setContentsMargins(0,0,0,0);
 
   68   QGridLayout* dataSetLayout = 
new QGridLayout(
m_ui->m_dataSetWidget);
 
   70   dataSetLayout->setContentsMargins(0,0,0,0);
 
   75   connect(
m_ui->m_selectedDatasetListWidget, SIGNAL(itemPressed(QListWidgetItem*)), 
this, SLOT(
datasetPressed(QListWidgetItem*)));
 
   91   m_ui->m_selectedDatasetListWidget->clear();
 
   97   m_datasource = datasource;
 
   99   m_targetDatasource = targetDatasource;
 
  103   for(std::list<te::da::DataSetTypePtr>::const_iterator it = datasets.begin(); it != datasets.end(); ++it)
 
  108     if((*it)->size() == 0)
 
  117     std::size_t idx = name.find(
".");
 
  118     if (idx != std::string::npos)
 
  120         name = name.substr(idx + 1, name.size() - 1);
 
  132     m_datasets.insert(std::map<te::da::DataSetTypePtr, te::da::DataSetTypeConverter*>::value_type((*it), converter));
 
  135   for(std::list<te::da::DataSetTypePtr>::const_iterator it = datasets.begin(); it != datasets.end(); ++it)
 
  137     QString title = QString::fromStdString((*it)->getTitle());
 
  139     QString name = QString::fromStdString((*it)->getName());
 
  144     QListWidgetItem* item = 
new QListWidgetItem(title);
 
  146     m_ui->m_selectedDatasetListWidget->addItem(item);
 
  148     if(datasets.size() == 1)
 
  150       item->setSelected(
true);
 
  151       datasetPressed(item);
 
  155   if(datasets.size() != 1)
 
  156     setControlsEnabled(
false);
 
  166   m_ui->m_dataSetWidget->setVisible(!mode);
 
  167   m_ui->m_constraintWidget->setVisible(!mode);
 
  172   QListWidgetItem* item = m_ui->m_selectedDatasetListWidget->currentItem();
 
  177   std::string dataSetAdapterName = item->text().toStdString();
 
  179   std::map<te::da::DataSetTypePtr, te::da::DataSetTypeConverter*>::iterator it = m_datasets.begin();
 
  181   while(it != m_datasets.end())
 
  183     if(it->second->getConvertee()->getName() == dataSetAdapterName)
 
  185       it->second->getResult()->setName(m_ui->m_datasetNameLineEdit->text().trimmed().toStdString());
 
  186       it->second->getResult()->setTitle(m_ui->m_datasetTitleLineEdit->text().trimmed().toStdString());
 
  188       if(it->second->getResult()->hasGeom())
 
  193           geomProp->
setSRID(boost::lexical_cast<int>(m_ui->m_sridLineEdit->text().trimmed().toStdString()));
 
  196       if(it->second->getResult()->getPrimaryKey())
 
  199         pk->
setName(it->second->getResult()->getName() + 
"_pk");
 
  202         m_constraintWidget->setDataSetType(it->second->getResult());
 
  214   srsDialog.setWindowTitle(tr(
"Choose the SRS"));
 
  216   if(srsDialog.exec() != QDialog::Rejected)
 
  219     m_ui->m_sridLineEdit->setText(QString::number(srid.first));
 
  228   std::string dataSetAdapterName = item->text().toStdString();
 
  230   std::map<te::da::DataSetTypePtr, te::da::DataSetTypeConverter*>::iterator it = m_datasets.begin();
 
  232   while(it != m_datasets.end())
 
  234     if(it->second->getConvertee()->getName() == dataSetAdapterName)
 
  239       m_ui->m_datasetNameLineEdit->setEnabled(
true);
 
  240       m_ui->m_datasetNameLineEdit->setText(QString::fromStdString(dataset->
getName()));
 
  242       m_ui->m_datasetTitleLineEdit->setEnabled(
true);
 
  243       m_ui->m_datasetTitleLineEdit->setText(QString::fromStdString(dataset->
getTitle()));
 
  247         m_ui->m_sridSearchToolButton->setEnabled(
true);
 
  248         m_ui->m_sridLineEdit->setEnabled(
true);
 
  253           m_ui->m_sridLineEdit->setText(QString::fromStdString(boost::lexical_cast<std::string>(geomProp->
getSRID())));
 
  257         m_ui->m_sridSearchToolButton->setEnabled(
false);
 
  258         m_ui->m_sridLineEdit->setEnabled(
false);
 
  262       m_dataSetAdapterWidget->setAdapterParameters(it->second->getConvertee(), it->second, m_targetDatasource);
 
  265       m_constraintWidget->setDataSetType(dataset);
 
  328    QListWidgetItem* item = m_ui->m_selectedDatasetListWidget->currentItem();
 
  333   std::string dataSetAdapterName = item->text().toStdString();
 
  335   std::map<te::da::DataSetTypePtr, te::da::DataSetTypeConverter*>::const_iterator it = m_datasets.begin();
 
  337   while(it != m_datasets.end())
 
  339     if(it->second->getConvertee()->getName() == dataSetAdapterName)
 
  351   m_ui->m_datasetNameLineEdit->clear();
 
  352   m_ui->m_datasetTitleLineEdit->clear();
 
  353   m_ui->m_sridLineEdit->clear();
 
  358   m_ui->m_datasetNameLineEdit->setEnabled(enabled);
 
  359   m_ui->m_datasetTitleLineEdit->setEnabled(enabled);
 
  360   m_ui->m_sridLineEdit->setEnabled(enabled);
 
  361   m_ui->m_sridSearchToolButton->setEnabled(enabled);
 
  366   m_name = name.toStdString();
 
  371   return dataset->getName() == m_name;
 
virtual void setName(const std::string &name)
It sets the constraint name. 
 
bool operator()(const te::da::DataSetTypePtr &dataset) const 
 
DataSetOptionsWizardPage(QWidget *parent=0)
 
void set(const std::list< te::da::DataSetTypePtr > &datasets, const te::da::DataSourceInfoPtr &datasource, const te::da::DataSourceInfoPtr &targetDatasource)
 
TEDATAACCESSEXPORT void LoadProperties(te::da::DataSetType *dataset, const std::string &datasourceId)
 
void setSRID(int srid)
It sets the spatial reference system identifier associated to this property. 
 
boost::shared_ptr< DataSetType > DataSetTypePtr
 
boost::shared_ptr< DataSource > DataSourcePtr
 
bool hasGeom() const 
It returns true if the DataSetType has at least one geometry property; otherwise, it returns false...
 
A class that models the description of a dataset. 
 
DataSetType * getResult() const 
 
PrimaryKey * getPrimaryKey() const 
It returns the primary key associated to the dataset type. 
 
const std::map< te::da::DataSetTypePtr, te::da::DataSetTypeConverter * > & getDatasets() const 
 
~DataSetOptionsWizardPage()
 
An converter for DataSetType. 
 
void showSimpleMode(const bool &mode)
 
void setName(const std::string &name)
It sets the property name. 
 
int getSRID() const 
It returns the spatial reference system identifier associated to this property. 
 
static DataSourceManager & getInstance()
It returns a reference to the singleton instance. 
 
FindByName(const QString &name)
 
std::auto_ptr< Ui::DataSetOptionsWizardPageForm > m_ui
 
te::da::DataSetTypePtr getSelectedDataSet() const 
 
std::auto_ptr< te::qt::widgets::ConstraintsIndexesListWidget > m_constraintWidget
 
void setControlsEnabled(bool enabled)
 
Property * findFirstPropertyOfType(const int t) const 
returns the first property of the given data type. Caller doesn't take ownership of the returned poin...
 
It describes a primary key (pk) constraint. 
 
void datasetPressed(QListWidgetItem *item)
 
void sridSearchToolButtonPressed()
 
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr
 
std::auto_ptr< te::qt::widgets::DataSetAdapterWidget > m_dataSetAdapterWidget
 
const std::string & getTitle() const 
A human descriptive title for the DataSetType. 
 
const std::string & getName() const 
It returns the property name.