10#include "ui_SchemaRelationshipEditor.h"
26 QWidget::setAttribute(Qt::WA_DeleteOnClose);
33 QString (
"Relationship Editor : %1" ).arg ( title.c_str() ) );
47 QWidget::setAttribute(Qt::WA_DeleteOnClose);
50 setWindowTitle (QString(
"Relationship Editor : %1 New Relationship")
66 QWidget::setAttribute(Qt::WA_DeleteOnClose);
69 setWindowTitle (QString(
"Relationship Editor : %1 New Relationship")
73 ui->RelationshipTypeComboBox->setCurrentIndex (
74 ui->RelationshipTypeComboBox->findData ( ClassType, Qt::DisplayRole ) );
90 setObjectName ( QString::fromStdString ( name ) );
91 ui->RelationshipNameLineEdit->setText (
93 ui->RelationshipTypeComboBox->setCurrentIndex (
94 ui->RelationshipTypeComboBox->findData (
96 ui->RelationshipDescriptionTextEdit->setPlainText (
101 ui->IsCompositeCombo->setCurrentIndex ( 0 );
105 ui->IsCompositeCombo->setCurrentIndex ( 1 );
110 ui->IsExclusiveCombo->setCurrentIndex ( 0 );
114 ui->IsExclusiveCombo->setCurrentIndex ( 1 );
119 ui->IsDependentCombo->setCurrentIndex ( 0 );
123 ui->IsDependentCombo->setCurrentIndex ( 1 );
128 ->LowCcCombo->setCurrentIndex ( 0 );
132 ui->LowCcCombo->setCurrentIndex ( 1 );
136 ui->LowCcCombo->setCurrentIndex ( 2 );
141 ->HighCcCombo->setCurrentIndex ( 0 );
145 ui->HighCcCombo->setCurrentIndex ( 1 );
149 ui->HighCcCombo->setCurrentIndex ( 2 );
154 if (event->key() == Qt::Key_Escape) {
157 QWidget::keyPressEvent(event);
163 QStringList ClassList;
165 ui->RelationshipTypeComboBox->addItems ( ClassList );
167 setObjectName ( QString::fromStdString(name) );
170 ui->RelationshipTypeComboBox->setEnabled(
false);
171 ui->IsCompositeCombo->setEnabled(
false);
172 ui->IsExclusiveCombo->setEnabled(
false);
173 ui->IsDependentCombo->setEnabled(
false);
174 ui->LowCcCombo->setEnabled(
false);
175 ui->HighCcCombo->setEnabled(
false);
176 ui->RelationshipDescriptionTextEdit->setEnabled(
false);
177 ui->RelationshipNameLineEdit->setEnabled(
false);
189 connect (
ui->buttonBox, SIGNAL ( accepted() ),
this, SLOT (
ProxySlot() ) );
192 connect (
ui->buttonBox, SIGNAL ( accepted() ),
this, SLOT ( close() ) );
194 connect (
ui->buttonBox, SIGNAL ( rejected() ),
this, SLOT ( close() ) );
203 bool changed =
false;
204 QString RelationshipName =
ui->RelationshipNameLineEdit->text();
205 QString RelationshipType =
ui->RelationshipTypeComboBox->currentText();
206 QString RelationshipDescription =
ui->RelationshipDescriptionTextEdit->toPlainText();
210 if (
ui->IsCompositeCombo->currentIndex() == 0 )
221 if (
ui->IsExclusiveCombo->currentIndex() == 0 )
232 if (
ui->IsDependentCombo->currentIndex() == 0 )
244 if (
ui->HighCcCombo->currentIndex() == 0 ) RelationshipHighCardinality =
246 else if (
ui->HighCcCombo->currentIndex() == 1 ) RelationshipHighCardinality =
253 if (
ui->LowCcCombo->currentIndex() == 0 ) RelationshipLowCardinality =
255 else if (
ui->LowCcCombo->currentIndex() == 1 ) RelationshipLowCardinality =
276 if ( RelationshipDescription != QString::fromStdString (
308 if ( RelationshipHighCardinality !=
SchemaRelationship->get_high_cardinality_constraint() )
315 if ( RelationshipLowCardinality !=
SchemaRelationship->get_low_cardinality_constraint() )
332 if (
ui->RelationshipNameLineEdit->text().isEmpty() )
334 QMessageBox::warning ( 0,
"Schema editor",
335 QString (
"Please Provide a name for the relationship !" ) );
339 QString RelationshipName =
ui->RelationshipNameLineEdit->text();
340 QString RelationshipType =
ui->RelationshipTypeComboBox->currentText();
341 QString RelationshipDescription =
ui->RelationshipDescriptionTextEdit->toPlainText();
345 if (
ui->IsCompositeCombo->currentIndex() == 0 )
356 if (
ui->IsExclusiveCombo->currentIndex() == 0 )
367 if (
ui->IsDependentCombo->currentIndex() == 0 )
379 if (
ui->HighCcCombo->currentIndex() == 0 ) RelationshipHighCardinality =
381 else if (
ui->HighCcCombo->currentIndex() == 1 ) RelationshipHighCardinality =
388 if (
ui->LowCcCombo->currentIndex() == 0 ) RelationshipLowCardinality =
390 else if (
ui->LowCcCombo->currentIndex() == 1 ) RelationshipLowCardinality =
398 RelationshipName.toStdString(),
399 RelationshipDescription.toStdString(),
400 RelationshipType.toStdString(),
401 IsComposite, IsExclusive, IsDependent,
402 RelationshipLowCardinality,
403 RelationshipHighCardinality );
408 ui->RelationshipTypeComboBox->currentText(),
428 QStringList ClassList;
430 ui->RelationshipTypeComboBox->clear();
431 ui->RelationshipTypeComboBox->addItems ( ClassList );
432 ui->RelationshipTypeComboBox->setCurrentIndex (
433 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