84 auto name = SchemaClass->get_name() +
"::" + SchemaRelationship->get_name();
85 setObjectName ( QString::fromStdString ( name ) );
86 ui->RelationshipNameLineEdit->setText (
87 QString::fromStdString ( SchemaRelationship->get_name() ) );
88 ui->RelationshipTypeComboBox->setCurrentIndex (
89 ui->RelationshipTypeComboBox->findData (
90 QString::fromStdString ( SchemaRelationship->get_type() ), Qt::DisplayRole ) );
91 ui->RelationshipDescriptionTextEdit->setPlainText (
92 QString::fromStdString ( SchemaRelationship->get_description() ) );
94 if ( SchemaRelationship->get_is_composite() )
96 ui->IsCompositeCombo->setCurrentIndex ( 0 );
100 ui->IsCompositeCombo->setCurrentIndex ( 1 );
103 if ( SchemaRelationship->get_is_exclusive() )
105 ui->IsExclusiveCombo->setCurrentIndex ( 0 );
109 ui->IsExclusiveCombo->setCurrentIndex ( 1 );
112 if ( SchemaRelationship->get_is_dependent() )
114 ui->IsDependentCombo->setCurrentIndex ( 0 );
118 ui->IsDependentCombo->setCurrentIndex ( 1 );
121 if ( SchemaRelationship->get_low_cardinality_constraint() ==
122 OksRelationship::CardinalityConstraint::Zero ) ui
123 ->LowCcCombo->setCurrentIndex ( 0 );
124 else if ( SchemaRelationship->get_low_cardinality_constraint()
125 == OksRelationship::CardinalityConstraint::One )
127 ui->LowCcCombo->setCurrentIndex ( 1 );
131 ui->LowCcCombo->setCurrentIndex ( 2 );
134 if ( SchemaRelationship->get_high_cardinality_constraint() ==
135 OksRelationship::CardinalityConstraint::Zero ) ui
136 ->HighCcCombo->setCurrentIndex ( 0 );
137 else if ( SchemaRelationship->get_high_cardinality_constraint()
138 == OksRelationship::CardinalityConstraint::One )
140 ui->HighCcCombo->setCurrentIndex ( 1 );
144 ui->HighCcCombo->setCurrentIndex ( 2 );
158 QStringList ClassList;
160 ui->RelationshipTypeComboBox->addItems ( ClassList );
161 auto name = SchemaClass->get_name() +
"::";
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() ) );
191 SLOT ( UpdateClassCombo() ) );
193 SLOT ( ClassUpdated ( QString ) ) );
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 =
240 OksRelationship::CardinalityConstraint::Zero;
241 else if ( ui->HighCcCombo->currentIndex() == 1 ) RelationshipHighCardinality =
242 OksRelationship::CardinalityConstraint::One;
245 RelationshipHighCardinality = OksRelationship::CardinalityConstraint::Many;
248 if ( ui->LowCcCombo->currentIndex() == 0 ) RelationshipLowCardinality =
249 OksRelationship::CardinalityConstraint::Zero;
250 else if ( ui->LowCcCombo->currentIndex() == 1 ) RelationshipLowCardinality =
251 OksRelationship::CardinalityConstraint::One;
254 RelationshipLowCardinality = OksRelationship::CardinalityConstraint::Many;
257 if ( RelationshipName != QString::fromStdString ( SchemaRelationship->get_name() ) )
260 SchemaClass, SchemaRelationship, RelationshipName.toStdString() );
264 if ( RelationshipType != QString::fromStdString ( SchemaRelationship->get_type() ) )
267 SchemaClass, SchemaRelationship, RelationshipType.toStdString() );
271 if ( RelationshipDescription != QString::fromStdString (
272 SchemaRelationship->get_description() ) )
275 SchemaClass, SchemaRelationship, RelationshipDescription.toStdString() );
279 if ( SchemaRelationship->get_is_composite() != IsComposite )
287 if ( SchemaRelationship->get_is_exclusive() != IsExclusive )
295 if ( SchemaRelationship->get_is_dependent() != IsDependent )
303 if ( RelationshipHighCardinality != SchemaRelationship->get_high_cardinality_constraint() )
306 SchemaClass, SchemaRelationship, RelationshipHighCardinality );
310 if ( RelationshipLowCardinality != SchemaRelationship->get_low_cardinality_constraint() )
313 SchemaClass, SchemaRelationship, RelationshipLowCardinality );
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 =
375 OksRelationship::CardinalityConstraint::Zero;
376 else if ( ui->HighCcCombo->currentIndex() == 1 ) RelationshipHighCardinality =
377 OksRelationship::CardinalityConstraint::One;
380 RelationshipHighCardinality = OksRelationship::CardinalityConstraint::Many;
383 if ( ui->LowCcCombo->currentIndex() == 0 ) RelationshipLowCardinality =
384 OksRelationship::CardinalityConstraint::Zero;
385 else if ( ui->LowCcCombo->currentIndex() == 1 ) RelationshipLowCardinality =
386 OksRelationship::CardinalityConstraint::One;
389 RelationshipLowCardinality = OksRelationship::CardinalityConstraint::Many;
393 RelationshipName.toStdString(),
394 RelationshipDescription.toStdString(),
395 RelationshipType.toStdString(),
396 IsComposite, IsExclusive, IsDependent,
397 RelationshipLowCardinality,
398 RelationshipHighCardinality );
401 if ( GraphScene ) emit MakeGraphConnection ( QString::fromStdString (
402 SchemaClass->get_name() ),
403 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)