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.