27 #include "../../../dataaccess/dataset/DataSet.h"
28 #include "../../../dataaccess/dataset/DataSetAdapter.h"
29 #include "../../../dataaccess/dataset/DataSetType.h"
30 #include "../../../dataaccess/dataset/DataSetTypeConverter.h"
31 #include "../../../dataaccess/datasource/DataSource.h"
32 #include "../../../dataaccess/datasource/DataSourceInfo.h"
33 #include "../../../dataaccess/datasource/DataSourceManager.h"
34 #include "../../../dataaccess/datasource/DataSourceTransactor.h"
35 #include "../../../dataaccess/utils/Utils.h"
36 #include "../../../geometry/GeometryProperty.h"
37 #include "../../../qt/widgets/dataset/selector/DataSetSelectorWizardPage.h"
38 #include "../../../qt/widgets/datasource/selector/DataSourceSelectorWidget.h"
39 #include "../../../qt/widgets/datasource/selector/DataSourceSelectorWizardPage.h"
40 #include "../../../qt/widgets/help/HelpPushButton.h"
41 #include "../../../qt/widgets/utils/ScopedCursor.h"
46 #include "ui_DataExchangerWizardForm.h"
47 #include "ui_DataExchangeSummaryWizardPageForm.h"
48 #include "ui_DataSetOptionsWizardPageForm.h"
49 #include "ui_DataSourceSelectorWidgetForm.h"
59 #include <QAbstractButton>
60 #include <QMessageBox>
61 #include <QVBoxLayout>
65 m_ui(new Ui::DataExchangerWizardForm)
85 m_datasetSelectorPage->setSubTitle(tr(
"Please, select the datasets you want to transfer to another data source"));
111 connect(this->button(QWizard::NextButton), SIGNAL(pressed()),
this, SLOT(
next()));
112 connect(this->button(QWizard::BackButton), SIGNAL(pressed()),
this, SLOT(
back()));
113 connect(this->button(QWizard::CommitButton), SIGNAL(pressed()),
this, SLOT(commit()));
118 this->setButton(QWizard::HelpButton, helpButton);
129 return QWizard::nextId();
134 std::list<te::da::DataSourceInfoPtr> datasources = m_datasourceSelectorPage->getSelectorWidget()->getSelecteds();
136 if(datasources.empty())
139 return datasources.front();
144 std::list<te::da::DataSourceInfoPtr> datasources = m_targetSelectorPage->getSelectorWidget()->getSelecteds();
146 if(datasources.empty())
149 return datasources.front();
154 this->setOption(QWizard::HaveCustomButton1,
false);
156 if(currentId() == PAGE_SUMMARY)
158 this->setButtonText(QWizard::CustomButton1, tr(
"Apply"));
159 this->setOption(QWizard::HaveCustomButton1,
true);
161 connect(this->button(QWizard::CustomButton1), SIGNAL(clicked()), m_datasetOptionsPage.get(), SLOT(applyChanges()));
169 this->setOption(QWizard::HaveCustomButton1,
false);
171 if(currentId() == PAGE_DATASOURCE_SELECTION)
173 m_datasetSelectorPage->set(getDataSource(),
true);
175 else if(currentId() == PAGE_TARGET_DATASOURCE)
177 std::list<te::da::DataSetTypePtr> datasets = m_datasetSelectorPage->getCheckedDataSets();
178 m_datasetOptionsPage->set(datasets, getDataSource(), getTargetDataSource());
180 this->setButtonText(QWizard::CustomButton1, tr(
"Apply"));
181 this->setOption(QWizard::HaveCustomButton1,
true);
183 connect(this->button(QWizard::CustomButton1), SIGNAL(clicked()), m_datasetOptionsPage.get(), SLOT(applyChanges()));
185 else if(currentId() == PAGE_DATASET_OPTIONS)
205 if(idatasource.get() == 0)
216 if(odatasource.get() == 0)
220 std::list<DataExchangeStatus> result;
222 std::map<te::da::DataSetTypePtr, te::da::DataSetTypeConverter*> odatasets = m_datasetOptionsPage->getDatasets();
224 std::map<te::da::DataSetTypePtr, te::da::DataSetTypeConverter*>::iterator it = odatasets.begin();
226 while(it != odatasets.end())
232 std::auto_ptr<te::da::DataSourceTransactor> t;
236 std::map<std::string,std::string> nopt;
240 std::auto_ptr<te::da::DataSet> dataset(idatasource->getDataSet(idset->getName()));
242 t = odatasource->getTransactor();
247 t->createDataSet(odset, nopt);
251 dsAdapter->setSRID(geomProp->
getSRID());
253 if(dataset->moveBeforeFirst())
254 t->add(odset->
getName(), dsAdapter.get(), ods->getConnInfo());
263 result.push_back(status);
267 catch(
const std::exception& e)
274 result.push_back(status);
285 result.push_back(status);
293 m_summaryPage->set(result);
boost::shared_ptr< DataSetType > DataSetTypePtr
boost::shared_ptr< DataSource > DataSourcePtr
A class that models the description of a dataset.
int getSRID() const
It returns the spatial reference system identifier associated to this property.
static DataSourceManager & getInstance()
It returns a reference to the singleton instance.
TEDATAACCESSEXPORT te::gm::GeometryProperty * GetFirstGeomProperty(const DataSetType *dt)
TEDATAACCESSEXPORT DataSetAdapter * CreateAdapter(DataSet *ds, DataSetTypeConverter *converter, bool isOwner=false)
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr
const std::string & getName() const
It returns the property name.