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"));
62 std::vector<std::pair<std::string, std::string> > vec;
66 for(
size_t t = 0; t < vec.size(); ++t)
78 std::vector<std::pair<std::string, std::string> > list;
80 for(std::size_t i = 0; i < from->size(); ++i)
86 std::pair<std::string, std::string>
p;
99 for(
size_t t = 0; t < names.size(); ++t)
101 list.push_back(names[t].c_str());
104 m_ui->m_dataSetComboBox->clear();
105 m_ui->m_dataSetComboBox->addItems(list);
107 if(names.empty() ==
false)
113 for(std::size_t i = 0; i < list.size(); ++i)
115 int newrow =
m_ui->m_dataSetTableWidget->rowCount();
118 for(
int j = 0; j < newrow; ++j)
120 QTableWidgetItem* itemName =
m_ui->m_dataSetTableWidget->item(j, 2);
122 if(itemName->text().toUtf8().data() == list[j].second)
124 QMessageBox::warning(
this, tr(
"Query Editor"), tr(
"Data Set Alias already defined!"));
130 m_ui->m_dataSetTableWidget->insertRow(newrow);
134 removeBtn->setIcon(QIcon::fromTheme(
"list-remove"));
136 m_ui->m_dataSetTableWidget->setCellWidget(newrow, 0, removeBtn);
138 QTableWidgetItem* itemDataSet =
new QTableWidgetItem(QString::fromUtf8(list[i].first.c_str()));
139 m_ui->m_dataSetTableWidget->setItem(newrow, 1, itemDataSet);
141 QTableWidgetItem* itemAlias =
new QTableWidgetItem(QString::fromUtf8(list[i].second.c_str()));
142 m_ui->m_dataSetTableWidget->setItem(newrow, 2, itemAlias);
144 m_ui->m_dataSetTableWidget->resizeColumnToContents(0);
152 int row =
m_ui->m_dataSetTableWidget->rowCount();
155 for(
int i = 0; i < row; ++i)
158 QTableWidgetItem* itemAlias =
m_ui->m_dataSetTableWidget->item(i, 2);
159 std::string alias = itemAlias->text().toUtf8().data();
162 QTableWidgetItem* itemDataSet =
m_ui->m_dataSetTableWidget->item(i, 1);
163 std::string dataSetName = itemDataSet->text().toUtf8().data();
165 list.push_back(std::pair<std::string, std::string> (dataSetName, alias));
171 if(value.isEmpty() ==
false)
173 std::string dataSetName = value.toUtf8().data();
174 std::string aliasName = value.toUtf8().data();
176 std::size_t pos = dataSetName.find(
".");
177 if(pos != std::string::npos)
179 aliasName = dataSetName.substr(pos + 1, dataSetName.size() - 1);
182 m_ui->m_dataSetAliasLineEdit->setText(aliasName.c_str());
188 if(
m_ui->m_dataSetComboBox->currentText().isEmpty())
190 QMessageBox::warning(
this, tr(
"Query Builder"), tr(
"Data Set not selected."));
194 if(
m_ui->m_dataSetAliasLineEdit->text().isEmpty())
196 QMessageBox::warning(
this, tr(
"Query Builder"), tr(
"Data Set Alias not defined."));
200 std::string dataSetName =
m_ui->m_dataSetComboBox->currentText().toUtf8().data();
201 std::string aliasName =
m_ui->m_dataSetAliasLineEdit->text().toUtf8().data();
203 int newrow =
m_ui->m_dataSetTableWidget->rowCount();
206 for(
int i = 0; i < newrow; ++i)
208 QTableWidgetItem* itemName =
m_ui->m_dataSetTableWidget->item(i, 2);
210 if(itemName->text().toUtf8().data() == aliasName)
212 QMessageBox::warning(
this, tr(
"Query Builder"), tr(
"Data Set Alias already defined."));
218 m_ui->m_dataSetTableWidget->insertRow(newrow);
222 removeBtn->setIcon(QIcon::fromTheme(
"list-remove"));
224 m_ui->m_dataSetTableWidget->setCellWidget(newrow, 0, removeBtn);
226 QTableWidgetItem* itemDataSet =
new QTableWidgetItem(QString::fromUtf8(dataSetName.c_str()));
227 m_ui->m_dataSetTableWidget->setItem(newrow, 1, itemDataSet);
229 QTableWidgetItem* itemAlias =
new QTableWidgetItem(QString::fromUtf8(aliasName.c_str()));
230 m_ui->m_dataSetTableWidget->setItem(newrow, 2, itemAlias);
232 m_ui->m_dataSetTableWidget->resizeColumnToContents(0);
244 for(
int i = 0; i <
m_ui->m_dataSetTableWidget->rowCount(); ++i)
246 QWidget* w =
m_ui->m_dataSetTableWidget->cellWidget(i, 0);
256 m_ui->m_dataSetTableWidget->removeRow(row);
258 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.