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.