291{
292 if (
ui->RelationshipNameLineEdit->text().isEmpty() )
293 {
294 QMessageBox::warning ( 0, "Schema editor",
295 QString ( "Please Provide a name for the relationship !" ) );
296 return;
297 }
298
299 QString RelationshipName =
ui->RelationshipNameLineEdit->text();
300 QString RelationshipType =
ui->RelationshipTypeComboBox->currentText();
301 QString RelationshipDescription =
ui->RelationshipDescriptionTextEdit->toPlainText();
302
303 bool IsComposite;
304
305 if (
ui->IsCompositeCombo->currentIndex() == 0 )
306 {
307 IsComposite = true;
308 }
309 else
310 {
311 IsComposite = false;
312 }
313
314 bool IsExclusive;
315
316 if (
ui->IsExclusiveCombo->currentIndex() == 0 )
317 {
318 IsExclusive = true;
319 }
320 else
321 {
322 IsExclusive = false;
323 }
324
325 bool IsDependent;
326
327 if (
ui->IsDependentCombo->currentIndex() == 0 )
328 {
329 IsDependent = true;
330 }
331 else
332 {
333 IsDependent = false;
334 }
335
338
339 if (
ui->HighCcCombo->currentIndex() == 0 ) RelationshipHighCardinality =
340 OksRelationship::CardinalityConstraint::Zero;
341 else if (
ui->HighCcCombo->currentIndex() == 1 ) RelationshipHighCardinality =
342 OksRelationship::CardinalityConstraint::One;
343 else
344 {
345 RelationshipHighCardinality = OksRelationship::CardinalityConstraint::Many;
346 }
347
348 if (
ui->LowCcCombo->currentIndex() == 0 ) RelationshipLowCardinality =
349 OksRelationship::CardinalityConstraint::Zero;
350 else if (
ui->LowCcCombo->currentIndex() == 1 ) RelationshipLowCardinality =
351 OksRelationship::CardinalityConstraint::One;
352 else
353 {
354 RelationshipLowCardinality = OksRelationship::CardinalityConstraint::Many;
355 }
356
358 RelationshipName.toStdString(),
359 RelationshipDescription.toStdString(),
360 RelationshipType.toStdString(),
361 IsComposite, IsExclusive, IsDependent,
362 RelationshipLowCardinality,
363 RelationshipHighCardinality );
365
368 ui->RelationshipTypeComboBox->currentText(),
369 RelationshipName );
370
371 close();
372}
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 MakeGraphConnection(QString ClassName1, QString ClassName2, QString RelationshipName)