27 #include "../../../common/STLUtils.h" 
   28 #include "../../../dataaccess/dataset/Constraint.h" 
   29 #include "../../../dataaccess/dataset/DataSetType.h" 
   30 #include "../../../dataaccess/dataset/Index.h" 
   31 #include "../../../dataaccess/dataset/PrimaryKey.h" 
   32 #include "../../../dataaccess/dataset/UniqueKey.h" 
   33 #include "../../../datatype/Property.h" 
   36 #include "ui_ConstraintsIndexesListWidgetForm.h" 
   38 #define CONSTRAINT_PK_TYPE "Primary Key" 
   39 #define CONSTRAINT_UK_TYPE "Unique Key" 
   40 #define CONSTRAINT_UNKNOWN_TYPE "Unknown" 
   41 #define INDEX_TYPE "Index" 
   46     m_ui(new Ui::ConstraintsIndexesListWidgetForm)
 
   51   m_ui->m_addToolButton->setIcon(QIcon::fromTheme(
"list-add"));
 
   52   m_ui->m_removeToolButton->setIcon(QIcon::fromTheme(
"list-remove"));
 
   53   m_ui->m_editToolButton->setIcon(QIcon::fromTheme(
"preferences-system"));
 
   58   connect(
m_ui->m_tableWidget, SIGNAL(cellClicked(
int, 
int)), 
this, SLOT(
onCellClicked(
int, 
int)));
 
   74   listDataSetProperties();
 
   84   if(w.exec() == QDialog::Accepted)
 
   86     listDataSetProperties();
 
   92   int row = m_ui->m_tableWidget->currentRow();
 
   97   std::string type = m_ui->m_tableWidget->item(row, 1)->text().toStdString();
 
   98   std::string name = m_ui->m_tableWidget->item(row, 0)->text().toStdString();
 
  102     removePrimaryKey(name);
 
  106     removeUniqueKey(name);
 
  113   m_ui->m_removeToolButton->setEnabled(
false);
 
  115   listDataSetProperties();
 
  120   if(!m_ui->m_tableWidget->currentItem())
 
  123   std::string constIndxName = m_ui->m_tableWidget->item(m_ui->m_tableWidget->currentRow(), 0)->text().toStdString();
 
  131   if(pk->
getName() == constIndxName)
 
  144   if(w.exec() == QDialog::Accepted)
 
  146     listDataSetProperties();
 
  153   m_ui->m_removeToolButton->setEnabled(
true);
 
  160   m_ui->m_tableWidget->setRowCount(0);
 
  163   if(m_dsType->getPrimaryKey())
 
  165     addConstraint(m_dsType->getPrimaryKey());
 
  170   size_t size = m_dsType->getNumberOfUniqueKeys();
 
  172   for(
size_t t = 0; t < size; ++t)
 
  174     addConstraint(m_dsType->getUniqueKey(t));
 
  179   size = m_dsType->getNumberOfIndexes();
 
  181   for(
size_t t = 0; t < size; ++t)
 
  183     addIndex(m_dsType->getIndex(t));
 
  187   m_ui->m_tableWidget->resizeColumnsToContents();
 
  191     m_ui->m_editToolButton->setEnabled(
true);
 
  197   std::string name = c->
getName();
 
  198   std::string type = 
"";
 
  199   std::string properties = 
"";
 
  204     properties = getPropertiesStr(dynamic_cast<te::da::PrimaryKey*>(c)->getProperties());
 
  209     properties = getPropertiesStr(dynamic_cast<te::da::UniqueKey*>(c)->getProperties());
 
  216   addTableItem(name, type, properties);
 
  221   std::string name = i->
getName();
 
  222   std::string type = tr(
INDEX_TYPE).toStdString();
 
  223   std::string properties = getPropertiesStr(i->
getProperties());
 
  225   addTableItem(name, type, properties);
 
  232   if(pk && pk->
getName() == name)
 
  234     m_dsType->remove(pk);
 
  240   size_t size = m_dsType->getNumberOfUniqueKeys();
 
  242   for(
size_t t = 0; t < size; ++t)
 
  248       m_dsType->remove(uk);
 
  256   size_t size = m_dsType->getNumberOfIndexes();
 
  258   for(
size_t t = 0; t < size; ++t)
 
  273   int newrow = m_ui->m_tableWidget->rowCount();
 
  275   m_ui->m_tableWidget->insertRow(newrow);
 
  277   QTableWidgetItem* itemName = 
new QTableWidgetItem(QString::fromStdString(name));
 
  278   m_ui->m_tableWidget->setItem(newrow, 0, itemName);
 
  279   itemName->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
 
  281   QTableWidgetItem* itemType = 
new QTableWidgetItem(QString::fromStdString(type));
 
  282   m_ui->m_tableWidget->setItem(newrow, 1, itemType);
 
  283   itemType->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
 
  285   QTableWidgetItem* itemProp = 
new QTableWidgetItem(QString::fromStdString(properties));
 
  286   m_ui->m_tableWidget->setItem(newrow, 2, itemProp);
 
  287   itemProp->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
 
  292   std::string str = 
"";
 
  294   for(
size_t t = 0; t < vec.size(); ++t)
 
  296     str += vec[t]->getName();
 
A class that models the description of a dataset. 
 
A class used to define a constraint or index property creator. 
 
virtual ConstraintType getType() const =0
It returns the constraint type. 
 
It describes a unique key (uk) constraint. 
 
const std::vector< te::dt::Property * > & getProperties() const 
It returns the properties that take part of the index. 
 
It describes a primary key (pk) constraint. 
 
virtual const std::string & getName() const 
It returns the constraint name. 
 
It describes an index associated to a DataSetType. 
 
const std::string & getName() const 
It returns the index name.