VR-Forces 4.8 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>
21 #include <boost/signals2.hpp>
22 #include <vrfutil/rwColor.h>
23 
24 #include <QtCore/QPoint>
25 
26 #include <map>
27 
28 class QTreeWidgetItem;
29 
30 namespace makVrv
31 {
32  class DtDe;
33  class DtElementIDHierarchyNode;
34 };
35 
36 namespace makVrf
37 {
38  class DtVrfHierarchyPage;
39  class DtObjectListViewItem;
40  class DtVrfStateViewCollectionManager;
41  class DtExpandCollapseButton;
42 
44  {
45  public:
48  virtual ~DtVrfHierarchyPageLogic();
49 
50  public:
51  virtual void slot_itemSelectionChanged();
52  virtual void slot_rightClickOnItem(QPoint global);
53  virtual QTreeWidgetItem* itemForState(const DtObjectListViewItem::DtVrfObjectState s) const;
54  virtual void expandToLevel(unsigned int i);
55  virtual void collapseToLevel(unsigned int i);
56  virtual void viewItemExpanded(QTreeWidgetItem* i);
57  virtual void viewItemCollapsed(QTreeWidgetItem* i);
58  virtual DtObjectListViewItem* itemByUUID(const DtUUID& uuid) const;
59 
60  virtual bool isForceRootNode(makVrv::DtUniqueID) const;
61  virtual int forceForRootNode(makVrv::DtUniqueID) const;
62 
63  virtual void deparent(const QStringList&) = 0;
64  virtual void reparent(const QStringList& children, makVrv::DtUniqueID parentId) = 0;
65 
67  virtual bool processHierarchyItem(makVrv::DtElementIDHierarchyNode*, bool force = false);
68 
69  virtual void setShowObjectConsoleWarning(bool b);
70  virtual bool showObjectConsoleWarningIcon() const;
71 
72  virtual void setTextFilter(const QString&);
73 
75  virtual void setShowEchelonIdColumn(bool);
76  virtual bool showEchelonIdColumn() const;
77  virtual QTreeWidgetItem* rootNodeForItem(DtObjectListViewItem*) const;
78  virtual QTreeWidgetItem* rootNodeForItem(int) const;
79 
81  virtual void activate();
82 
84  virtual int sortColumn() const;
85 
86  virtual int initialSortColumn() const;
87 
88  virtual void setDoubleClickAttachesAndCenters(bool b)
89  {
90  myDoubleClickAttachesAndCenters = b;
91  }
92 
94  {
95  return myDoubleClickAttachesAndCenters;
96  }
97 
98  virtual void setInitiallyExpand(bool);
99  bool initiallyExpand() const
100  {
101  return myInitiallyExpand;
102  }
103 
104  virtual void setGrayOutHiddenItems(bool);
105  bool grayOutHiddenItems() const
106  {
107  return myGrayOutHiddenItems;
108  }
109 
110  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_itemRemoved;
111 
112  protected:
113 
115  virtual bool handleStealthObjects() const;
116 
117  virtual void slot_gumballSettingsChanged(bool b);
118 
119  virtual void checkForInitialExpansion(DtObjectListViewItem*);
120  virtual bool passesFogOfWarFilters(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s) const;
121  virtual void scenarioClosed();
122  virtual void moveItemToNewForceNode(makVrv::DtUniqueID, int force);
124 
126  virtual void entityStateChanged(makVrv::DtElementID, DtSharedVrfVrlApplicationSettings::EntityStates, bool);
127 
128  virtual void slot_onTick();
129 
132  virtual void slot_onStateViewAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
133 
135  virtual bool addNode(makVrv::DtElementIDHierarchyNode*) const;
136 
139  virtual bool isValidState(makVrv::DtUniqueID) const;
140 
142  virtual void filterItems();
143 
145  virtual void filterTDLItems();
146 
147  virtual void stateViewUpdated();
148 
149  virtual void resorted();
150 
151  virtual DtVrfStateViewCollectionManager& vrfStateViewCollectionManager() const;
152 
153  protected:
154  virtual void forcesChanged();
155  virtual void unhandledStateView(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
156 
157  virtual void slot_itemDoubleClicked(QTreeWidgetItem*);
158 
159  virtual void clearExpansionStateFor(DtObjectListViewItem*);
160 
161  virtual void removeNode(makVrv::DtElementID);
162  virtual bool positionNodeInHierarchy(makVrv::DtElementIDHierarchyNode*, bool force = false);
163  virtual void hookChildToParent(makVrv::DtElementIDHierarchyNode*, bool forceUpdate = false);
164  virtual void hookParentToChildren(makVrv::DtElementIDHierarchyNode*, bool forceUpdate = false);
166  virtual QVariant echelonId(const DtObjectListViewItem*) const;
167  virtual void slot_stateViewAboutToBeRemoved(const makVrv::DtStateView<DtVrfObjectDataState>& s);
168 
169  virtual void cleanupHierarchyItem(DtObjectListViewItem* item);
170  virtual void createdHierarchyItem(DtObjectListViewItem* item);
171 
173  virtual void deferredItemSelectionChanged();
174 
175  protected:
176  virtual void addDataFunctions(DtObjectListViewItem* item);
177  virtual void addSortingFunctions(DtObjectListViewItem* item);
178  virtual void slot_externalSelectionChanged(
179  const makVrv::DtSelectionManager::IdSet& selected,
180  const makVrv::DtSelectionManager::IdSet& deselected );
181 
182  virtual void updateCollapseButtons();
183  virtual void updateCollapseButtons(QTreeWidgetItem*);
184 
185  virtual void createCollapseButton(unsigned int);
186  virtual void expandToLevel(unsigned int level, QTreeWidgetItem* lvi);
187  virtual void collapseToLevel(unsigned int level, QTreeWidgetItem* lvi);
188 
190  virtual void hierarchyItemsModified(const makVrv::DtElementAttributeManager::EntryAttributesList&) = 0;
191  virtual short supportsAttribute() const = 0;
192 
193  virtual void hierarchyItemsRemoved(const makVrv::DtElementData::UniqueIdList&);
194  virtual void setupForceRootNodes();
195  virtual bool sortBySubordinatePosition(const DtObjectListViewItem& rhs, const DtObjectListViewItem& lhs);
196 
197  virtual void checkPendingOperations();
198  virtual void checkFogOfWar(DtObjectListViewItem*, int oldForce = -1, int newForce = -1);
199  virtual void onForceChanged(DtObjectListViewItem*, int oldForce = -1, int newForce = -1);
200  virtual void onDamageStateChanged(DtObjectListViewItem*, bool isDestroyed = false);
201  virtual void onActivatedStateChanged(DtObjectListViewItem*, bool isActivated = true);
202  virtual void onMarkingTextFilterChanged(DtObjectListViewItem*);
203  virtual void slot_extendedApplicationOptionsChanged();
204 
205  virtual void slot_onUpdateRateChanged(makVrv::DtUniqueID id, int rate);
206  virtual void completeRateChange(makVrv::DtUniqueID id);
207 
209  virtual void itemPositioned(DtObjectListViewItem*);
210 
213  virtual void checkParentVisibility(DtObjectListViewItem*);
214 
215  virtual void restoreExpansionState(QTreeWidgetItem*, bool expanded);
216 
217  virtual void initialize();
218 
219  virtual void resetVisuals();
221  virtual void resetIconColor(DtRwColor, const std::vector<makVrv::DtUniqueID>& ids);
222 
223  virtual void slot_uuidChanged(makVrv::DtUniqueID id, const DtUUID& oldUUID, const DtUUID& newUUID);
224 
225  virtual void slot_objectVisibilityChanged(makVrv::DtUniqueID id, bool);
226 
227  protected:
228  typedef std::map<makVrv::DtElementID, DtObjectListViewItem*> DtHierarchyListItemMap;
229  typedef std::map<makVrv::DtElementID, std::pair<makVrv::DtElementIDHierarchyNode, int> > PendingOperationsMap;
230 
233  std::vector<DtExpandCollapseButton*> myCollapseButtonVector;
234  boost::signals2::connection myGrayIfHiddenConnection;
236 
237  bool myDirty;
245  std::set<QTreeWidgetItem*> myRootNodesForVisibilityCheck;
246 
253 
255 
256  std::map<DtUUID, bool> myExpandedNodes;
257  std::map<DtUUID, DtObjectListViewItem*> myItemsByUUID;
258 
261 
262  std::map<makVrv::DtUniqueID, makVrv::DtSignalConnectionManager*> myRateChanges;
263 
265 
266  QString myTextFilter;
267 
270  };
271 }
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
makVrv::DtSignalConnectionManager myDeferredSelectionSignalManager
Definition: vrfHierarchyPageLogic.h:252
PendingOperationsMap myPendingOperations
Definition: vrfHierarchyPageLogic.h:250
bool myShowEchelonIdColumn
Definition: vrfHierarchyPageLogic.h:239
UpdateRate
Definition: DtSimEntryUpdater.h:34
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
bool myDirty
Definition: vrfHierarchyPageLogic.h:237
bool myNeedsResort
Definition: vrfHierarchyPageLogic.h:244
std::map< makVrv::DtUniqueID, makVrv::DtSignalConnectionManager * > myRateChanges
Definition: vrfHierarchyPageLogic.h:262
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:43
bool myShowObjectConsoleWarningIcon
Definition: vrfHierarchyPageLogic.h:254
bool myFirstTick
Definition: vrfHierarchyPageLogic.h:240
Contains makVrv::DtElementData class.
bool myUseForceRootOrganization
Default is false.
Definition: vrfHierarchyPageLogic.h:249
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:26
DtHierarchyListItemMap myForceRootItems
Definition: vrfHierarchyPageLogic.h:259
bool initiallyExpand() const
Definition: vrfHierarchyPageLogic.h:99
makVrv::DtDe & myDe
Definition: vrfHierarchyPageLogic.h:231
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfHierarchyPageLogic.h:251
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:257
DtVrfHierarchyPage * myInterface
Definition: vrfHierarchyPageLogic.h:232
std::map< makVrv::DtElementID, std::pair< makVrv::DtElementIDHierarchyNode, int > > PendingOperationsMap
Definition: vrfHierarchyPageLogic.h:229
Contains makVrv::DtElementIDHierarchy class.
DtHierarchyListItemMap myForceRootItemsByForce
Definition: vrfHierarchyPageLogic.h:260
double myLastDirtyCountTime
Definition: vrfHierarchyPageLogic.h:268
Definition: vrfHierarchyPage.h:109
std::map< DtUUID, bool > myExpandedNodes
Definition: vrfHierarchyPageLogic.h:256
std::vector< EntryAttributes > EntryAttributesList
Definition: DtElementAttributeManager.h:41
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
The DtElementIDHierarchyNode class will contain information about an element, its children and its pa...
Definition: DtElementIDHierarchy.h:33
This class is the central point for looking up information about a particular object in the VRF GUI...
Definition: vrfStateViewCollectionManager.h:126
bool myUpdateCollapseButtons
Definition: vrfHierarchyPageLogic.h:238
std::map< makVrv::DtElementID, DtObjectListViewItem * > DtHierarchyListItemMap
Definition: vrfHierarchyPageLogic.h:228
EntityStates
Definition: sharedVrfVrlApplicationSettings.h:31
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
boost::signals2::connection myGrayIfHiddenConnection
Definition: vrfHierarchyPageLogic.h:234
virtual void setDoubleClickAttachesAndCenters(bool b)
Definition: vrfHierarchyPageLogic.h:88
Base class to provide boost signal/slot management.
std::set< QTreeWidgetItem * > myRootNodesForVisibilityCheck
Definition: vrfHierarchyPageLogic.h:245
std::vector< DtExpandCollapseButton * > myCollapseButtonVector
Definition: vrfHierarchyPageLogic.h:233
std::vector< DtElementID > UniqueIdList
Definition: DtElementData.h:48
bool myGrayOutHiddenItems
Definition: vrfHierarchyPageLogic.h:269
DtHierarchyListItemMap myItems
Definition: vrfHierarchyPageLogic.h:235
Contains the DtElementAttributeManager class declaration.
int myRetries
Definition: vrfHierarchyPageLogic.h:242
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
QString myTextFilter
Definition: vrfHierarchyPageLogic.h:266
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_itemRemoved
Definition: vrfHierarchyPageLogic.h:110
DtVrfStateViewCollectionManager * myVrfStateViewCollectionManager
Definition: vrfHierarchyPageLogic.h:264
Definition: objectListViewItem.h:45
bool myDoubleClickAttachesAndCenters
Definition: vrfHierarchyPageLogic.h:243
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
bool doubleClickAttachesAndCenters() const
Definition: vrfHierarchyPageLogic.h:93
bool grayOutHiddenItems() const
Definition: vrfHierarchyPageLogic.h:105
bool myInitiallyExpand
Definition: vrfHierarchyPageLogic.h:241

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)