9#include <QGraphicsPixmapItem>
10#include <QGraphicsScene>
14#include <QGraphicsSceneMouseEvent>
16#include <QApplication>
25 Parent ( ParentNode ),
26 HasStructure ( false ),
39 Data.append ( Datum );
47 for (
auto & i : DataList )
55 qDeleteAll ( Children );
60 if ( role == Qt::DisplayRole )
62 return Data.value ( Column );
72 Data[0] = QVariant ( name );
77 throw daq::dbe::cannot_handle_invalid_qmodelindex (
ERS_HERE );
84 return Parent->Children.indexOf (
const_cast<treenode *
> (
this ) );
92 Children.append ( Child );
97 Children.removeOne ( Child );
102 return Children.at ( Row );
117 return Children.size();
127 HasStructure = Structure;
137 WasFetched = Fetched;
160 addition ? ++numObjects : --numObjects;
162 Data[1] = QVariant ( numObjects );
166 if ( numObjects == 0 )
168 SetWasFetched (
true );
172 SetHasStructure (
true );
193 case Qt::DisplayRole:
194 return Data.value ( Column );
196 case Qt::DecorationRole:
200 return QIcon (
":/Images/Folder.png" );
224 std::vector<dunedaq::conffwk::attribute_t> Attributes = ClassInfo.
p_attributes;
225 std::vector<dunedaq::conffwk::relationship_t> Relationships = ClassInfo.
p_relationships;
227 if ( ( Relationships.size() > 0 ) )
253 case Qt::DisplayRole:
254 return Data.value ( Column );
256 case Qt::DecorationRole:
260 return QIcon (
":/Images/TextGeneric.png" );
269 return configdata.
ref();
276 attribute_t_definition ( AttributeData )
278 Data.append ( QVariant ( QString::fromStdString ( AttributeData.
p_name ) ) );
285 for ( QString & ObjectData : DataList )
287 if ( !ObjectData.isEmpty() )
294 if ( DataList.size() > 0 && !DataList.at ( 0 ).isNull() )
296 SetHasStructure ( true );
309 case Qt::DisplayRole:
310 return Data.value ( Column );
312 case Qt::DecorationRole:
316 return QIcon (
":/Images/SLink.png" );
325 return attribute_t_definition;
332 relation_t_definition ( relation )
334 Data.append ( QVariant ( QString::fromStdString ( relation.p_name ) ) );
336 std::vector<tref> DataList;
347 dbe::config::api::graph::linked::through::relation<tref> (
350 DataList.push_back ( Data );
352 catch ( daq::dbe::config_object_retrieval_result_is_null
const & e )
365 for (
tref const & Object : DataList )
367 new ObjectNode ( Object,
true,
static_cast<treenode *
> (
this ) );
370 if ( DataList.size() > 0 )
372 SetHasStructure ( true );
375 SetWasFetched (
true );
385 case Qt::DisplayRole:
386 return Data.value ( Column );
388 case Qt::DecorationRole:
392 return QIcon (
":/Images/SLink.png" );
401 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(const 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
cardinality_t p_cardinality