VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfHierarchyPageLogic.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
16 #include <vrvCore/DtElementData.h>
20 
21 #include <QtCore/QPoint>
22 
23 #include <map>
24 
25 class QTreeWidgetItem;
26 
27 namespace makVrv
28 {
29  class DtDe;
30  class DtElementIDHierarchyNode;
31 };
32 
33 namespace makVrf
34 {
35  class DtVrfHierarchyPage;
36  class DtVrfObjectListViewItem;
37  class DtVrfStateViewCollectionManager;
38  class DtExpandCollapseButton;
39 
41  {
42  public:
45  virtual ~DtVrfHierarchyPageLogic();
46 
47  public:
48  virtual void slot_itemSelectionChanged();
49  virtual void slot_rightClickOnItem(QPoint global);
50  virtual QTreeWidgetItem* itemForState(const DtVrfObjectListViewItem::DtVrfObjectState s) const;
51  virtual void expandToLevel(unsigned int i);
52  virtual void collapseToLevel(unsigned int i);
53  virtual void viewItemExpanded(QTreeWidgetItem* i);
54  virtual void viewItemCollapsed(QTreeWidgetItem* i);
55 
56  virtual bool isForceRootNode(makVrv::DtUniqueID) const;
57  virtual int forceForRootNode(makVrv::DtUniqueID) const;
58 
59  virtual void deparent(const QStringList&) = 0;
60  virtual void reparent(const QStringList& children, makVrv::DtUniqueID parentId) = 0;
61 
63  virtual bool processHierarchyItem(makVrv::DtElementIDHierarchyNode*, bool force = false);
64 
65  virtual void setShowObjectConsoleWarning(bool b);
66  virtual bool showObjectConsoleWarningIcon() const;
67 
69  virtual void setShowEchelonIdColumn(bool);
70  virtual bool showEchelonIdColumn() const;
71 
73  virtual void activate();
74 
76  virtual int sortColumn() const;
77 
78  virtual int initialSortColumn() const;
79 
80  virtual void setDoubleClickAttachesAndCenters(bool b)
81  {
82  myDoubleClickAttachesAndCenters = b;
83  }
84 
85  bool doubleClickAttachesAndCenters() const
86  {
87  return myDoubleClickAttachesAndCenters;
88  }
89 
90  virtual void setInitiallyExpand(bool);
91  bool initiallyExpand() const
92  {
93  return myInitiallyExpand;
94  }
95 
96  boost::signal<void (makVrv::DtUniqueID)> signal_itemRemoved;
97 
98  protected:
99  virtual void checkForInitialExpansion(DtVrfObjectListViewItem*);
100  virtual bool passesFogOfWarFilters(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s) const;
101  virtual bool passesGlobalFilters(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s) const;
102  virtual void scenarioClosed();
103  virtual void moveItemToNewForceNode(makVrv::DtUniqueID, int force);
105 
107  virtual void entityStateChanged(makVrv::DtElementID, DtSharedVrfVrlApplicationSettings::EntityStates, bool);
108 
109  virtual void slot_onTick();
110 
113  virtual void slot_onStateViewAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
114 
116  virtual bool addNode(makVrv::DtElementIDHierarchyNode*) const;
117 
120  virtual bool isValidState(makVrv::DtUniqueID) const;
121 
123  virtual void filterItems();
124 
126  virtual void filterTDLItems();
127 
128  virtual void stateViewUpdated();
129 
130  virtual void resorted();
131 
132  virtual DtVrfStateViewCollectionManager& vrfStateViewCollectionManager() const;
133 
134  protected:
135  virtual void unhandledStateView(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
136 
137  virtual void slot_itemDoubleClicked(QTreeWidgetItem*);
138 
139  virtual void clearExpansionStateFor(DtVrfObjectListViewItem*);
140 
141  virtual void removeNode(makVrv::DtElementID);
142  virtual bool positionNodeInHierarchy(makVrv::DtElementIDHierarchyNode*, bool force = false);
143  virtual void hookChildToParent(makVrv::DtElementIDHierarchyNode*, bool forceUpdate = false);
144  virtual void hookParentToChildren(makVrv::DtElementIDHierarchyNode*, bool forceUpdate = false);
146  virtual QVariant echelonId(const DtVrfObjectListViewItem*) const;
147  virtual void slot_stateViewAboutToBeRemoved(const makVrv::DtStateView<DtVrfObjectDataState>& s);
148 
149  virtual void cleanupHierarchyItem(DtVrfObjectListViewItem* item);
150  virtual void createdHierarchyItem(DtVrfObjectListViewItem* item);
151 
153  virtual void deferredItemSelectionChanged();
154 
155  protected:
156  virtual void addDataFunctions(DtVrfObjectListViewItem* item);
157  virtual void addSortingFunctions(DtVrfObjectListViewItem* item);
158  virtual void slot_externalSelectionChanged(
159  const makVrv::DtSelectionManager::IdSet& selected,
160  const makVrv::DtSelectionManager::IdSet& deselected );
161 
162  virtual void updateCollapseButtons();
163  virtual void updateCollapseButtons(QTreeWidgetItem*);
164 
165  virtual void createCollapseButton(unsigned int);
166  virtual void expandToLevel(unsigned int level, QTreeWidgetItem* lvi);
167  virtual void collapseToLevel(unsigned int level, QTreeWidgetItem* lvi);
168 
170  virtual void hierarchyItemsModified(const makVrv::DtElementData::EntryAttributesList&) = 0;
171  virtual short supportsAttribute() const = 0;
172 
173  virtual void hierarchyItemsRemoved(const makVrv::DtElementData::UniqueIdList&);
174  virtual void setupForceRootNodes();
175  virtual bool sortBySubordinatePosition(const DtVrfObjectListViewItem& rhs, const DtVrfObjectListViewItem& lhs);
176 
177  virtual void checkPendingOperations();
178  virtual void checkFogOfWar(DtVrfObjectListViewItem*, int oldForce = -1, int newForce = -1);
179  virtual void onForceChanged(DtVrfObjectListViewItem*, int oldForce = -1, int newForce = -1);
180  virtual void slot_extendedApplicationOptionsChanged();
181 
182  virtual void slot_onUpdateRateChanged(makVrv::DtUniqueID id, int rate);
183  virtual void completeRateChange(makVrv::DtUniqueID id);
184 
185  virtual QTreeWidgetItem* rootNodeForItem(DtVrfObjectListViewItem*) const;
186  virtual QTreeWidgetItem* rootNodeForItem(int) const;
187 
189  virtual void itemPositioned(DtVrfObjectListViewItem*);
190 
193  virtual void checkParentVisibility(DtVrfObjectListViewItem*);
194 
195  virtual void restoreExpansionState(QTreeWidgetItem*, bool expanded);
196 
197  virtual void initialize();
198 
199  virtual void resetVisuals();
200 
201  protected:
202  typedef std::map<makVrv::DtElementID, DtVrfObjectListViewItem*> DtHierarchyListItemMap;
203  typedef std::map<makVrv::DtElementID, std::pair<makVrv::DtElementIDHierarchyNode, int> > PendingOperationsMap;
204 
207  std::vector<DtExpandCollapseButton*> myCollapseButtonVector;
208 
210 
211  bool myDirty;
219 
226 
228 
229  std::map<DtUUID, bool> myExpandedNodes;
230 
233 
234  std::map<makVrv::DtUniqueID, makVrv::DtSignalConnectionManager*> myRateChanges;
235 
237  };
238 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)