11#include "ui_SchemaRelationshipEditor.h"
27 QWidget::setAttribute(Qt::WA_DeleteOnClose);
33 setWindowTitle(QString(
"Relationship Editor : %1").arg(title.c_str()));
46 QWidget::setAttribute(Qt::WA_DeleteOnClose);
49 setWindowTitle(QString(
"Relationship Editor : %1 New Relationship").arg(
SchemaClass->
get_name().c_str()));
62 QWidget::setAttribute(Qt::WA_DeleteOnClose);
65 setWindowTitle(QString(
"Relationship Editor : %1 New Relationship").arg(
SchemaClass->
get_name().c_str()));
68 ui->RelationshipTypeComboBox->setCurrentIndex(
ui->RelationshipTypeComboBox->findData(ClassType, Qt::DisplayRole));
86 setObjectName(QString::fromStdString(name));
88 ui->RelationshipTypeComboBox->setCurrentIndex(
89 ui->RelationshipTypeComboBox->findData(QString::fromStdString(
SchemaRelationship->get_type()), Qt::DisplayRole));
90 ui->RelationshipDescriptionTextEdit->setPlainText(QString::fromStdString(
SchemaRelationship->get_description()));
93 ui->IsCompositeCombo->setCurrentIndex(0);
95 ui->IsCompositeCombo->setCurrentIndex(1);
99 ui->IsExclusiveCombo->setCurrentIndex(0);
101 ui->IsExclusiveCombo->setCurrentIndex(1);
105 ui->IsDependentCombo->setCurrentIndex(0);
107 ui->IsDependentCombo->setCurrentIndex(1);
111 ui->LowCcCombo->setCurrentIndex(0);
113 ui->LowCcCombo->setCurrentIndex(1);
115 ui->LowCcCombo->setCurrentIndex(2);
119 ui->HighCcCombo->setCurrentIndex(0);
121 ui->HighCcCombo->setCurrentIndex(1);
123 ui->HighCcCombo->setCurrentIndex(2);
130 if (event->key() == Qt::Key_Escape) {
133 QWidget::keyPressEvent(event);
139 QStringList ClassList;
141 ui->RelationshipTypeComboBox->addItems(ClassList);
143 setObjectName(QString::fromStdString(name));
146 ui->RelationshipTypeComboBox->setEnabled(
false);
147 ui->IsCompositeCombo->setEnabled(
false);
148 ui->IsExclusiveCombo->setEnabled(
false);
149 ui->IsDependentCombo->setEnabled(
false);
150 ui->LowCcCombo->setEnabled(
false);
151 ui->HighCcCombo->setEnabled(
false);
152 ui->RelationshipDescriptionTextEdit->setEnabled(
false);
153 ui->RelationshipNameLineEdit->setEnabled(
false);
165 connect(
ui->buttonBox, SIGNAL(accepted()),
this, SLOT(
ProxySlot()));
167 connect(
ui->buttonBox, SIGNAL(accepted()),
this, SLOT(close()));
169 connect(
ui->buttonBox, SIGNAL(rejected()),
this, SLOT(close()));
177 bool changed =
false;
178 QString RelationshipName =
ui->RelationshipNameLineEdit->text();
179 QString RelationshipType =
ui->RelationshipTypeComboBox->currentText();
180 QString RelationshipDescription =
ui->RelationshipDescriptionTextEdit->toPlainText();
184 if (
ui->IsCompositeCombo->currentIndex() == 0) {
192 if (
ui->IsExclusiveCombo->currentIndex() == 0) {
200 if (
ui->IsDependentCombo->currentIndex() == 0) {
209 if (
ui->HighCcCombo->currentIndex() == 0)
211 else if (
ui->HighCcCombo->currentIndex() == 1)
217 if (
ui->LowCcCombo->currentIndex() == 0)
219 else if (
ui->LowCcCombo->currentIndex() == 1)
237 if (RelationshipDescription != QString::fromStdString(
SchemaRelationship->get_description())) {
258 if (RelationshipHighCardinality !=
SchemaRelationship->get_high_cardinality_constraint()) {
264 if (RelationshipLowCardinality !=
SchemaRelationship->get_low_cardinality_constraint()) {
280 if (
ui->RelationshipNameLineEdit->text().isEmpty()) {
281 QMessageBox::warning(0,
"Schema editor", QString(
"Please Provide a name for the relationship !"));
285 QString RelationshipName =
ui->RelationshipNameLineEdit->text();
286 QString RelationshipType =
ui->RelationshipTypeComboBox->currentText();
287 QString RelationshipDescription =
ui->RelationshipDescriptionTextEdit->toPlainText();
291 if (
ui->IsCompositeCombo->currentIndex() == 0) {
299 if (
ui->IsExclusiveCombo->currentIndex() == 0) {
307 if (
ui->IsDependentCombo->currentIndex() == 0) {
316 if (
ui->HighCcCombo->currentIndex() == 0)
318 else if (
ui->HighCcCombo->currentIndex() == 1)
324 if (
ui->LowCcCombo->currentIndex() == 0)
326 else if (
ui->LowCcCombo->currentIndex() == 1)
333 RelationshipName.toStdString(),
334 RelationshipDescription.toStdString(),
335 RelationshipType.toStdString(),
339 RelationshipLowCardinality,
340 RelationshipHighCardinality);
345 QString::fromStdString(
SchemaClass->get_name()),
ui->RelationshipTypeComboBox->currentText(), RelationshipName);
363 QStringList ClassList;
365 ui->RelationshipTypeComboBox->clear();
366 ui->RelationshipTypeComboBox->addItems(ClassList);
367 ui->RelationshipTypeComboBox->setCurrentIndex(
368 ui->RelationshipTypeComboBox->findData(QString::fromStdString(
SchemaRelationship->get_type()), Qt::DisplayRole));
void PushSetIsCompositeRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, bool Value)
void GetClassListString(QStringList &ClassListString) const
static KernelWrapper & GetInstance()
void PushSetHighCcRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, dunedaq::oks::OksRelationship::CardinalityConstraint NewCardinality)
void PushSetIsDependentRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, bool Value)
void PushAddRelationship(dunedaq::oks::OksClass *Class, std::string Name, std::string Description, std::string Type, bool Composite, bool Exclusive, bool Dependent, dunedaq::oks::OksRelationship::CardinalityConstraint LowCc, dunedaq::oks::OksRelationship::CardinalityConstraint HighCc)
void PushSetIsExclusiveRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, bool Value)
void PushSetClassTypeRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, std::string ClassType)
void PushSetLowCcRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, dunedaq::oks::OksRelationship::CardinalityConstraint NewCardinality)
bool IsFileWritable(const std::string &FileName) const
void PushSetDescriptionRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, std::string Description)
void PushSetNameRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, std::string Name)
Relationship commands.
void ClassUpdated(QString className)
dbse::Ui::SchemaRelationshipEditor * ui
dunedaq::oks::OksClass * SchemaClass
void MakeGraphConnection(QString ClassName1, QString ClassName2, QString RelationshipName)
SchemaRelationshipEditor(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, QWidget *parent=nullptr)
~SchemaRelationshipEditor()
void keyPressEvent(QKeyEvent *event) override
dunedaq::oks::OksRelationship * SchemaRelationship
const std::string & get_name() const noexcept
OksFile * get_file() const noexcept
const std::string & get_full_file_name() const
const std::string & get_name() const noexcept