27 #include "../../../dataaccess/datasource/DataSource.h"
28 #include "../../../dataaccess/datasource/DataSourceCapabilities.h"
29 #include "../../../dataaccess/datasource/DataSourceFactory.h"
30 #include "../utils/ParameterTableWidget.h"
33 #include "ui_RasterInfoWidgetForm.h"
34 #include "ui_ParameterTableWidgetForm.h"
37 #include <QFileDialog>
40 #include <boost/tokenizer.hpp>
41 #include <boost/lexical_cast.hpp>
46 m_ui(new
Ui::RasterInfoWidgetForm),
51 QGridLayout* layout =
new QGridLayout(
m_ui->m_widget);
53 layout->addWidget(
m_table.get());
54 layout->setContentsMargins(0,0,0,0);
56 m_ui->m_openFileDlgToolButton->setIcon(QIcon::fromTheme(
"folder"));
57 m_ui->m_openDSDlgToolButton->setIcon(QIcon::fromTheme(
"datasource"));
59 m_table->getForm()->m_parameterTitle->setText(tr(
"Extra parameters"));
78 if(m_ui->m_fileRadioButton->isChecked())
82 else if(m_ui->m_memRadioButton->isChecked())
86 else if(m_ui->m_dsRadioButton->isChecked())
96 std::map<std::string, std::string> rinfo;
98 std::string name = getBaseName();
100 if(m_ui->m_fileRadioButton->isChecked())
102 std::string fileName = m_dir +
"/" + name + getExtension();
104 rinfo[
"URI"] = fileName;
106 else if(m_ui->m_memRadioButton->isChecked())
110 else if(m_ui->m_dsRadioButton->isChecked())
115 if(m_ui->m_overightRadioButton->isChecked() ==
false)
118 std::map<std::string, std::string> extra = m_table->getMap();
120 rinfo.insert(extra.begin(), extra.end());
128 std::map<std::string, std::string> rinfo;
130 std::string name = getBaseName();
132 if(m_ui->m_fileRadioButton->isChecked())
134 std::string str = boost::lexical_cast< std::string >( count );
135 std::string fileName = m_dir +
"/" + name +
"_" + str + getExtension();
137 rinfo[
"URI"] = fileName;
139 else if(m_ui->m_memRadioButton->isChecked())
143 else if(m_ui->m_dsRadioButton->isChecked())
148 if(m_ui->m_overightRadioButton->isChecked() ==
false)
151 std::map<std::string, std::string> extra = m_table->getMap();
153 rinfo.insert(extra.begin(), extra.end());
161 std::map<std::string, std::string> connInfoRaster;
162 connInfoRaster[
"SOURCE"] = m_dir +
"/";
165 dsPtr->setConnectionInfo( connInfoRaster );
173 std::string name = getBaseName();
175 if(m_ui->m_fileRadioButton->isChecked())
177 name += getExtension();
185 std::string name =
"";
187 if(m_ui->m_nameLineEdit->text().isEmpty() ==
false)
188 name = m_ui->m_nameLineEdit->text().toStdString();
190 std::size_t pos = name.find(
".");
191 if(pos != std::string::npos)
193 name = name.substr(0, pos);
201 std::string ext =
"." + m_ui->m_extComboBox->currentText().toStdString();
213 return m_ui->m_overightRadioButton->isChecked();
218 if(m_ui->m_fileRadioButton->isChecked())
220 std::string name = getBaseName();
222 std::string fileName = m_dir +
"/" + name + getExtension();
224 QFile file(fileName.c_str());
226 return file.exists();
234 std::string name =
"";
236 if(m_ui->m_nameLineEdit->text().isEmpty() ==
false)
238 name = m_ui->m_nameLineEdit->text().toStdString();
240 QFileInfo file(name.c_str());
242 name = file.baseName().toStdString();
251 m_ui->m_extComboBox->clear();
262 std::string exts = mapSpecCap[
"SUPPORTED_EXTENSIONS"];
265 typedef boost::tokenizer< boost::escaped_list_separator<char> > Tokenizer;
266 boost::escaped_list_separator<char> sep(
'\\',
';',
'\"');
268 std::vector<std::string> extVec;
270 Tokenizer tok(exts, sep);
271 extVec.assign(tok.begin(), tok.end());
275 for(std::size_t t = 0; t < extVec.size(); ++t)
277 m_ui->m_extComboBox->addItem(extVec[t].c_str());
279 if(extVec[t] ==
"tif")
283 m_ui->m_extComboBox->setCurrentIndex(curIdx);
288 QString dir = QFileDialog::getExistingDirectory(
this, tr(
"Open Directory"),
te::qt::widgets::GetFilePathFromSettings(
"rp_raster_info"), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
290 if(dir.isEmpty() ==
false)
292 m_dir = dir.replace(QRegExp(
"\\\\"),
"/").toStdString();
294 m_ui->m_fileNameLineEdit->setText(m_dir.c_str());
A class that represents the known capabilities of a specific data source, i.e. this class informs all...
static std::auto_ptr< DataSource > make(const std::string &dsType)
const std::map< std::string, std::string > & getSpecificCapabilities() const