27 #include "../../../dataaccess/query/DataSetName.h"
29 #include "ui_DataSetWidgetForm.h"
33 #include <QMessageBox>
34 #include <QToolButton>
39 m_ui(new Ui::DataSetWidgetForm)
44 m_ui->m_addDataSetPushButton->setIcon(QIcon::fromTheme(
"list-add"));
64 std::vector<std::pair<std::string, std::string> > vec;
68 for(
size_t t = 0; t < vec.size(); ++t)
80 std::vector<std::pair<std::string, std::string> > list;
82 for(std::size_t i = 0; i < from->size(); ++i)
88 std::pair<std::string, std::string> p;
94 setDataSetNames(list);
101 for(
size_t t = 0; t < names.size(); ++t)
103 list.push_back(names[t].c_str());
106 m_ui->m_dataSetComboBox->clear();
107 m_ui->m_dataSetComboBox->addItems(list);
109 if(names.empty() ==
false)
110 onDataSetComboBoxActivated(m_ui->m_dataSetComboBox->currentText());
115 for(std::size_t i = 0; i < list.size(); ++i)
117 int newrow = m_ui->m_dataSetTableWidget->rowCount();
120 for(
int j = 0; j < newrow; ++j)
122 QTableWidgetItem* itemName = m_ui->m_dataSetTableWidget->item(j, 2);
124 if(itemName->text().toStdString() == list[j].second)
126 QMessageBox::warning(
this, tr(
"Query Editor"), tr(
"Data Set Alias already defined!"));
132 m_ui->m_dataSetTableWidget->insertRow(newrow);
135 QToolButton* removeBtn =
new QToolButton(m_ui->m_dataSetTableWidget);
136 removeBtn->setIcon(QIcon::fromTheme(
"list-remove"));
137 connect(removeBtn, SIGNAL(clicked()),
this, SLOT(onRemoveDataSetPushButtonClicked()));
138 m_ui->m_dataSetTableWidget->setCellWidget(newrow, 0, removeBtn);
140 QTableWidgetItem* itemDataSet =
new QTableWidgetItem(QString::fromStdString(list[i].first));
141 m_ui->m_dataSetTableWidget->setItem(newrow, 1, itemDataSet);
143 QTableWidgetItem* itemAlias =
new QTableWidgetItem(QString::fromStdString(list[i].second));
144 m_ui->m_dataSetTableWidget->setItem(newrow, 2, itemAlias);
146 m_ui->m_dataSetTableWidget->resizeColumnToContents(0);
154 int row = m_ui->m_dataSetTableWidget->rowCount();
157 for(
int i = 0; i < row; ++i)
160 QTableWidgetItem* itemAlias = m_ui->m_dataSetTableWidget->item(i, 2);
161 std::string alias = itemAlias->text().toStdString();
164 QTableWidgetItem* itemDataSet = m_ui->m_dataSetTableWidget->item(i, 1);
165 std::string dataSetName = itemDataSet->text().toStdString();
167 list.push_back(std::pair<std::string, std::string> (dataSetName, alias));
173 if(value.isEmpty() ==
false)
175 std::string dataSetName = value.toStdString();
176 std::string aliasName = value.toStdString();
178 int pos = dataSetName.find(
".");
179 if(pos != std::string::npos)
181 aliasName = dataSetName.substr(pos + 1, dataSetName.size() - 1);
184 m_ui->m_dataSetAliasLineEdit->setText(aliasName.c_str());
190 if(m_ui->m_dataSetComboBox->currentText().isEmpty())
192 QMessageBox::warning(
this, tr(
"Query Builder"), tr(
"Data Set not selected."));
196 if(m_ui->m_dataSetAliasLineEdit->text().isEmpty())
198 QMessageBox::warning(
this, tr(
"Query Builder"), tr(
"Data Set Alias not defined."));
202 std::string dataSetName = m_ui->m_dataSetComboBox->currentText().toStdString();
203 std::string aliasName = m_ui->m_dataSetAliasLineEdit->text().toStdString();
205 int newrow = m_ui->m_dataSetTableWidget->rowCount();
208 for(
int i = 0; i < newrow; ++i)
210 QTableWidgetItem* itemName = m_ui->m_dataSetTableWidget->item(i, 2);
212 if(itemName->text().toStdString() == aliasName)
214 QMessageBox::warning(
this, tr(
"Query Builder"), tr(
"Data Set Alias already defined."));
220 m_ui->m_dataSetTableWidget->insertRow(newrow);
223 QToolButton* removeBtn =
new QToolButton(m_ui->m_dataSetTableWidget);
224 removeBtn->setIcon(QIcon::fromTheme(
"list-remove"));
225 connect(removeBtn, SIGNAL(clicked()),
this, SLOT(onRemoveDataSetPushButtonClicked()));
226 m_ui->m_dataSetTableWidget->setCellWidget(newrow, 0, removeBtn);
228 QTableWidgetItem* itemDataSet =
new QTableWidgetItem(QString::fromStdString(dataSetName));
229 m_ui->m_dataSetTableWidget->setItem(newrow, 1, itemDataSet);
231 QTableWidgetItem* itemAlias =
new QTableWidgetItem(QString::fromStdString(aliasName));
232 m_ui->m_dataSetTableWidget->setItem(newrow, 2, itemAlias);
234 m_ui->m_dataSetTableWidget->resizeColumnToContents(0);
241 QToolButton* button =
dynamic_cast<QToolButton*
>(sender());
246 for(
int i = 0; i < m_ui->m_dataSetTableWidget->rowCount(); ++i)
248 QWidget* w = m_ui->m_dataSetTableWidget->cellWidget(i, 0);
249 QToolButton* btn =
dynamic_cast<QToolButton*
>(w);
258 m_ui->m_dataSetTableWidget->removeRow(row);
260 m_ui->m_dataSetTableWidget->resizeColumnToContents(0);
An abstract class that models a source of data in a query.
A class that models the name of a dataset used in a From clause.
const std::string & getAlias() const
It returns the alias associated to the source item.
boost::ptr_vector< FromItem > From
It models the FROM clause for a query.
const std::string & getName() const
It returns the dataset name.