10#include <QGraphicsPixmapItem>
11#include <QGraphicsScene>
15#include <QGraphicsSceneMouseEvent>
17#include <QApplication>
26 Parent ( ParentNode ),
27 HasStructure ( false ),
40 Data.append ( Datum );
48 for (
auto & i : DataList )
56 qDeleteAll ( Children );
61 if ( role == Qt::DisplayRole )
63 return Data.value ( Column );
73 Data[0] = QVariant ( name );
78 throw daq::dbe::cannot_handle_invalid_qmodelindex (
ERS_HERE );
85 return Parent->Children.indexOf (
const_cast<treenode *
> (
this ) );
93 Children.append ( Child );
98 Children.removeOne ( Child );
103 return Children.at ( Row );
118 return Children.size();
128 HasStructure = Structure;
138 WasFetched = Fetched;
162 addition ? ++numObjects : --numObjects;
164 Data[1] = QVariant ( numObjects );
168 if ( numObjects == 0 )
170 SetWasFetched (
true );
174 SetHasStructure (
true );
195 case Qt::DisplayRole:
196 return Data.value ( Column );
198 case Qt::ToolTipRole:
203 case Qt::DecorationRole:
207 return QIcon (
":/Images/Folder.png" );
230 std::vector<dunedaq::conffwk::attribute_t> Attributes = ClassInfo.
p_attributes;
231 std::vector<dunedaq::conffwk::relationship_t> Relationships = ClassInfo.
p_relationships;
233 if ( ( Relationships.size() > 0 ) )
259 case Qt::DisplayRole:
260 return Data.value ( Column );
262 case Qt::DecorationRole:
266 return QIcon (
":/Images/TextGeneric.png" );
276 return configdata.
ref();
283 attribute_t_definition ( AttributeData )
285 Data.append ( QVariant ( QString::fromStdString ( AttributeData.
p_name ) ) );
292 for ( QString & ObjectData : DataList )
294 if ( !ObjectData.isEmpty() )
301 if ( DataList.size() > 0 && !DataList.at ( 0 ).isNull() )
303 SetHasStructure ( true );
316 case Qt::DisplayRole:
317 return Data.value ( Column );
319 case Qt::DecorationRole:
323 return QIcon (
":/Images/SLink.png" );
332 return attribute_t_definition;
339 relation_t_definition ( relation )
341 Data.append ( QVariant ( QString::fromStdString ( relation.p_name ) ) );
343 std::vector<tref> DataList;
354 dbe::config::api::graph::linked::through::relation<tref> (
357 DataList.push_back ( Data );
359 catch ( daq::dbe::config_object_retrieval_result_is_null
const & e )
372 for (
tref const & Object : DataList )
374 new ObjectNode ( Object,
true,
static_cast<treenode *
> (
this ) );
377 if ( DataList.size() > 0 )
379 SetHasStructure ( true );
382 SetWasFetched (
true );
392 case Qt::DisplayRole:
393 return Data.value ( Column );
395 case Qt::DecorationRole:
399 return QIcon (
":/Images/SLink.png" );
408 return relation_t_definition;
virtual QVariant GetData(const int Column, int role=Qt::DisplayRole) const
dunedaq::conffwk::attribute_t attribute_t() const
AttributeNode(const dunedaq::conffwk::attribute_t &AttributeData, treenode *ParentNode)
void AddChild(treenode *Child) override
dunedaq::conffwk::class_t GetClassInfo() const
void updateData(bool addition)
virtual QVariant GetData(int Column, int role=Qt::DisplayRole) const
void RemoveChild(treenode *Child) override
dunedaq::conffwk::class_t ClassInfo
ClassNode(const dunedaq::conffwk::class_t &Info, treenode *ParentNode)
ObjectNode(dref ObjectData, bool IsCopy, treenode *ParentNode)
virtual QVariant GetData(const int Column, int role=Qt::DisplayRole) const
virtual QVariant GetData(const int Column, int role=Qt::DisplayRole) const
dunedaq::conffwk::relationship_t relation_t_definition
dunedaq::conffwk::relationship_t relation_t() const
RelationshipNode(const dunedaq::conffwk::relationship_t &RelationshipData, treenode *ParentNode)
static void increase_total_objects(int const i)
static T list(dbe::inner::configobject::tref obj, dunedaq::conffwk::attribute_t const &attr)
static dunedaq::conffwk::class_t definition(std::string const &cn, bool direct_only)
dunedaq::conffwk::ConfigObject & ref(bool check_null=true) const
treenode * GetParent() const
virtual void RemoveChild(treenode *Child)
void rename(QString const &)
void SetHasStructure(bool Structure)
bool GetHasStructure() const
virtual tref GetObject() const
treenode(treenode *ParentNode=nullptr)
Including QT Headers.
QList< treenode * > GetChildren() const
treenode * GetChild(const int Row) const
virtual void AddChild(treenode *Child)
bool GetWasFetched() const
virtual QVariant GetData(const int Column, int role=Qt::DisplayRole) const
void SetWasFetched(bool Fetched)
T relation(tref item, dunedaq::conffwk::relationship_t const &relation)
inner::configobject::tref tref
const std::vector< attribute_t > p_attributes
const std::vector< relationship_t > p_relationships
std::string p_description
cardinality_t p_cardinality