27 #include "../../../../common/Translator.h"
28 #include "../../../../dataaccess/datasource/DataSource.h"
29 #include "../../../../dataaccess/datasource/DataSourceManager.h"
30 #include "../../../../maptools/DataSetLayer.h"
31 #include "../../dataset/selector/DataSetSelectorDialog.h"
32 #include "../../Exception.h"
33 #include "../utils/DataSet2Layer.h"
52 m_datasources = datasources;
57 std::list<te::map::AbstractLayerPtr> layers;
59 for(std::list<te::da::DataSourceInfoPtr>::iterator it = m_datasources.begin(); it != m_datasources.end(); ++it)
63 if(datasource.get() == 0)
67 if(datasource.get() == 0)
68 throw Exception(
TR_QT_WIDGETS(
"Could not retrieve the data source instance!"));
71 if(!datasource->isOpened())
74 std::vector<std::string> datasetNames = datasource->getDataSetNames();
76 if(datasetNames.size() == 1)
79 std::auto_ptr<te::da::DataSetType> dt = datasource->getDataSetType(datasetNames[0]);
82 layers.push_back(layer);
86 std::auto_ptr<DataSetSelectorDialog> ldialog(
new DataSetSelectorDialog(static_cast<QWidget*>(parent())));
88 ldialog->set(*it,
true);
90 int retval = ldialog->exec();
92 if(retval == QDialog::Rejected)
95 std::list<te::da::DataSetTypePtr> datasets = ldialog->getCheckedDataSets();
97 std::transform(datasets.begin(), datasets.end(), std::back_inserter(layers),
DataSet2Layer((*it)->getId()));
void set(const std::list< te::da::DataSourceInfoPtr > &datasources)
A simple widget that allows the selection of datasets from a given data source.
DataSetLayerSelector(QWidget *parent=0, Qt::WindowFlags f=0)
boost::shared_ptr< DataSource > DataSourcePtr
boost::intrusive_ptr< DataSetLayer > DataSetLayerPtr
#define TR_QT_WIDGETS(message)
It marks a string in order to get translated. This is a special mark used in the TerraLib Qt Widgets ...
boost::shared_ptr< DataSetType > DataSetTypePtr
An abstract class for layer selection widgets.
static DataSourceManager & getInstance()
It returns a reference to the singleton instance.
std::list< te::map::AbstractLayerPtr > getLayers()