VR-Forces 4.1.1 Class Documentation
echHierarchy.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2002 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: echHierarchy.h,v $ $Revision: 1.16 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DtEchelonHierarchy_H_
13 #define DtEchelonHierarchy_H_
14 
15 #include "tmqt/echHierNode.h"
16 #include "ngutil/dtqlist.h"
17 #include <QtCore/QHash>
18 #include <QtCore/QVector>
19 
20 class DtModelDataDict;
21 
27 #include "tmqt/tmqtDefines.h"
29 {
30  Q_OBJECT
31 public:
32 
34  DtEchelonHierarchy(QObject *parent = NULL);
35 
37  virtual ~DtEchelonHierarchy();
38 
40  virtual void init(const DtModelDataDict* dict);
41 
43  virtual DtEchelonHierarchyNode* node(const QString& strKey) const;
44 
47  virtual void allDecendentsOf(const DtModelKey& key,
48  QVector<DtModelKey>& resultList) const;
49 
51  virtual void allImmediateDecendentsOf(const DtModelKey& key,
52  QVector<DtModelKey>& resultList) const;
53 
56  virtual bool isSuperiorOf(const DtModelKey& superior,
57  const DtModelKey& subordinate) const;
58 
59  virtual const DtPtrQList<DtEchelonHierarchyNode*>& nodeList() const;
60 
61  virtual const DtModelDataDict* modelDataDict() const;
62 
66  virtual void setAlwaysReconnectAllNodes(bool value);
67  virtual bool alwaysReconnectAllNodes() const;
68 
70  virtual void tick();
71 
72 public:
73 
75  static DtEchelonHierarchy* create(QObject *parent);
76 
77 public slots:
79  virtual void addModelData(const DtModelKey& key);
81  virtual void removeModelData(const DtModelKey& key);
84  virtual void updateModelData(const DtModelKey& key, int changed);
85 
88  virtual void reconnectAllNodes();
89 
90 signals:
92  void nodeAdded(const DtModelKey&);
94  void nodeAboutToBeRemoved(const DtModelKey&);
96  void nodeReparented(const DtModelKey&);
97 
98 protected:
102  virtual bool shouldBeAdded(const DtModelKey& key);
103 
107  virtual DtEchelonHierarchyNode* addModelNode(const DtModelKey& key);
108 
112  virtual void removeModelNode(const DtModelKey& key);
113 
117  virtual void updateModelNode(const DtModelKey& key);
118 
121  virtual void connectNode(DtEchelonHierarchyNode* node);
122 
124  virtual void reconnectNode(DtEchelonHierarchyNode* node);
125 
128  virtual void connectChild(DtEchelonHierarchyNode* parentNode,
129  DtEchelonHierarchyNode* childNode);
130 
136  virtual void disconnectNode(DtEchelonHierarchyNode* node);
137 
140  virtual int calculateLevelsFromNode(DtEchelonHierarchyNode* node);
141 
143  virtual void calculateAllLevels();
144 
145 protected slots:
150  virtual void queueNodeReparentedSignal(const DtModelKey& key);
151 
152 protected:
154  virtual void sendQueuedNodeReparentedSignals();
155 
156 protected:
157  QHash<DtModelKey, DtEchelonHierarchyNode*> myNodeDict;
159 
162 
163  QVector<DtModelKey> myNodeReparentedQueue;
164 
165 private:
168 
170  DtEchelonHierarchy& operator=(const DtEchelonHierarchy& orig);
171 
172 };
173 
174 #endif

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)