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 <QtGui/QAbstractButton>
60 #include <QtGui/QMessageBox>
61 #include <QtGui/QVBoxLayout>
65 m_ui(new Ui::DataExchangerWizardForm)
85 m_datasetSelectorPage->setSubTitle(tr(
"Please, select the datasets you want to transfer to another data source"));
110 connect(this->button(QWizard::NextButton), SIGNAL(pressed()),
this, SLOT(
next()));
111 connect(this->button(QWizard::BackButton), SIGNAL(pressed()),
this, SLOT(
back()));
112 connect(this->button(QWizard::CommitButton), SIGNAL(pressed()),
this, SLOT(
commit()));
117 this->setButton(QWizard::HelpButton, helpButton);
128 return QWizard::nextId();
133 std::list<te::da::DataSourceInfoPtr> datasources = m_datasourceSelectorPage->getSelectorWidget()->getSelecteds();
135 if(datasources.empty())
138 return datasources.front();
143 std::list<te::da::DataSourceInfoPtr> datasources = m_targetSelectorPage->getSelectorWidget()->getSelecteds();
145 if(datasources.empty())
148 return datasources.front();
153 this->setOption(QWizard::HaveCustomButton1,
false);
155 if(currentId() == PAGE_SUMMARY)
157 this->setButtonText(QWizard::CustomButton1, tr(
"Apply"));
158 this->setOption(QWizard::HaveCustomButton1,
true);
160 connect(this->button(QWizard::CustomButton1), SIGNAL(clicked()), m_datasetOptionsPage.get(), SLOT(applyChanges()));
168 this->setOption(QWizard::HaveCustomButton1,
false);
170 if(currentId() == PAGE_DATASOURCE_SELECTION)
172 m_datasetSelectorPage->set(getDataSource(),
true);
174 else if(currentId() == PAGE_TARGET_DATASOURCE)
176 std::list<te::da::DataSetTypePtr> datasets = m_datasetSelectorPage->getCheckedDataSets();
177 m_datasetOptionsPage->set(datasets, getDataSource(), getTargetDataSource());
179 this->setButtonText(QWizard::CustomButton1, tr(
"Apply"));
180 this->setOption(QWizard::HaveCustomButton1,
true);
182 connect(this->button(QWizard::CustomButton1), SIGNAL(clicked()), m_datasetOptionsPage.get(), SLOT(applyChanges()));
200 if(idatasource.get() == 0)
211 if(odatasource.get() == 0)
215 std::list<DataExchangeStatus> result;
217 std::map<te::da::DataSetTypePtr, te::da::DataSetTypeConverter*> odatasets = m_datasetOptionsPage->getDatasets();
219 std::map<te::da::DataSetTypePtr, te::da::DataSetTypeConverter*>::iterator it = odatasets.begin();
221 while(it != odatasets.end())
229 std::map<std::string,std::string> nopt;
233 std::auto_ptr<te::da::DataSet> dataset(idatasource->getDataSet(idset->getName()));
236 odatasource->createDataSet(odset, nopt);
240 dsAdapter->setSRID(geomProp->
getSRID());
242 if(dataset->moveBeforeFirst())
243 odatasource->add(odset->
getName(), dsAdapter.get(), ods->getConnInfo());
252 result.push_back(status);
254 catch(
const std::exception& e)
261 result.push_back(status);
270 result.push_back(status);
276 m_summaryPage->set(result);
te::da::DataSourceInfoPtr getTargetDataSource() const
TEDATAACCESSEXPORT te::gm::GeometryProperty * GetFirstGeomProperty(const DataSetType *dt)
int getSRID() const
It returns the spatial reference system identifier associated to this property.
std::auto_ptr< DataSetSelectorWizardPage > m_datasetSelectorPage
const std::string & getName() const
It returns the property name.
Push button that uses te::qt::widgets::HelpManager on its mouse pressed implementation.
std::auto_ptr< DataSetOptionsWizardPage > m_datasetOptionsPage
void setPageReference(const QString &ref)
Sets the documentation page reference.
boost::shared_ptr< DataSource > DataSourcePtr
std::string m_exceptionMsg
std::auto_ptr< Ui::DataExchangerWizardForm > m_ui
DataExchangerWizard(QWidget *parent=0, Qt::WindowFlags f=0)
A class that models the description of a dataset.
boost::shared_ptr< DataSetType > DataSetTypePtr
te::da::DataSetType * m_dataset
std::auto_ptr< DataSourceSelectorWizardPage > m_datasourceSelectorPage
static DataSourceManager & getInstance()
It returns a reference to the singleton instance.
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr
std::auto_ptr< DataExchangeSummaryWizardPage > m_summaryPage
TEDATAACCESSEXPORT DataSetAdapter * CreateAdapter(DataSet *ds, DataSetTypeConverter *converter, bool isOwner=false)
std::auto_ptr< DataSourceSelectorWizardPage > m_targetSelectorPage
An object that when created shows a cursor during its scope.
te::da::DataSourceInfoPtr getDataSource() const