279{
280 if (
ui->RelationshipNameLineEdit->text().isEmpty()) {
281 QMessageBox::warning(0, "Schema editor", QString("Please Provide a name for the relationship !"));
282 return;
283 }
284
285 QString RelationshipName =
ui->RelationshipNameLineEdit->text();
286 QString RelationshipType =
ui->RelationshipTypeComboBox->currentText();
287 QString RelationshipDescription =
ui->RelationshipDescriptionTextEdit->toPlainText();
288
289 bool IsComposite;
290
291 if (
ui->IsCompositeCombo->currentIndex() == 0) {
292 IsComposite = true;
293 } else {
294 IsComposite = false;
295 }
296
297 bool IsExclusive;
298
299 if (
ui->IsExclusiveCombo->currentIndex() == 0) {
300 IsExclusive = true;
301 } else {
302 IsExclusive = false;
303 }
304
305 bool IsDependent;
306
307 if (
ui->IsDependentCombo->currentIndex() == 0) {
308 IsDependent = true;
309 } else {
310 IsDependent = false;
311 }
312
315
316 if (
ui->HighCcCombo->currentIndex() == 0)
317 RelationshipHighCardinality = OksRelationship::CardinalityConstraint::Zero;
318 else if (
ui->HighCcCombo->currentIndex() == 1)
319 RelationshipHighCardinality = OksRelationship::CardinalityConstraint::One;
320 else {
321 RelationshipHighCardinality = OksRelationship::CardinalityConstraint::Many;
322 }
323
324 if (
ui->LowCcCombo->currentIndex() == 0)
325 RelationshipLowCardinality = OksRelationship::CardinalityConstraint::Zero;
326 else if (
ui->LowCcCombo->currentIndex() == 1)
327 RelationshipLowCardinality = OksRelationship::CardinalityConstraint::One;
328 else {
329 RelationshipLowCardinality = OksRelationship::CardinalityConstraint::Many;
330 }
331
333 RelationshipName.toStdString(),
334 RelationshipDescription.toStdString(),
335 RelationshipType.toStdString(),
336 IsComposite,
337 IsExclusive,
338 IsDependent,
339 RelationshipLowCardinality,
340 RelationshipHighCardinality);
342
345 QString::fromStdString(
SchemaClass->
get_name()),
ui->RelationshipTypeComboBox->currentText(), RelationshipName);
346
347 close();
348}
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)