5#include "ui_SchemaRelationshipEditor.h"
21 QWidget::setAttribute(Qt::WA_DeleteOnClose);
28 QString (
"Relationship Editor : %1" ).arg ( title.c_str() ) );
42 QWidget::setAttribute(Qt::WA_DeleteOnClose);
45 auto title =
SchemaClass->get_name() +
" New Relationship";
47 QString (
"Relationship Editor : %1" ).arg ( title.c_str() ) );
62 QWidget::setAttribute(Qt::WA_DeleteOnClose);
65 setWindowTitle (
"New Relationship" );
68 ui->RelationshipTypeComboBox->setCurrentIndex (
69 ui->RelationshipTypeComboBox->findData ( ClassType, Qt::DisplayRole ) );
85 setObjectName ( QString::fromStdString ( name ) );
86 ui->RelationshipNameLineEdit->setText (
88 ui->RelationshipTypeComboBox->setCurrentIndex (
89 ui->RelationshipTypeComboBox->findData (
91 ui->RelationshipDescriptionTextEdit->setPlainText (
96 ui->IsCompositeCombo->setCurrentIndex ( 0 );
100 ui->IsCompositeCombo->setCurrentIndex ( 1 );
105 ui->IsExclusiveCombo->setCurrentIndex ( 0 );
109 ui->IsExclusiveCombo->setCurrentIndex ( 1 );
114 ui->IsDependentCombo->setCurrentIndex ( 0 );
118 ui->IsDependentCombo->setCurrentIndex ( 1 );
123 ->LowCcCombo->setCurrentIndex ( 0 );
127 ui->LowCcCombo->setCurrentIndex ( 1 );
131 ui->LowCcCombo->setCurrentIndex ( 2 );
136 ->HighCcCombo->setCurrentIndex ( 0 );
140 ui->HighCcCombo->setCurrentIndex ( 1 );
144 ui->HighCcCombo->setCurrentIndex ( 2 );
149 if (event->key() == Qt::Key_Escape) {
152 QWidget::keyPressEvent(event);
158 QStringList ClassList;
160 ui->RelationshipTypeComboBox->addItems ( ClassList );
162 setObjectName ( QString::fromStdString(name) );
165 ui->RelationshipTypeComboBox->setEnabled(
false);
166 ui->IsCompositeCombo->setEnabled(
false);
167 ui->IsExclusiveCombo->setEnabled(
false);
168 ui->IsDependentCombo->setEnabled(
false);
169 ui->LowCcCombo->setEnabled(
false);
170 ui->HighCcCombo->setEnabled(
false);
171 ui->RelationshipDescriptionTextEdit->setEnabled(
false);
172 ui->RelationshipNameLineEdit->setEnabled(
false);
184 connect (
ui->buttonBox, SIGNAL ( accepted() ),
this, SLOT (
ProxySlot() ) );
187 connect (
ui->buttonBox, SIGNAL ( accepted() ),
this, SLOT ( close() ) );
189 connect (
ui->buttonBox, SIGNAL ( rejected() ),
this, SLOT ( close() ) );
198 bool changed =
false;
199 QString RelationshipName =
ui->RelationshipNameLineEdit->text();
200 QString RelationshipType =
ui->RelationshipTypeComboBox->currentText();
201 QString RelationshipDescription =
ui->RelationshipDescriptionTextEdit->toPlainText();
205 if (
ui->IsCompositeCombo->currentIndex() == 0 )
216 if (
ui->IsExclusiveCombo->currentIndex() == 0 )
227 if (
ui->IsDependentCombo->currentIndex() == 0 )
239 if (
ui->HighCcCombo->currentIndex() == 0 ) RelationshipHighCardinality =
241 else if (
ui->HighCcCombo->currentIndex() == 1 ) RelationshipHighCardinality =
248 if (
ui->LowCcCombo->currentIndex() == 0 ) RelationshipLowCardinality =
250 else if (
ui->LowCcCombo->currentIndex() == 1 ) RelationshipLowCardinality =
271 if ( RelationshipDescription != QString::fromStdString (
303 if ( RelationshipHighCardinality !=
SchemaRelationship->get_high_cardinality_constraint() )
310 if ( RelationshipLowCardinality !=
SchemaRelationship->get_low_cardinality_constraint() )
327 if (
ui->RelationshipNameLineEdit->text().isEmpty() )
329 QMessageBox::warning ( 0,
"Schema editor",
330 QString (
"Please Provide a name for the relationship !" ) );
334 QString RelationshipName =
ui->RelationshipNameLineEdit->text();
335 QString RelationshipType =
ui->RelationshipTypeComboBox->currentText();
336 QString RelationshipDescription =
ui->RelationshipDescriptionTextEdit->toPlainText();
340 if (
ui->IsCompositeCombo->currentIndex() == 0 )
351 if (
ui->IsExclusiveCombo->currentIndex() == 0 )
362 if (
ui->IsDependentCombo->currentIndex() == 0 )
374 if (
ui->HighCcCombo->currentIndex() == 0 ) RelationshipHighCardinality =
376 else if (
ui->HighCcCombo->currentIndex() == 1 ) RelationshipHighCardinality =
383 if (
ui->LowCcCombo->currentIndex() == 0 ) RelationshipLowCardinality =
385 else if (
ui->LowCcCombo->currentIndex() == 1 ) RelationshipLowCardinality =
393 RelationshipName.toStdString(),
394 RelationshipDescription.toStdString(),
395 RelationshipType.toStdString(),
396 IsComposite, IsExclusive, IsDependent,
397 RelationshipLowCardinality,
398 RelationshipHighCardinality );
403 ui->RelationshipTypeComboBox->currentText(),
423 QStringList ClassList;
425 ui->RelationshipTypeComboBox->clear();
426 ui->RelationshipTypeComboBox->addItems ( ClassList );
427 ui->RelationshipTypeComboBox->setCurrentIndex (
428 ui->RelationshipTypeComboBox->findData (
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
OksFile * get_file() const noexcept
const std::string & get_full_file_name() const