DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
SchemaClassEditor.hpp
Go to the documentation of this file.
1// DUNE DAQ modification notice:
2// This file has been modified from the original ATLAS dbe source for the DUNE DAQ project.
3// Fork baseline commit: dbe-02-12-17 (2022-05-12).
4// Renamed since fork: yes (from dbe/SchemaClassEditor.h to include/dbe/SchemaClassEditor.hpp).
5
6#ifndef SCHEMACLASSEDITOR_H
7#define SCHEMACLASSEDITOR_H
8
9#include <memory>
11#include <QMenu>
12#include <QWidget>
14#include "oks/class.hpp"
21
22namespace dbse {
23
24namespace Ui {
25class SchemaClassEditor;
26} // namespace Ui
27
28class SchemaClassEditor : public QWidget
29{
30 Q_OBJECT
31public:
33
34 explicit SchemaClassEditor(dunedaq::oks::OksClass* ClassInfo, QWidget* parent = nullptr);
35
36 static QString createNewClass();
37 static void launch(QString class_name);
38 static void move_class(dunedaq::oks::OksClass* schema_class, QWidget* widget);
39
40private:
41 void keyPressEvent(QKeyEvent* event);
42 void SetController();
43 void BuildModels();
44 void InitialSettings();
46 bool ShouldOpenAttributeEditor(QString Name);
47 bool ShouldOpenRelationshipEditor(QString Name);
48 bool ShouldOpenMethodEditor(QString Name);
49
50 std::unique_ptr<dbse::Ui::SchemaClassEditor> ui;
51
62 QStringList CurrentRow;
63
64 void OpenNewClassEditor(const QString& ClassName);
65
66private slots:
67 void close_slot() { close(); }
68 void OpenSuperClass(QModelIndex Index);
69 void OpenSubClass(QModelIndex Index);
70
71 void ParseToSave();
72 void AddNewSuperClass();
73 void AddNewAttribute();
74 void AddNewRelationship();
75 void AddNewMethod();
76 void OpenAttributeEditor(QModelIndex Index);
77 void OpenRelationshipEditor(QModelIndex Index);
78 void OpenMethodEditor(QModelIndex Index);
85 void CustomMenuAttributeView(QPoint pos);
86 void CustomMenuRelationshipView(QPoint pos);
87 void CustomMenuMethodView(QPoint pos);
88 void CustomMenuClassView(QPoint pos);
90 void RemoveAttribute();
91 void RemoveRelationship();
92 void RemoveMethod();
93 void RemoveSuperClass();
94 void ClassRemoved(QString className);
95 void ClassUpdated(QString className);
96
97 void move_class();
98};
99} // namespace dbse
100
101#endif // SCHEMACLASSEDITOR_H
RemoveRelationship(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, 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 CustomMenuMethodView(QPoint pos)
void keyPressEvent(QKeyEvent *event)
void OpenRelationshipEditor(QModelIndex Index)
void ClassUpdated(QString className)
bool ShouldOpenAttributeEditor(QString Name)
Helper functions.
CustomRelationshipModel * RelationshipModel
bool ShouldOpenRelationshipEditor(QString Name)
CustomSuperClassModel * SuperClassModel
bool ShouldOpenMethodEditor(QString Name)
CustomMethodModel * MethodModel
static void move_class(dunedaq::oks::OksClass *schema_class, QWidget *widget)
void RemoveAttribute()
Remove Functions.
void CustomMenuRelationshipView(QPoint pos)
void ClassRemoved(QString className)
void OpenSuperClass(QModelIndex Index)
SchemaClassEditor(dunedaq::oks::OksClass *ClassInfo, QWidget *parent=nullptr)
static void launch(QString class_name)
dunedaq::oks::OksClass * SchemaClass
void CustomMenuClassView(QPoint pos)
void OpenMethodEditor(QModelIndex Index)
CustomAttributeModel * AttributeModel
void OpenSubClass(QModelIndex Index)
std::unique_ptr< dbse::Ui::SchemaClassEditor > ui
void OpenAttributeEditor(QModelIndex Index)
void OpenNewClassEditor(const QString &ClassName)
void CustomMenuAttributeView(QPoint pos)
Context Menu Functions.
CustomSubClassModel * SubClassModel
The OKS class.
Definition class.hpp:223
Including QT Headers.