27 #include "../../common/Logger.h" 
   28 #include "../../common/progress/ProgressManager.h" 
   29 #include "../../common/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=" + fileName.toStdString());
 
  125     std::map<std::string, std::string> connInfo;
 
  126     connInfo[
"URI"] = fileName.toStdString();
 
  128     boost::filesystem::path uri(fileName.toStdString());
 
  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.toStdString());
 
  139     dsInfo->setDescription(
"");
 
  140     dsInfo->setAccessDriver(
"OGR");
 
  141     dsInfo->setType(
"OGR");
 
  146     m_dataSource->setConnectionInfo(dsInfo->getConnInfo());
 
  148     m_dataSource->setId(boost::uuids::to_string(u));
 
  149     m_dataSource->open();
 
  152     m_dataSet = m_dataSource->getDataSet(file);
 
  153     std::vector<std::string> datasetNames = m_dataSource->getDataSetNames();
 
  155     if(!datasetNames.empty())
 
  156       m_dataType = m_dataSource->getDataSetType(datasetNames[0]);
 
  159       QMessageBox::critical( 
this, tr(
"Error"),tr(
"The file could not be read!"));
 
  163     m_ui->m_fileLineEdit->setText(fileName);
 
  169     std::vector<std::size_t> properties;
 
  170     for(std::size_t i = 0; i < m_dataSet->getNumProperties(); ++i)
 
  171       properties.push_back(i);
 
  174     std::auto_ptr<te::mem::DataSet> memFeature((
new te::mem::DataSet(*m_dataSet.get(), properties, 10)));
 
  176     m_tblView->setDataSet(memFeature.release(), m_dataSource->getEncoding());
 
  177     m_tblView->resizeColumnsToContents();
 
  180   catch(
const std::exception& e)
 
  182     QMessageBox::warning(
this, tr(
"Tabular File"), e.what());
 
  188   QMessageBox::information(
this, 
"Help", 
"Under development");
 
std::auto_ptr< Ui::ImportTableDialogForm > m_ui
 
A dialog to import table with address to geocoding operation. 
 
ImportTableDialog(QWidget *parent=0, Qt::WindowFlags f=0)
 
boost::shared_ptr< DataSource > DataSourcePtr
 
void onCancelPushButtonClicked()
 
An converter for DataSetType. 
 
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. 
 
static std::auto_ptr< DataSource > make(const std::string &dsType)
 
void onHelpPushButtonClicked()
 
void onInputDataToolButtonTriggered()
 
std::auto_ptr< te::qt::widgets::DataSetTableView > m_tblView
 
std::auto_ptr< te::da::DataSet > getDataSet()
 
A class that represents a data source component. 
 
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr