27 #include "../../core/logger/Logger.h" 28 #include "../../common/progress/ProgressManager.h" 29 #include "../../core/translator/Translator.h" 30 #include "../../common/STLUtils.h" 31 #include "../../dataaccess/dataset/DataSetType.h" 32 #include "../../dataaccess/dataset/DataSetTypeConverter.h" 33 #include "../../dataaccess/dataset/ObjectIdSet.h" 34 #include "../../dataaccess/datasource/DataSourceCapabilities.h" 35 #include "../../dataaccess/datasource/DataSource.h" 36 #include "../../dataaccess/datasource/DataSourceInfo.h" 37 #include "../../dataaccess/datasource/DataSourceInfoManager.h" 38 #include "../../dataaccess/datasource/DataSourceFactory.h" 39 #include "../../dataaccess/datasource/DataSourceManager.h" 40 #include "../../dataaccess/utils/Utils.h" 41 #include "../../datatype/Enums.h" 42 #include "../../datatype/Property.h" 43 #include "../../maptools/AbstractLayer.h" 44 #include "../../memory/DataSet.h" 45 #include "../../qt/af/Utils.h" 46 #include "../../qt/widgets/datasource/selector/DataSourceSelectorDialog.h" 47 #include "../../qt/widgets/layer/utils/DataSet2Layer.h" 48 #include "../../qt/widgets/progress/ProgressViewerDialog.h" 49 #include "../../qt/widgets/property/DataSetAdapterWidget.h" 50 #include "../../qt/widgets/table/DataSetTableView.h" 51 #include "../../qt/widgets/Utils.h" 52 #include "../../statistics/core/Utils.h" 53 #include "../Config.h" 54 #include "../Exception.h" 56 #include "ui_ImportTableDialogForm.h" 60 #include <QFileDialog> 61 #include <QGridLayout> 62 #include <QMessageBox> 65 #include <boost/algorithm/string.hpp> 66 #include <boost/filesystem.hpp> 67 #include <boost/uuid/random_generator.hpp> 68 #include <boost/uuid/uuid_io.hpp> 72 m_ui(new
Ui::ImportTableDialogForm)
79 QGridLayout* dataPreviewLayout =
new QGridLayout(
m_ui->m_dataPreviewFrame);
80 dataPreviewLayout->addWidget(
m_tblView.get());
81 dataPreviewLayout->setContentsMargins(0, 0, 0, 0);
84 m_tblView->verticalHeader()->setVisible(
false);
85 m_tblView->setSelectionMode(QAbstractItemView::NoSelection);
114 QString fileName = QFileDialog::getOpenFileName(
this, tr(
"Open Textual File"),
te::qt::widgets::GetFilePathFromSettings(
"tabular"), tr(
"Comma Separated Value (*.csv *.CSV);; dBASE (*.dbf *.DBF)"),
115 0, QFileDialog::ReadOnly);
117 if(fileName.isEmpty())
120 QFileInfo info(fileName);
124 std::string ogrInfo(
"connection_string=" + std::string(fileName.toUtf8().data()));
125 std::string connInfo(
"file://");
126 connInfo += fileName.toUtf8().data();
128 boost::filesystem::path uri(fileName.toUtf8().data());
129 std::string
file = uri.stem().string();
132 static boost::uuids::basic_random_generator<boost::mt19937> gen;
133 boost::uuids::uuid u = gen();
136 dsInfo->setConnInfo(connInfo);
137 dsInfo->setId(boost::uuids::to_string(u));
138 dsInfo->setTitle(fileName.toUtf8().data());
139 dsInfo->setDescription(
"");
140 dsInfo->setAccessDriver(
"OGR");
141 dsInfo->setType(
"OGR");
152 std::vector<std::string> datasetNames =
m_dataSource->getDataSetNames();
154 if(!datasetNames.empty())
158 QMessageBox::critical(
this, tr(
"Error"),tr(
"The file could not be read!"));
162 m_ui->m_fileLineEdit->setText(fileName);
168 std::vector<std::size_t> properties;
169 for(std::size_t i = 0; i <
m_dataSet->getNumProperties(); ++i)
170 properties.push_back(i);
175 m_tblView->setDataSet(memFeature.release());
179 catch(
const std::exception& e)
181 QMessageBox::warning(
this, tr(
"Tabular File"), e.what());
187 QMessageBox::information(
this,
"Help",
"Under development");
static std::unique_ptr< DataSource > make(const std::string &driver, const te::core::URI &connInfo)
A dialog to import table with address to geocoding operation.
ImportTableDialog(QWidget *parent=0, Qt::WindowFlags f=0)
boost::shared_ptr< DataSource > DataSourcePtr
std::unique_ptr< te::da::DataSet > m_dataSet
const te::da::DataSet & getDataSet()
void onCancelPushButtonClicked()
An converter for DataSetType.
std::unique_ptr< te::qt::widgets::DataSetTableView > m_tblView
te::da::DataSourcePtr getDataSource()
void onOkPushButtonClicked()
Implementation of a random-access dataset class for the TerraLib In-Memory Data Access driver...
static DataSourceInfoManager & getInstance()
It returns a reference to the singleton instance.
std::unique_ptr< Ui::ImportTableDialogForm > m_ui
void onHelpPushButtonClicked()
std::unique_ptr< te::da::DataSetType > m_dataType
std::unique_ptr< te::da::DataSetTypeConverter > m_dsConverter
void onInputDataToolButtonTriggered()
A dataset is the unit of information manipulated by the data access module of TerraLib.
A class that represents a data source component.
te::da::DataSourcePtr m_dataSource
file(WRITE ${CMAKE_BINARY_DIR}/config_qhelp.cmake"configure_file (${TERRALIB_ABSOLUTE_ROOT_DIR}/doc/qhelp/help.qhcp.in ${CMAKE_BINARY_DIR}/share/terraview/help/help.qhcp @ONLY)") add_custom_command(OUTPUT del_dir COMMAND $
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr