diff options
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/constraints/constraintpanel.cpp')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/constraints/constraintpanel.cpp | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/constraints/constraintpanel.cpp b/SQLiteStudio3/guiSQLiteStudio/constraints/constraintpanel.cpp new file mode 100644 index 0000000..031fbfe --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/constraints/constraintpanel.cpp @@ -0,0 +1,96 @@ +#include "constraintpanel.h" +#include "common/unused.h" +#include "constraints/tableprimarykeypanel.h" +#include "constraints/tableforeignkeypanel.h" +#include "constraints/tableuniquepanel.h" +#include "constraints/tablecheckpanel.h" +#include "constraints/columncheckpanel.h" +#include "constraints/columncollatepanel.h" +#include "constraints/columndefaultpanel.h" +#include "constraints/columnforeignkeypanel.h" +#include "constraints/columnnotnullpanel.h" +#include "constraints/columnprimarykeypanel.h" +#include "constraints/columnuniquepanel.h" +#include <QDebug> + +ConstraintPanel::ConstraintPanel(QWidget *parent) : + QWidget(parent) +{ +} + +ConstraintPanel::~ConstraintPanel() +{ +} + +void ConstraintPanel::setConstraint(SqliteStatement* stmt) +{ + constraint = stmt; + constraintAvailable(); +} + +void ConstraintPanel::storeDefinition() +{ + storeConfiguration(); + constraint->rebuildTokens(); +} + +void ConstraintPanel::setDb(Db* value) +{ + db = value; +} + +bool ConstraintPanel::validateOnly() +{ + return validate(); +} + +ConstraintPanel* ConstraintPanel::produce(SqliteCreateTable::Constraint* constr) +{ + switch (constr->type) + { + case SqliteCreateTable::Constraint::PRIMARY_KEY: + return new TablePrimaryKeyPanel(); + case SqliteCreateTable::Constraint::UNIQUE: + return new TableUniquePanel(); + case SqliteCreateTable::Constraint::CHECK: + return new TableCheckPanel(); + case SqliteCreateTable::Constraint::FOREIGN_KEY: + return new TableForeignKeyPanel(); + case SqliteCreateTable::Constraint::NAME_ONLY: + break; + } + + qCritical() << "No panel defined in ConstraintPanel::createConstraintPanel()!"; + Q_ASSERT_X(true, "ConstraintPanel::produce()", "No panel defined!"); + return nullptr; +} + +ConstraintPanel* ConstraintPanel::produce(SqliteCreateTable::Column::Constraint* constr) +{ + switch (constr->type) + { + case SqliteCreateTable::Column::Constraint::PRIMARY_KEY: + return new ColumnPrimaryKeyPanel(); + case SqliteCreateTable::Column::Constraint::NOT_NULL: + return new ColumnNotNullPanel(); + case SqliteCreateTable::Column::Constraint::UNIQUE: + return new ColumnUniquePanel(); + case SqliteCreateTable::Column::Constraint::CHECK: + return new ColumnCheckPanel(); + case SqliteCreateTable::Column::Constraint::DEFAULT: + return new ColumnDefaultPanel(); + case SqliteCreateTable::Column::Constraint::COLLATE: + return new ColumnCollatePanel(); + case SqliteCreateTable::Column::Constraint::FOREIGN_KEY: + return new ColumnForeignKeyPanel(); + case SqliteCreateTable::Column::Constraint::NULL_: + case SqliteCreateTable::Column::Constraint::NAME_ONLY: + case SqliteCreateTable::Column::Constraint::DEFERRABLE_ONLY: + break; + } + + qCritical() << "No panel defined in ConstraintPanel::createConstraintPanel()!"; + Q_ASSERT_X(true, "ConstraintPanel::produce()", "No panel defined"); + return nullptr; +} + |
