VR-Forces 4.10 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>
22 #include <boost/signals2.hpp>
23 #include <vrfutil/rwColor.h>
24 
25 #include <QtCore/QPoint>
26 
27 #include <map>
28 
29 class QTreeWidgetItem;
30 
31 namespace makVrv
32 {
33  class DtDe;
34  class DtElementIDHierarchyNode;
35 };
36 
37 namespace makVrf
38 {
39  class DtVrfHierarchyPage;
40  class DtObjectListViewItem;
41  class DtVrfStateViewCollectionManager;
42  class DtExpandCollapseButton;
43 
47  {
48  public:
51 
52  void setParentItem(DtObjectListViewItem*);
53  void setForce(int) {};
54 
55  protected:
56  DtObjectListViewItem* myParentItem;
57  };
58 
60  {
61  public:
63  {
64  Aerodrome = 1,
65  UserStart = 16
66  };
67 
68  public:
71  virtual ~DtVrfHierarchyPageLogic();
72 
73  public:
74  virtual void slot_itemSelectionChanged();
75  virtual void slot_rightClickOnItem(QPoint global);
76  virtual QTreeWidgetItem* itemForState(const DtObjectListViewItem::DtVrfObjectState s) const;
77  virtual void expandToLevel(unsigned int i);
78  virtual void collapseToLevel(unsigned int i);
79  virtual void viewItemExpanded(QTreeWidgetItem* i);
80  virtual void viewItemCollapsed(QTreeWidgetItem* i);
81  virtual DtObjectListViewItem* itemByUUID(const DtUUID& uuid) const;
82 
83  virtual bool isForceRootNode(makVrv::DtUniqueID) const;
84  virtual bool isOrganizedRootNode(QTreeWidgetItem*) const;
85  virtual int forceForRootNode(makVrv::DtUniqueID) const;
86 
87  virtual void deparent(const QStringList&) = 0;
88  virtual void reparent(const QStringList& children, makVrv::DtUniqueID parentId) = 0;
89 
91  virtual bool processHierarchyItem(makVrv::DtElementIDHierarchyNode*, bool force = false);
92 
93  virtual void setShowObjectConsoleWarning(bool b);
94  virtual bool showObjectConsoleWarningIcon() const;
95 
96  virtual void setTextFilter(const QString&);
97 
99  virtual void setShowEchelonIdColumn(bool);
100  virtual bool showEchelonIdColumn() const;
101  virtual QTreeWidgetItem* rootNodeForItem(DtObjectListViewItem*) const;
102  virtual QTreeWidgetItem* parentNodeForItem(DtObjectListViewItem*) const;
103 
105  virtual void activate();
106 
108  virtual int sortColumn() const;
109 
110  virtual int initialSortColumn() const;
111 
112  virtual void setDoubleClickAttachesAndCenters(bool b)
113  {
114  myDoubleClickAttachesAndCenters = b;
115  }
116 
118  {
119  return myDoubleClickAttachesAndCenters;
120  }
121 
122  virtual void setInitiallyExpand(bool);
123  bool initiallyExpand() const
124  {
125  return myInitiallyExpand;
126  }
127 
128  virtual void setGrayOutHiddenItems(bool);
129  bool grayOutHiddenItems() const
130  {
131  return myGrayOutHiddenItems;
132  }
133 
144  virtual DtObjectListViewItem* addOrganizedRootNode(const QString& name, const DtFilename& iconFile, const DtVrfSelectionFilter& filter, int index = -1,
145  const QString& beforeItem = "");
146 
149  virtual bool removeOrganizedRootNode(const QString&);
150 
157  virtual void addOrganizedParentNode(ParentNodeContext, const DtVrfSelectionFilter& potentialParent, const DtVrfSelectionFilter& potentialChild);
158  virtual void removeOrganizedParentNode(ParentNodeContext);
160 
161  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_itemRemoved;
162 
163  protected:
164 
166  virtual bool handleStealthObjects() const;
167 
168  virtual void slot_gumballSettingsChanged(bool b);
169 
170  virtual void checkForInitialExpansion(DtObjectListViewItem*);
171  virtual bool passesFogOfWarFilters(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s) const;
172  virtual void scenarioClosed();
173  virtual void moveItemToNewForceNode(makVrv::DtUniqueID, int force);
175 
177  virtual void entityStateChanged(makVrv::DtElementID, DtSharedVrfVrlApplicationSettings::EntityStates, bool);
178 
179  virtual void slot_onTick();
180 
183  virtual void slot_onStateViewAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
184 
186  virtual bool addNode(makVrv::DtElementIDHierarchyNode*) const;
187 
190  virtual bool isValidState(makVrv::DtUniqueID) const;
191 
193  virtual void filterItems();
194 
196  virtual void filterTDLItems();
197 
198  virtual void stateViewUpdated();
199 
200  virtual void resorted();
201 
202  virtual DtVrfStateViewCollectionManager& vrfStateViewCollectionManager() const;
203 
211  virtual DtObjectListViewItem* addForceLevelRootNode(int, const DtString& forceName);
212 
214 
215  virtual void hookOrganizedParentToChildren();
216  virtual void onDataChanged(DtObjectListViewItem* item);
217 
218  protected:
219  virtual void forcesChanged();
220  virtual void unhandledStateView(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
221 
222  virtual void slot_itemDoubleClicked(QTreeWidgetItem*);
223 
224  virtual void clearExpansionStateFor(DtObjectListViewItem*);
225 
226  virtual void removeNode(makVrv::DtElementID);
227  virtual bool positionNodeInHierarchy(makVrv::DtElementIDHierarchyNode*, bool force = false);
228  virtual void hookChildToParent(makVrv::DtElementIDHierarchyNode*, bool forceUpdate = false);
229  virtual void hookParentToChildren(makVrv::DtElementIDHierarchyNode*, bool forceUpdate = false);
231  virtual QVariant echelonId(const DtObjectListViewItem*) const;
232  virtual void slot_stateViewAboutToBeRemoved(const makVrv::DtStateView<DtVrfObjectDataState>& s);
233 
234  virtual void cleanupHierarchyItem(DtObjectListViewItem* item);
235  virtual void createdHierarchyItem(DtObjectListViewItem* item);
236 
238  virtual void deferredItemSelectionChanged();
239 
240  protected:
241  virtual void addDataFunctions(DtObjectListViewItem* item);
242  virtual void addSortingFunctions(DtObjectListViewItem* item);
243  virtual void slot_externalSelectionChanged(
244  const makVrv::DtSelectionManager::IdSet& selected,
245  const makVrv::DtSelectionManager::IdSet& deselected );
246 
247  virtual void updateCollapseButtons();
248  virtual void updateCollapseButtons(QTreeWidgetItem*);
249 
250  virtual void createCollapseButton(unsigned int);
251  virtual void expandToLevel(unsigned int level, QTreeWidgetItem* lvi);
252  virtual void collapseToLevel(unsigned int level, QTreeWidgetItem* lvi);
253 
255  virtual void hierarchyItemsModified(const makVrv::DtElementAttributeManager::EntryAttributesList&) = 0;
256  virtual short supportsAttribute() const = 0;
257 
258  virtual void hierarchyItemsRemoved(const makVrv::DtElementData::UniqueIdList&);
259  virtual void setupForceRootNodes();
260  virtual bool sortBySubordinatePosition(const DtObjectListViewItem& rhs, const DtObjectListViewItem& lhs);
261 
262  virtual void checkPendingOperations();
263  virtual void checkFogOfWar(DtObjectListViewItem*, int oldForce = -1, int newForce = -1);
264  virtual void onForceChanged(DtObjectListViewItem*, int oldForce = -1, int newForce = -1);
265  virtual void onDamageStateChanged(DtObjectListViewItem*, bool isDestroyed = false);
266  virtual void onActivatedStateChanged(DtObjectListViewItem*, bool isActivated = true);
267  virtual void onMarkingTextFilterChanged(DtObjectListViewItem*);
268  virtual void slot_extendedApplicationOptionsChanged();
269  virtual void updateRootNodeVisibility(DtObjectListViewItem*);
270 
271  virtual void slot_onUpdateRateChanged(makVrv::DtUniqueID id, int rate);
272  virtual void completeRateChange(makVrv::DtUniqueID id);
273 
275  virtual void itemPositioned(DtObjectListViewItem*);
276 
279  virtual void checkParentVisibility(DtObjectListViewItem*);
280 
281  virtual void restoreExpansionState(QTreeWidgetItem*, bool expanded);
282 
283  virtual void initialize();
284 
285  virtual void resetVisuals();
287  virtual void resetIconColor(DtRwColor, const std::vector<makVrv::DtUniqueID>& ids);
288 
289  virtual void slot_uuidChanged(makVrv::DtUniqueID id, const DtUUID& oldUUID, const DtUUID& newUUID);
290 
291  virtual void slot_objectVisibilityChanged(makVrv::DtUniqueID id, bool);
292 
293  virtual void addToPotentialParents(DtObjectListViewItem*);
294  virtual void removeFromPotentialParents(DtObjectListViewItem*);
295 
296  protected:
297  typedef std::map<makVrv::DtElementID, DtObjectListViewItem*> DtHierarchyListItemMap;
298  typedef std::map<makVrv::DtElementID, std::pair<makVrv::DtElementIDHierarchyNode, int> > PendingOperationsMap;
299 
302  std::vector<DtExpandCollapseButton*> myCollapseButtonVector;
303  boost::signals2::connection myGrayIfHiddenConnection;
305 
306  bool myDirty;
315  std::set<QTreeWidgetItem*> myRootNodesForVisibilityCheck;
316 
323 
325 
326  std::map<DtUUID, bool> myExpandedNodes;
327  std::map<DtUUID, DtObjectListViewItem*> myItemsByUUID;
328 
330  {
331  OrganizedRootNode() : selectionFilter(nullptr), stateData(nullptr), uniqueID(0), objectListViewItem(nullptr) {};
332 
333  DtVrfSelectionFilter* selectionFilter;
337  };
338 
339  typedef std::vector<OrganizedRootNode> OrganizationOrder;
341 
342  typedef std::map<makVrv::DtUniqueID, OrganizedRootNode> OrganizedRootNodes;
344 
345  typedef std::map<int, OrganizedRootNode> ForceRootNodes;
347 
349  {
350  OrganizedParentNode() : parentFilter(nullptr), childFilter(nullptr) {};
351  virtual ~OrganizedParentNode();
352 
353  std::shared_ptr<DtVrfSelectionFilter> parentFilter;
354  std::shared_ptr<DtVrfSelectionFilter> childFilter;
355  std::set<DtObjectListViewItem*> parentNodes;
356  };
357 
358  typedef std::map<ParentNodeContext, OrganizedParentNode> OrganizedParentNodes;
360 
361  std::map<makVrv::DtUniqueID, makVrv::DtSignalConnectionManager*> myRateChanges;
362 
364 
365  QString myTextFilter;
366 
370  };
371 }
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
OrganizedParentNodes myOrganizedParentNodes
Definition: vrfHierarchyPageLogic.h:359
DtObjectListViewItem * objectListViewItem
Definition: vrfHierarchyPageLogic.h:336
OrganizedParentNode()
Definition: vrfHierarchyPageLogic.h:350
Definition: vrfSelectionFilters.h:29
makVrv::DtSignalConnectionManager myDeferredSelectionSignalManager
Definition: vrfHierarchyPageLogic.h:322
PendingOperationsMap myPendingOperations
Definition: vrfHierarchyPageLogic.h:320
std::shared_ptr< DtVrfSelectionFilter > parentFilter
Definition: vrfHierarchyPageLogic.h:353
bool myShowEchelonIdColumn
Definition: vrfHierarchyPageLogic.h:308
makVrv::DtUniqueID uniqueID
Definition: vrfHierarchyPageLogic.h:335
DtSimpleObjectDataState * stateData
Definition: vrfHierarchyPageLogic.h:334
std::map< int, OrganizedRootNode > ForceRootNodes
Definition: vrfHierarchyPageLogic.h:345
UpdateRate
Definition: DtSimEntryUpdater.h:31
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
bool myDirty
Definition: vrfHierarchyPageLogic.h:306
bool myNeedsResort
Definition: vrfHierarchyPageLogic.h:313
OrganizationOrder myOrganizationOrder
Definition: vrfHierarchyPageLogic.h:340
std::map< makVrv::DtUniqueID, makVrv::DtSignalConnectionManager * > myRateChanges
Definition: vrfHierarchyPageLogic.h:361
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
Contains makVrv:DtSelectionManager class.
Definition: vrfHierarchyPageLogic.h:59
std::map< makVrv::DtUniqueID, OrganizedRootNode > OrganizedRootNodes
Definition: vrfHierarchyPageLogic.h:342
bool myShowObjectConsoleWarningIcon
Definition: vrfHierarchyPageLogic.h:324
bool myFirstTick
Definition: vrfHierarchyPageLogic.h:309
Contains makVrv::DtElementData class.
ParentNodeContext
Definition: vrfHierarchyPageLogic.h:62
std::set< DtObjectListViewItem * > parentNodes
Definition: vrfHierarchyPageLogic.h:355
Definition: objectSettingsManager.h:48
OrganizedRootNodes myOrganizedRootNodes
Definition: vrfHierarchyPageLogic.h:343
bool myUseForceRootOrganization
Default is false.
Definition: vrfHierarchyPageLogic.h:319
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
bool initiallyExpand() const
Definition: vrfHierarchyPageLogic.h:123
makVrv::DtDe & myDe
Definition: vrfHierarchyPageLogic.h:300
Definition: vrfHierarchyPageLogic.h:329
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfHierarchyPageLogic.h:321
Contains makVrf:DtSharedVrfVrlApplicationSettings class.
Reader-Writer color specified by red, green, blue components.
Definition: rwColor.h:19
std::map< DtUUID, DtObjectListViewItem * > myItemsByUUID
Definition: vrfHierarchyPageLogic.h:327
DtVrfHierarchyPage * myInterface
Definition: vrfHierarchyPageLogic.h:301
std::map< makVrv::DtElementID, std::pair< makVrv::DtElementIDHierarchyNode, int > > PendingOperationsMap
Definition: vrfHierarchyPageLogic.h:298
Contains makVrv::DtElementIDHierarchy class.
The DtVrfChildToParentSelectionFilter specialized filter that must be used as a child filter when org...
Definition: vrfHierarchyPageLogic.h:46
double myLastDirtyCountTime
Definition: vrfHierarchyPageLogic.h:367
Definition: vrfHierarchyPage.h:109
std::map< DtUUID, bool > myExpandedNodes
Definition: vrfHierarchyPageLogic.h:326
std::vector< EntryAttributes > EntryAttributesList
Definition: DtElementAttributeManager.h:43
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
The DtElementIDHierarchyNode class will contain information about an element, its children and its pa...
Definition: DtElementIDHierarchy.h:33
bool myHideForceLevelNodesWhenNoChildren
Definition: vrfHierarchyPageLogic.h:314
This class is the central point for looking up information about a particular object in the VRF GUI...
Definition: vrfStateViewCollectionManager.h:127
bool myUpdateCollapseButtons
Definition: vrfHierarchyPageLogic.h:307
std::map< makVrv::DtElementID, DtObjectListViewItem * > DtHierarchyListItemMap
Definition: vrfHierarchyPageLogic.h:297
EntityStates
Definition: sharedVrfVrlApplicationSettings.h:30
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
void setForce(int)
Definition: vrfHierarchyPageLogic.h:53
boost::signals2::connection myGrayIfHiddenConnection
Definition: vrfHierarchyPageLogic.h:303
virtual void setDoubleClickAttachesAndCenters(bool b)
Definition: vrfHierarchyPageLogic.h:112
Base class to provide boost signal/slot management.
Data that is used for folders in the organized object list view.
Definition: simpleObjectDataState.h:18
std::set< QTreeWidgetItem * > myRootNodesForVisibilityCheck
Definition: vrfHierarchyPageLogic.h:315
std::vector< DtExpandCollapseButton * > myCollapseButtonVector
Definition: vrfHierarchyPageLogic.h:302
int myLastForceType
Definition: vrfHierarchyPageLogic.h:369
std::vector< DtElementID > UniqueIdList
Definition: DtElementData.h:48
bool myGrayOutHiddenItems
Definition: vrfHierarchyPageLogic.h:368
DtHierarchyListItemMap myItems
Definition: vrfHierarchyPageLogic.h:304
Contains the DtElementAttributeManager class declaration.
std::vector< OrganizedRootNode > OrganizationOrder
Definition: vrfHierarchyPageLogic.h:339
std::map< ParentNodeContext, OrganizedParentNode > OrganizedParentNodes
Definition: vrfHierarchyPageLogic.h:358
ForceRootNodes myForceRootNodes
Definition: vrfHierarchyPageLogic.h:346
int myRetries
Definition: vrfHierarchyPageLogic.h:311
Definition: vrfHierarchyPageLogic.h:348
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
QString myTextFilter
Definition: vrfHierarchyPageLogic.h:365
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_itemRemoved
Definition: vrfHierarchyPageLogic.h:161
DtVrfStateViewCollectionManager * myVrfStateViewCollectionManager
Definition: vrfHierarchyPageLogic.h:363
std::shared_ptr< DtVrfSelectionFilter > childFilter
Definition: vrfHierarchyPageLogic.h:354
Definition: objectListViewItem.h:45
bool myDoubleClickAttachesAndCenters
Definition: vrfHierarchyPageLogic.h:312
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
bool doubleClickAttachesAndCenters() const
Definition: vrfHierarchyPageLogic.h:117
bool grayOutHiddenItems() const
Definition: vrfHierarchyPageLogic.h:129
bool myInitiallyExpand
Definition: vrfHierarchyPageLogic.h:310

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)