VR-Forces 4.2 Class Documentation
tmEchelonTree.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2000 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: tmEchelonTree.h,v $ $Revision: 1.28 $ $State: Exp $
7 *******************************************************************************/
8 
11 
12 #ifndef DtTMEchelonTree_H
13 #define DtTMEchelonTree_H
14 
15 #include "symbolMapper/modelKey.h"
16 
17 #include <QtGui/QFrame>
18 #include <QtCore/QList>
19 #include <QtCore/QHash>
20 #include <QtGui/QPushButton>
21 #include <QtGui/QPixmap>
22 #include <QtGui/QScrollArea>
23 #include "tmqt/dtTreeWidget.h"
24 
25 class DtEchelonView;
26 class DtEchelonHierarchy;
27 class QBoxLayout;
29 class DtModelData;
30 class QModelIndex;
31 
32 #include "tmqt/tmqtDefines.h"
33 
34 
36 {
37 public:
40  bool operator<(const QTreeWidgetItem & other ) const;
41  virtual QVariant data(int iColumn, int iRole) const;
42 };
43 
45 {
46 public:
47  DtScrollButtonArea(QWidget* parent);
48 
49  virtual void scrollContentsBy(int x);
50 
51  QWidget* widget() { return myCanvas; };
52 
53 protected:
54  virtual void paintEvent(QPaintEvent* e);
55  virtual void resizeEvent(QResizeEvent* e);
56 
57 protected:
59 };
60 
62 {
63 
64  Q_OBJECT
65 
66 public:
67 
69  DtTMEchelonTree (QWidget* parent = NULL, const Qt::WindowFlags& f = 0);
70 
72  virtual ~DtTMEchelonTree();
73 
76  virtual void init(const DtEchelonHierarchy *hierarchy);
77 
81  virtual void init(DtEchelonView *view);
82 
85  virtual void setListViewEventFilter(QWidget* filter);
86  virtual void removeListViewEventFilter(QWidget* filter);
87 
88  virtual void setSelectionModeEnabled(bool b);
89 
90  DtTreeWidget* listView();
91 
92 protected:
95  virtual void commonInit();
96 
98  virtual void initColumnHeadings(DtTreeWidget& listView);
99 
101  virtual DtTreeWidget* createListView(QWidget* parent);
102 
104  virtual DtScrollButtonArea* createCollapseButtonConainer(QWidget* parent);
105 
106  virtual void initListItem(QTreeWidgetItem*, const DtModelKey&);
107 
108 public:
109  virtual bool maintainEchelonSync() const;
110 
111 protected:
112  virtual QTreeWidgetItem* addListItem(const DtModelKey&);
113  virtual QTreeWidgetItem* createListItem(QTreeWidgetItem* parent, const DtModelKey& key);
114  virtual void moveItemInListHierarchy(QTreeWidgetItem* item, QTreeWidgetItem* newParent);
115 
116 signals:
117 
118  void selectionChanged(const QVector<DtModelKey>&);
119 
120  void selectionAdded(const QVector<DtModelKey>&);
121  void clearSelection(bool);
122 
123  void symbolExpanded(const DtModelKey&);
124  void symbolCollapsed(const DtModelKey&);
125 
126  void showInformationClicked(const DtModelData&);
127 
128 public slots:
129 
130  virtual void addSymbol(const DtModelKey&);
131  virtual void removeSymbol(const DtModelKey&);
132  virtual void updateSymbol(const DtModelKey& key, int changed);
133  virtual void updateSymbol(const DtModelData& d, int changed);
134 
135  virtual void expandSymbol(const DtModelKey&);
136  virtual void collapseSymbol(const DtModelKey&);
137 
142  virtual bool repositionSymbol(const DtModelKey&);
143 
144  virtual void syncToEchelonView();
145  virtual void syncFromEchelonView();
146  virtual void setMaintainEchelonSync(bool);
147 
148  virtual void syncFromHierarchy();
149 
150  virtual void setSelection(const QVector<DtModelKey>&);
151  virtual void clearSelection();
152  virtual void setSelectionAll();
153 
154  void setEmbarkationHierarchy(const DtEchelonHierarchy*);
155  const DtEchelonHierarchy* embarkationHierarchy() const;
156 
158  virtual void tick();
159 
160 public slots:
161  virtual void setupEchelonIdColumn(bool show);
162 
163 protected slots:
164  virtual void updateSelection(bool signal = true);
165  virtual void scrollRangeChanged(int x, int y);
166 
167  virtual void viewItemExpanded(QTreeWidgetItem* item);
168  virtual void viewItemCollapsed(QTreeWidgetItem* item);
169 
170  virtual void expandToLevel(unsigned int level);
171  virtual void collapseToLevel(unsigned int level);
172 
173  virtual void scrollCollapseButtons(int x);
174 
175  virtual void doubleClicked(QTreeWidgetItem* li, int col);
176 
177 protected:
178 
179  virtual void updateCollapseButtons();
180  virtual void updateCollapseButtons(QTreeWidgetItem*);
181 
182  virtual void createCollapseButton(unsigned int level);
183 
185  virtual void collapseToLevel(unsigned int level, QTreeWidgetItem*);
187  virtual void expandToLevel(unsigned int level, QTreeWidgetItem*);
188 
189 
192  virtual void updateEchelonIdColumn();
193 
194 private:
196 
198  DtTMEchelonTree(const DtTMEchelonTree& orig);
199 
201  DtTMEchelonTree& operator=(const DtTMEchelonTree& rhs);
202 
203 protected:
205  QVector<DtModelKey> mySelectedKeys;
206 
211  QHash<DtModelKey, QTreeWidgetItem*> myKeyList;
212 
217  QPixmap myPlusPixmap;
218  QPixmap myMinusPixmap;
219 
220  static const int theEntityIdColumn;
221  static const char* thePlusImageData[];
222  static const char* theMinusImageData[];
223 
225  bool myDirty;
228 };
229 
230 
234 {
235  Q_OBJECT
236 
237 public:
238  DtExpandCollapseButton(QWidget *parent = NULL);
239  virtual ~DtExpandCollapseButton();
240 
241  virtual void setExpandPixmap(QPixmap pix);
242  virtual void setCollapsePixmap(QPixmap pix);
243  virtual void setLevel(unsigned int level);
244  virtual unsigned int level() const;
245  virtual void setIsExpand(bool value);
246  virtual bool isExpand() const;
247 
248 signals:
249  void expandLevelClicked(unsigned int level);
250  void collapseLevelClicked(unsigned int level);
251 
252 protected slots:
253  virtual void buttonClicked();
254 
255 protected:
256  virtual void paintEvent(QPaintEvent*);
257 
258 protected:
259  QPixmap myExpandPixmap;
262  unsigned int myLevel;
263 };
264 
265 
267 {
268  return myListView;
269 }
270 
272 {
274 }
275 
277 {
278  return myEmbarkationHierarchy;
279 }
280 
281 #endif //DtTMEchelonTree_H

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)