VR-Forces 4.2 Class Documentation
DtVrfHierarchyPageLogic.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 
15 #include <vrvCore/DtElementIDHierarchy.h>
16 #include <vrvCore/DtElementData.h>
17 #include <vrvCore/DtSelectionManager.h>
18 
19 #include <QtCore/QPoint>
20 
21 #include <map>
22 
23 class QTreeWidgetItem;
24 
25 namespace makVrv
26 {
27  class DtDe;
28  class DtElementIDHierarchyNode;
29 };
30 
31 namespace makVrf
32 {
33  class DtVrfHierarchyPage;
34  class DtVrfObjectListViewItem;
36 
38  {
39  public:
41  DtVrfHierarchyPageLogic( makVrv::DtDe& de, DtVrfHierarchyPage* iface );
42  virtual ~DtVrfHierarchyPageLogic();
43 
44  public:
45  virtual void slot_itemSelectionChanged();
46  virtual void slot_rightClickOnItem(QPoint global);
47  virtual QTreeWidgetItem* itemForState(const DtVrfObjectListViewItem::DtVrfObjectState s) const;
48  virtual void expandToLevel(unsigned int i);
49  virtual void collapseToLevel(unsigned int i);
50  virtual void viewItemExpanded(QTreeWidgetItem* i);
51  virtual void viewItemCollapsed(QTreeWidgetItem* i);
52 
53  virtual void deparent(const QStringList&) = 0;
54  virtual void reparent(const QStringList& children, makVrv::DtUniqueID parentId) = 0;
55 
57  virtual bool processHierarchyItem(makVrv::DtElementIDHierarchyNode*, bool force = false);
58 
59  protected:
60 
61  virtual void slot_onTick(makVrv::DtDe&);
62 
65  virtual void slot_onStateViewAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& s);
66 
68  virtual bool addNode(makVrv::DtElementIDHierarchyNode*) const;
69 
72  virtual bool isValidState(makVrv::DtUniqueID) const;
73 
74  protected:
75  virtual void removeNode(makVrv::DtElementID);
76  virtual bool positionNodeInHierarchy(makVrv::DtElementIDHierarchyNode*, bool force = false);
77  virtual void hookChildToParent(makVrv::DtElementIDHierarchyNode*);
78  virtual void hookParentToChildren(makVrv::DtElementIDHierarchyNode*);
79  virtual DtVrfObjectListViewItem* createItemFor(makVrv::DtElementIDHierarchyNode*);
80  virtual QVariant echelonId(const DtVrfObjectListViewItem*) const;
81 
82  virtual bool sortByEchelonId(const DtVrfObjectListViewItem& rhs, const DtVrfObjectListViewItem& lhs);
83  virtual int getDesignator(const std::string& echelon) const;
84 
85  protected:
86  virtual void addDataFunctions(DtVrfObjectListViewItem* item);
87  virtual void addSortingFunctions(DtVrfObjectListViewItem* item);
88  virtual void slot_externalSelectionChanged(
89  const makVrv::DtSelectionManager::IdSet& selected,
90  const makVrv::DtSelectionManager::IdSet& deselected );
91 
92  virtual void updateCollapseButtons();
93  virtual void updateCollapseButtons(QTreeWidgetItem*);
94 
95  virtual void createCollapseButton(unsigned int);
96  virtual void expandToLevel(unsigned int level, QTreeWidgetItem* lvi);
97  virtual void collapseToLevel(unsigned int level, QTreeWidgetItem* lvi);
98 
100  virtual void hierarchyItemsModified(const makVrv::DtElementData::EntryAttributesList&) = 0;
101 
102  virtual void hierarchyItemsRemoved(const makVrv::DtElementData::UniqueIdList&);
103 
104  virtual void checkPendingOperations();
105 
106  protected:
107  typedef std::map<makVrv::DtElementID, DtVrfObjectListViewItem*> DtHierarchyListItemMap;
108  typedef std::map<makVrv::DtUniqueID, DtVrfObjectListViewItem*> DtHierarchyStateIDListItemMap;
109  typedef std::map<makVrv::DtElementID, std::pair<makVrv::DtElementIDHierarchyNode, int> > PendingOperationsMap;
110 
111  makVrv::DtDe& myDe;
113  std::vector<DtExpandCollapseButton*> myCollapseButtonVector;
114 
117  bool myDirty;
123  };
124 }

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)