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"));
 
   57   connect(
m_ui->m_tableWidget, SIGNAL(cellClicked(
int, 
int)), 
this, SLOT(
onCellClicked(
int, 
int)));
 
   73   listDataSetProperties();
 
   83   if(w.exec() == QDialog::Accepted)
 
   85     listDataSetProperties();
 
   91   int row = m_ui->m_tableWidget->currentRow();
 
   96   std::string type = m_ui->m_tableWidget->item(row, 1)->text().toStdString();
 
   97   std::string name = m_ui->m_tableWidget->item(row, 0)->text().toStdString();
 
  101     removePrimaryKey(name);
 
  105     removeUniqueKey(name);
 
  112   m_ui->m_removeToolButton->setEnabled(
false);
 
  114   listDataSetProperties();
 
  124   m_ui->m_removeToolButton->setEnabled(
true);
 
  129   m_ui->m_tableWidget->setRowCount(0);
 
  132   if(m_dsType->getPrimaryKey())
 
  134     addConstraint(m_dsType->getPrimaryKey());
 
  138   size_t size = m_dsType->getNumberOfUniqueKeys();
 
  140   for(
size_t t = 0; t < size; ++t)
 
  142     addConstraint(m_dsType->getUniqueKey(t));
 
  146   size = m_dsType->getNumberOfIndexes();
 
  148   for(
size_t t = 0; t < size; ++t)
 
  150     addIndex(m_dsType->getIndex(t));
 
  153   m_ui->m_tableWidget->resizeColumnsToContents();
 
  158   std::string name = c->
getName();
 
  159   std::string type = 
"";
 
  160   std::string properties = 
"";
 
  165     properties = getPropertiesStr(dynamic_cast<te::da::PrimaryKey*>(c)->getProperties());
 
  170     properties = getPropertiesStr(dynamic_cast<te::da::UniqueKey*>(c)->getProperties());
 
  177   addTableItem(name, type, properties);
 
  182   std::string name = i->
getName();
 
  183   std::string type = tr(
INDEX_TYPE).toStdString();
 
  184   std::string properties = getPropertiesStr(i->
getProperties());
 
  186   addTableItem(name, type, properties);
 
  193   if(pk && pk->
getName() == name)
 
  195     m_dsType->remove(pk);
 
  201   size_t size = m_dsType->getNumberOfUniqueKeys();
 
  203   for(
size_t t = 0; t < size; ++t)
 
  209       m_dsType->remove(uk);
 
  217   size_t size = m_dsType->getNumberOfIndexes();
 
  219   for(
size_t t = 0; t < size; ++t)
 
  234   int newrow = m_ui->m_tableWidget->rowCount();
 
  236   m_ui->m_tableWidget->insertRow(newrow);
 
  238   QTableWidgetItem* itemName = 
new QTableWidgetItem(QString::fromStdString(name));
 
  239   m_ui->m_tableWidget->setItem(newrow, 0, itemName);
 
  241   QTableWidgetItem* itemType = 
new QTableWidgetItem(QString::fromStdString(type));
 
  242   m_ui->m_tableWidget->setItem(newrow, 1, itemType);
 
  244   QTableWidgetItem* itemProp = 
new QTableWidgetItem(QString::fromStdString(properties));
 
  245   m_ui->m_tableWidget->setItem(newrow, 2, itemProp);
 
  250   std::string str = 
"";
 
  252   for(
size_t t = 0; t < vec.size(); ++t)
 
  254     str += vec[t]->getName();
 
It describes an index associated to a DataSetType. 
 
void listDataSetProperties()
 
std::string getPropertiesStr(std::vector< te::dt::Property * > vec)
 
A class used to define a constraint or index property creator. 
 
#define CONSTRAINT_UK_TYPE
 
void onAddToolButtonClicked()
 
#define CONSTRAINT_UNKNOWN_TYPE
 
void addTableItem(std::string name, std::string type, std::string properties)
 
It describes a primary key (pk) constraint. 
 
void onEditToolButtonClicked()
 
void addIndex(te::da::Index *i)
 
const std::vector< te::dt::Property * > & getProperties() const 
It returns the properties that take part of the index. 
 
void removeIndex(const std::string &name)
 
ConstraintsIndexesListWidget(QWidget *parent=0, Qt::WindowFlags f=0)
 
Ui::ConstraintsIndexesListWidgetForm * getForm() const 
 
void addConstraint(te::da::Constraint *c)
 
#define CONSTRAINT_PK_TYPE
 
const std::string & getName() const 
It returns the index name. 
 
It describes a unique key (uk) constraint. 
 
virtual const std::string & getName() const 
It returns the constraint name. 
 
void removeUniqueKey(const std::string &name)
 
This file has the ConstraintsIndexesListWidget class. 
 
void onCellClicked(int row, int col)
 
A class that models the description of a dataset. 
 
A dialog for creating a constraint or a index property. 
 
~ConstraintsIndexesListWidget()
 
virtual ConstraintType getType() const =0
It returns the constraint type. 
 
void removePrimaryKey(const std::string &name)
 
std::auto_ptr< Ui::ConstraintsIndexesListWidgetForm > m_ui
 
void onRemoveToolButtonClicked()
 
void setDataSetType(te::da::DataSetType *dsType)