27 #include "../../../dataaccess/query/DataSetName.h"
29 #include "ui_DataSetWidgetForm.h"
32 #include <QtGui/QIcon>
33 #include <QtGui/QMessageBox>
38 m_ui(new Ui::DataSetWidgetForm)
43 m_ui->m_addDataSetPushButton->setIcon(QIcon::fromTheme(
"list-add"));
44 m_ui->m_removeDataSetPushButton->setIcon(QIcon::fromTheme(
"list-remove"));
65 std::vector<std::pair<std::string, std::string> > vec;
69 for(
size_t t = 0; t < vec.size(); ++t)
81 std::vector<std::pair<std::string, std::string> > list;
83 for(std::size_t i = 0; i < from->size(); ++i)
89 std::pair<std::string, std::string> p;
95 setDataSetNames(list);
102 for(
size_t t = 0; t < names.size(); ++t)
104 list.push_back(names[t].c_str());
107 m_ui->m_dataSetComboBox->clear();
108 m_ui->m_dataSetComboBox->addItems(list);
110 if(names.empty() ==
false)
111 onDataSetComboBoxActivated(m_ui->m_dataSetComboBox->currentText());
116 for(std::size_t i = 0; i < list.size(); ++i)
118 int newrow = m_ui->m_dataSetTableWidget->rowCount();
121 for(
int j = 0; j < newrow; ++j)
123 QTableWidgetItem* itemName = m_ui->m_dataSetTableWidget->item(j, 1);
125 if(itemName->text().toStdString() == list[j].second)
127 QMessageBox::warning(
this, tr(
"Query Editor"), tr(
"Data Set Alias already defined!"));
133 m_ui->m_dataSetTableWidget->insertRow(newrow);
135 QTableWidgetItem* itemDataSet =
new QTableWidgetItem(QString::fromStdString(list[i].first));
136 m_ui->m_dataSetTableWidget->setItem(newrow, 0, itemDataSet);
138 QTableWidgetItem* itemAlias =
new QTableWidgetItem(QString::fromStdString(list[i].second));
139 m_ui->m_dataSetTableWidget->setItem(newrow, 1, itemAlias);
141 m_ui->m_dataSetTableWidget->resizeColumnToContents(0);
149 int row = m_ui->m_dataSetTableWidget->rowCount();
152 for(
int i = 0; i < row; ++i)
155 QTableWidgetItem* itemAlias = m_ui->m_dataSetTableWidget->item(i, 1);
156 std::string alias = itemAlias->text().toStdString();
159 QTableWidgetItem* itemDataSet = m_ui->m_dataSetTableWidget->item(i, 0);
160 std::string dataSetName = itemDataSet->text().toStdString();
162 list.push_back(std::pair<std::string, std::string> (dataSetName, alias));
168 if(value.isEmpty() ==
false)
170 std::string dataSetName = value.toStdString();
171 std::string aliasName = value.toStdString();
173 int pos = dataSetName.find(
".");
174 if(pos != std::string::npos)
176 aliasName = dataSetName.substr(pos + 1, dataSetName.size() - 1);
179 m_ui->m_dataSetAliasLineEdit->setText(aliasName.c_str());
185 if(m_ui->m_dataSetComboBox->currentText().isEmpty())
187 QMessageBox::warning(
this, tr(
"Query Builder"), tr(
"Data Set not selected."));
191 if(m_ui->m_dataSetAliasLineEdit->text().isEmpty())
193 QMessageBox::warning(
this, tr(
"Query Builder"), tr(
"Data Set Alias not defined."));
197 std::string dataSetName = m_ui->m_dataSetComboBox->currentText().toStdString();
198 std::string aliasName = m_ui->m_dataSetAliasLineEdit->text().toStdString();
200 int newrow = m_ui->m_dataSetTableWidget->rowCount();
203 for(
int i = 0; i < newrow; ++i)
205 QTableWidgetItem* itemName = m_ui->m_dataSetTableWidget->item(i, 1);
207 if(itemName->text().toStdString() == aliasName)
209 QMessageBox::warning(
this, tr(
"Query Builder"), tr(
"Data Set Alias already defined."));
215 m_ui->m_dataSetTableWidget->insertRow(newrow);
217 QTableWidgetItem* itemDataSet =
new QTableWidgetItem(QString::fromStdString(dataSetName));
218 m_ui->m_dataSetTableWidget->setItem(newrow, 0, itemDataSet);
220 QTableWidgetItem* itemAlias =
new QTableWidgetItem(QString::fromStdString(aliasName));
221 m_ui->m_dataSetTableWidget->setItem(newrow, 1, itemAlias);
223 m_ui->m_dataSetTableWidget->resizeColumnToContents(0);
230 int row = m_ui->m_dataSetTableWidget->currentRow();
233 m_ui->m_dataSetTableWidget->removeRow(row);
235 m_ui->m_dataSetTableWidget->resizeColumnToContents(0);
A class that models the name of a dataset used in a From clause.
Ui::DataSetWidgetForm * getForm() const
const std::string & getName() const
It returns the dataset name.
boost::ptr_vector< FromItem > From
It models the FROM clause for a query.
void setFrom(const te::da::From *from)
void getDataSetNames(std::vector< std::pair< std::string, std::string > > &list)
This file has the DataSetWidget class.
An abstract class that models a source of data in a query.
const std::string & getAlias() const
It returns the alias associated to the source item.
void onDataSetComboBoxActivated(const QString &value)
void onRemoveDataSetPushButtonClicked()
DataSetWidget(QWidget *parent=0, Qt::WindowFlags f=0)
void onAddDataSetPushButtonClicked()
std::auto_ptr< Ui::DataSetWidgetForm > m_ui
void setDataSetNames(const std::vector< std::string > &names)