76 setObjectName ( QString::fromStdString ( SchemaRelationship->get_name() ) );
77 ui->RelationshipNameLineEdit->setText (
78 QString::fromStdString ( SchemaRelationship->get_name() ) );
79 ui->RelationshipTypeComboBox->setCurrentIndex (
80 ui->RelationshipTypeComboBox->findData (
81 QString::fromStdString ( SchemaRelationship->get_type() ), Qt::DisplayRole ) );
82 ui->RelationshipDescriptionTextEdit->setPlainText (
83 QString::fromStdString ( SchemaRelationship->get_description() ) );
85 if ( SchemaRelationship->get_is_composite() )
87 ui->IsCompositeCombo->setCurrentIndex ( 0 );
91 ui->IsCompositeCombo->setCurrentIndex ( 1 );
94 if ( SchemaRelationship->get_is_exclusive() )
96 ui->IsExclusiveCombo->setCurrentIndex ( 0 );
100 ui->IsExclusiveCombo->setCurrentIndex ( 1 );
103 if ( SchemaRelationship->get_is_dependent() )
105 ui->IsDependentCombo->setCurrentIndex ( 0 );
109 ui->IsDependentCombo->setCurrentIndex ( 1 );
112 if ( SchemaRelationship->get_low_cardinality_constraint() ==
113 OksRelationship::CardinalityConstraint::Zero ) ui
114 ->LowCcCombo->setCurrentIndex ( 0 );
115 else if ( SchemaRelationship->get_low_cardinality_constraint()
116 == OksRelationship::CardinalityConstraint::One )
118 ui->LowCcCombo->setCurrentIndex ( 1 );
122 ui->LowCcCombo->setCurrentIndex ( 2 );
125 if ( SchemaRelationship->get_high_cardinality_constraint() ==
126 OksRelationship::CardinalityConstraint::Zero ) ui
127 ->HighCcCombo->setCurrentIndex ( 0 );
128 else if ( SchemaRelationship->get_high_cardinality_constraint()
129 == OksRelationship::CardinalityConstraint::One )
131 ui->HighCcCombo->setCurrentIndex ( 1 );
135 ui->HighCcCombo->setCurrentIndex ( 2 );
153 connect ( ui->buttonBox, SIGNAL ( accepted() ),
this, SLOT ( ProxySlot() ) );
154 connect ( ui->buttonBox, SIGNAL ( rejected() ),
this, SLOT ( close() ) );
156 SLOT ( UpdateClassCombo() ) );
158 SLOT ( ClassUpdated ( QString ) ) );
163 bool changed =
false;
164 QString RelationshipName = ui->RelationshipNameLineEdit->text();
165 QString RelationshipType = ui->RelationshipTypeComboBox->currentText();
166 QString RelationshipDescription = ui->RelationshipDescriptionTextEdit->toPlainText();
170 if ( ui->IsCompositeCombo->currentIndex() == 0 )
181 if ( ui->IsExclusiveCombo->currentIndex() == 0 )
192 if ( ui->IsDependentCombo->currentIndex() == 0 )
204 if ( ui->HighCcCombo->currentIndex() == 0 ) RelationshipHighCardinality =
205 OksRelationship::CardinalityConstraint::Zero;
206 else if ( ui->HighCcCombo->currentIndex() == 1 ) RelationshipHighCardinality =
207 OksRelationship::CardinalityConstraint::One;
210 RelationshipHighCardinality = OksRelationship::CardinalityConstraint::Many;
213 if ( ui->LowCcCombo->currentIndex() == 0 ) RelationshipLowCardinality =
214 OksRelationship::CardinalityConstraint::Zero;
215 else if ( ui->LowCcCombo->currentIndex() == 1 ) RelationshipLowCardinality =
216 OksRelationship::CardinalityConstraint::One;
219 RelationshipLowCardinality = OksRelationship::CardinalityConstraint::Many;
222 if ( RelationshipName != QString::fromStdString ( SchemaRelationship->get_name() ) )
225 SchemaClass, SchemaRelationship, RelationshipName.toStdString() );
229 if ( RelationshipType != QString::fromStdString ( SchemaRelationship->get_type() ) )
232 SchemaClass, SchemaRelationship, RelationshipType.toStdString() );
236 if ( RelationshipDescription != QString::fromStdString (
237 SchemaRelationship->get_description() ) )
240 SchemaClass, SchemaRelationship, RelationshipDescription.toStdString() );
244 if ( SchemaRelationship->get_is_composite() != IsComposite )
252 if ( SchemaRelationship->get_is_exclusive() != IsExclusive )
260 if ( SchemaRelationship->get_is_dependent() != IsDependent )
268 if ( RelationshipHighCardinality != SchemaRelationship->get_high_cardinality_constraint() )
271 SchemaClass, SchemaRelationship, RelationshipHighCardinality );
275 if ( RelationshipLowCardinality != SchemaRelationship->get_low_cardinality_constraint() )
278 SchemaClass, SchemaRelationship, RelationshipLowCardinality );
292 if ( ui->RelationshipNameLineEdit->text().isEmpty() )
294 QMessageBox::warning ( 0,
"Schema editor",
295 QString (
"Please Provide a name for the relationship !" ) );
299 QString RelationshipName = ui->RelationshipNameLineEdit->text();
300 QString RelationshipType = ui->RelationshipTypeComboBox->currentText();
301 QString RelationshipDescription = ui->RelationshipDescriptionTextEdit->toPlainText();
305 if ( ui->IsCompositeCombo->currentIndex() == 0 )
316 if ( ui->IsExclusiveCombo->currentIndex() == 0 )
327 if ( ui->IsDependentCombo->currentIndex() == 0 )
339 if ( ui->HighCcCombo->currentIndex() == 0 ) RelationshipHighCardinality =
340 OksRelationship::CardinalityConstraint::Zero;
341 else if ( ui->HighCcCombo->currentIndex() == 1 ) RelationshipHighCardinality =
342 OksRelationship::CardinalityConstraint::One;
345 RelationshipHighCardinality = OksRelationship::CardinalityConstraint::Many;
348 if ( ui->LowCcCombo->currentIndex() == 0 ) RelationshipLowCardinality =
349 OksRelationship::CardinalityConstraint::Zero;
350 else if ( ui->LowCcCombo->currentIndex() == 1 ) RelationshipLowCardinality =
351 OksRelationship::CardinalityConstraint::One;
354 RelationshipLowCardinality = OksRelationship::CardinalityConstraint::Many;
358 RelationshipName.toStdString(),
359 RelationshipDescription.toStdString(),
360 RelationshipType.toStdString(),
361 IsComposite, IsExclusive, IsDependent,
362 RelationshipLowCardinality,
363 RelationshipHighCardinality );
366 if ( GraphScene ) emit MakeGraphConnection ( QString::fromStdString (
367 SchemaClass->get_name() ),
368 ui->RelationshipTypeComboBox->currentText(),
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)