27 #include "../../../geometry/GeometryProperty.h"
28 #include "../../../qt/widgets/dataset/selector/DataSetSelectorWizardPage.h"
29 #include "../../../qt/widgets/datasource/selector/DataSourceSelectorWidget.h"
30 #include "../../../qt/widgets/datasource/selector/DataSourceSelectorWizardPage.h"
31 #include "../../../qt/widgets/help/HelpPushButton.h"
32 #include "../../../se/Utils.h"
33 #include "../../../st/core/timeseries/TimeSeriesDataSetInfo.h"
36 #include "ui_TimeSeriesWizardForm.h"
39 #include <boost/uuid/random_generator.hpp>
40 #include <boost/uuid/uuid_io.hpp>
44 static boost::uuids::basic_random_generator<boost::mt19937> gen;
45 boost::uuids::uuid u = gen();
46 std::string
id = boost::uuids::to_string(u);
47 std::string title = dataType->getTitle().empty() ? dataType->getName() : dataType->getTitle();
51 timeSeriesLayer->setRendererType(
"ABSTRACT_LAYER_RENDERER");
55 timeSeriesLayer->setSRID(gp->
getSRID());
56 timeSeriesLayer->setExtent(*mbr);
58 return timeSeriesLayer;
63 m_ui(new Ui::TimeSeriesWizardForm)
81 m_datasetSelectorPage->setSubTitle(tr(
"Please, select the datasets you want to transfer to another data source"));
89 connect(this->button(QWizard::NextButton), SIGNAL(pressed()),
this, SLOT(
next()));
90 connect(this->button(QWizard::BackButton), SIGNAL(pressed()),
this, SLOT(
back()));
91 connect(this->button(QWizard::FinishButton), SIGNAL(pressed()),
this, SLOT(
finish()));
94 this->setButton(QWizard::HelpButton, helpButton);
104 std::list<te::da::DataSourceInfoPtr> datasources = m_datasourceSelectorPage->getSelectorWidget()->getSelecteds();
106 if(datasources.empty())
109 return datasources.front();
114 std::list<te::da::DataSetTypePtr> dataTypes = m_datasetSelectorPage->getCheckedDataSets();
116 if(dataTypes.empty())
119 return dataTypes.front();
124 return m_timeSeriesLayer;
134 if(currentId() == PAGE_DATASOURCE_SELECTION)
136 m_datasetSelectorPage->set(getDataSource(),
true);
138 else if (currentId() == PAGE_DATASET_SELECTION)
140 m_PropWidgetPage->set(getDatasetType());
147 QApplication::setOverrideCursor(Qt::WaitCursor);
149 std::list<te::da::DataSetTypePtr> dataTypes = m_datasetSelectorPage->getCheckedDataSets();
153 m_timeSeriesLayer =
generateLayer(dataTypes.front(), info, dataInfo);
158 std::cout << std::endl <<
"Failed to create a new layer and insert it into the application: " << e.
what() << std::endl;
159 QWizard::finished(1);
163 std::cout << std::endl <<
"Failed to create a new layer and insert it into the application: unknown exception!" << std::endl;
164 QWizard::finished(1);
167 QApplication::restoreOverrideCursor();
168 QWizard::finished(0);
TEDATAACCESSEXPORT te::gm::Envelope * GetExtent(const std::string &datasetName, const std::string &propertyName, const std::string &datasourceId)
A layer with reference to a dataset that contains trajectories.
te::st::TimeSeriesDataSetLayerPtr generateLayer(te::da::DataSetTypePtr dataType, te::st::TimeSeriesDataSetInfo *timeSeriesInfo, te::da::DataSourceInfoPtr dataInfo, te::map::AbstractLayer *parent=0)
boost::shared_ptr< DataSetType > DataSetTypePtr
This is the base class for layers.
virtual const char * what() const
It outputs the exception message.
TESEEXPORT Style * CreateFeatureTypeStyle(const te::gm::GeomType &geomType)
Try creates an appropriate feature type style based on given geometry type.
int getSRID() const
It returns the spatial reference system identifier associated to this property.
GeomType getGeometryType() const
It returns the geometry subtype allowed for the property.
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...
A WizardPage used to configure the general properties of a new spatio-temporal layer.
A class that contains infos about a DataSet that contains observations of one or more time series...
TEDATAACCESSEXPORT te::gm::GeometryProperty * GetFirstGeomProperty(const DataSetType *dt)
boost::intrusive_ptr< TimeSeriesDataSetLayer > TimeSeriesDataSetLayerPtr
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr
const std::string & getName() const
It returns the property name.