22 #include "../../../dataaccess/dataset/DataSet.h"
23 #include "../../../dataaccess/utils/Utils.h"
24 #include "../../widgets/datasource/selector/DataSourceSelectorDialog.h"
26 #include "ui_VectorizationWizardPageForm.h"
30 #include <QFileDialog>
31 #include <QIntValidator>
34 #include <boost/algorithm/string.hpp>
35 #include <boost/filesystem.hpp>
36 #include <boost/lexical_cast.hpp>
41 m_ui.reset(
new Ui::VectorizationWizardPageForm);
46 this->setTitle(tr(
"Vectorization"));
47 this->setSubTitle(tr(
"Define the vectorization parameters."));
52 m_ui->m_maxGeomLineEdit->setValidator(
new QIntValidator(
this));
69 m_ui->m_layerLineEdit->setText(m_layer->getTitle().c_str());
72 m_ui->m_bandComboBox->clear();
75 std::auto_ptr<te::da::DataSet> ds = m_layer->getData();
81 std::auto_ptr<te::rst::Raster> inputRst = ds->getRaster(rpos);
85 for(
unsigned int i = 0; i < inputRst->getNumberOfBands(); ++i)
87 m_ui->m_bandComboBox->addItem(QString::number(i));
95 assert(m_layer.get());
98 std::auto_ptr<te::da::DataSet> ds = m_layer->getData();
102 return ds->getRaster(rpos);
107 return m_ui->m_bandComboBox->currentText().toUInt();
112 if(!m_ui->m_maxGeomLineEdit->text().isEmpty())
113 maxGeom = m_ui->m_maxGeomLineEdit->text().toInt();
115 return m_ui->m_maxGeomCheckBox->isChecked();
125 return m_outputDatasource;
130 return m_ui->m_newLayerNameLineEdit->text().toStdString();
135 return m_ui->m_repositoryLineEdit->text().toStdString();
140 m_ui->m_newLayerNameLineEdit->clear();
141 m_ui->m_newLayerNameLineEdit->setEnabled(
true);
145 std::list<te::da::DataSourceInfoPtr> dsPtrList = dlg.
getSelecteds();
147 if(dsPtrList.size() <= 0)
150 std::list<te::da::DataSourceInfoPtr>::iterator it = dsPtrList.begin();
152 m_ui->m_repositoryLineEdit->setText(QString(it->get()->getTitle().c_str()));
154 m_outputDatasource = *it;
161 m_ui->m_newLayerNameLineEdit->clear();
162 m_ui->m_repositoryLineEdit->clear();
164 QString fileName = QFileDialog::getSaveFileName(
this, tr(
"Save as..."),
165 QString(), tr(
"Shapefile (*.shp *.SHP);;"),0, QFileDialog::DontConfirmOverwrite);
167 if(fileName.isEmpty())
170 boost::filesystem::path outfile(fileName.toStdString());
171 std::string aux = outfile.leaf().string();
172 m_ui->m_newLayerNameLineEdit->setText(aux.c_str());
173 aux = outfile.string();
174 m_ui->m_repositoryLineEdit->setText(aux.c_str());
177 m_ui->m_newLayerNameLineEdit->setEnabled(
false);
bool outputDataSourceToFile()
void setLayer(te::map::AbstractLayerPtr layer)
This method is used to set the selected layer for vectorization operation.
VectorizationWizardPage(QWidget *parent=0)
te::da::DataSourceInfoPtr getDataSourceInfo()
bool hasMaxGeom(unsigned int &maxGeom)
void onTargetDatasourceToolButtonPressed()
std::auto_ptr< te::rst::Raster > getRaster()
std::string getLayerName()
std::auto_ptr< Ui::VectorizationWizardPageForm > m_ui
~VectorizationWizardPage()
TEDATAACCESSEXPORT std::size_t GetFirstPropertyPos(const te::da::DataSet *dataset, int datatype)
void onTargetFileToolButtonPressed()
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr
std::string getRepositoryName()