22 #include "../../../dataaccess/dataset/DataSet.h" 23 #include "../../../dataaccess/utils/Utils.h" 24 #include "../../widgets/utils/FileDialog.h" 25 #include "../../widgets/datasource/selector/DataSourceSelectorDialog.h" 27 #include "ui_VectorizationWizardPageForm.h" 31 #include <QFileDialog> 32 #include <QIntValidator> 33 #include <QMessageBox> 36 #include <boost/algorithm/string.hpp> 37 #include <boost/filesystem.hpp> 38 #include <boost/lexical_cast.hpp> 43 m_ui.reset(
new Ui::VectorizationWizardPageForm);
48 this->setTitle(tr(
"Vectorization"));
49 this->setSubTitle(tr(
"Define the vectorization parameters."));
51 m_ui->m_targetDatasourceToolButton->setIcon(QIcon::fromTheme(
"datasource"));
56 m_ui->m_maxGeomLineEdit->setValidator(
new QIntValidator(
this));
70 m_ui->m_layerLineEdit->setText(
m_layer->getTitle().c_str());
73 m_ui->m_bandComboBox->clear();
76 std::unique_ptr<te::da::DataSet>
ds =
m_layer->getData();
82 std::unique_ptr<te::rst::Raster> inputRst = ds->getRaster(rpos);
86 for(
unsigned int i = 0; i < inputRst->getNumberOfBands(); ++i)
88 m_ui->m_bandComboBox->addItem(QString::number(i));
99 std::unique_ptr<te::da::DataSet>
ds =
m_layer->getData();
103 return ds->getRaster(rpos);
108 return m_ui->m_bandComboBox->currentText().toUInt();
113 if(!
m_ui->m_maxGeomLineEdit->text().isEmpty())
114 maxGeom =
m_ui->m_maxGeomLineEdit->text().toInt();
116 return m_ui->m_maxGeomCheckBox->isChecked();
131 if(
m_ui->m_newLayerNameLineEdit->text().isEmpty())
134 return m_ui->m_newLayerNameLineEdit->text().toUtf8().data();
139 if(
m_ui->m_repositoryLineEdit->text().isEmpty())
142 return m_ui->m_repositoryLineEdit->text().toUtf8().data();
147 m_ui->m_newLayerNameLineEdit->clear();
148 m_ui->m_newLayerNameLineEdit->setEnabled(
true);
152 std::list<te::da::DataSourceInfoPtr> dsPtrList = dlg.
getSelecteds();
154 if(dsPtrList.size() <= 0)
157 std::list<te::da::DataSourceInfoPtr>::iterator it = dsPtrList.begin();
159 m_ui->m_repositoryLineEdit->setText(QString(it->get()->getTitle().c_str()));
168 m_ui->m_newLayerNameLineEdit->clear();
169 m_ui->m_repositoryLineEdit->clear();
179 QMessageBox::warning(
this, tr(
"File information"), ex.
what());
184 QMessageBox::warning(
this, tr(
"File information"), tr(
"Output layer is invalid."));
188 m_ui->m_newLayerNameLineEdit->setText(fileDialog.
getFileName().c_str());
189 m_ui->m_repositoryLineEdit->setText(fileDialog.
getPath().c_str());
192 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.
virtual const char * what() const
It outputs the exception message.
VectorizationWizardPage(QWidget *parent=0)
static te::dt::Date ds(2010, 01, 01)
te::da::DataSourceInfoPtr getDataSourceInfo()
bool hasMaxGeom(unsigned int &maxGeom)
void onTargetDatasourceToolButtonPressed()
te::map::AbstractLayerPtr m_layer
std::string getLayerName()
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...
~VectorizationWizardPage()
TEDATAACCESSEXPORT std::size_t GetFirstPropertyPos(const te::da::DataSet *dataset, int datatype)
void onTargetFileToolButtonPressed()
std::unique_ptr< te::rst::Raster > getRaster()
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr
std::unique_ptr< Ui::VectorizationWizardPageForm > m_ui
std::string getRepositoryName()
te::da::DataSourceInfoPtr m_outputDatasource
DataSource information.