VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfOrbatPage.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 
8 #pragma once
9 
10 #if !defined(Q_MOC_RUN)
16 #include <vrfGuiCore/orbatState.h>
19 #endif
20 
21 class QPushButton;
22 class QHBoxLayout;
23 class QToolButton;
24 class QLabel;
25 class QLineEdit;
26 class QMenu;
27 class QAction;
28 class QStringList;
29 class DtIfOrbatOperation;
30 class QFrame;
31 
32 namespace makVrf
33 {
34  class DtCreateObjectPalette;
35  class DtAggregateAsDialog;
36  class DtVrfOrbatTreeWidget;
37  class DtPaletteFilter;
38  class DtSelectUnitDialog;
39 
41  {
42  Q_OBJECT
43 
44  public:
45 
47  virtual ~DtVrfOrbatPage();
48 
50  virtual QIcon icon();
51 
54  virtual makVrv::DtQIconConfigurations qIconConfigurations() const;
55 
57  virtual QString title();
58 
60  virtual const std::string& pageClassName() const;
61 
63  virtual void setOrbatActivated(bool);
64 
66  virtual void itemPositioned(DtObjectListViewItem* item);
67 
70  virtual void setOrbatCreationMode(bool);
71  bool orbatCreationMode() const;
72 
74  virtual void setSignalObjectToCreate(bool);
75  bool signalObjectToCreate() const;
76 
78  virtual void setShowInOrbatOnly(bool);
79  bool showInOrbatOnly() const;
80 
82  virtual void activate();
83 
84  virtual void closeDialogs();
85 
86  virtual void validateButtons();
87 
88  boost::signals2::signal<void (DtEntityMapperKey, std::string, std::string, DtUUID)> signal_createObject;
89 
90  public slots:
91  virtual void onCreateFromOrbat();
92 
93  protected slots:
94  virtual void onAddToOrbat();
95  virtual void onAddUnitToOrbat();
96  virtual void entityPanelDestroyed();
97  virtual void selectUnitDialogDestroyed();
98  virtual void onRemoveFromOrbat();
99  virtual void onEditOrbatEntry();
100  virtual void onEditCancelled();
101  virtual void onEditComplete();
102  virtual void onOrganizeOrbat();
103  virtual void aggregateAsDestroyed();
104  virtual void onMoveUpInOrbatOrder();
105  virtual void onMoveDownInOrbatOrder();
106  virtual void onCopyOrbat();
107  virtual void onPasteOrbat();
108  virtual void onAddOrbatItem();
109 
110  protected:
111  virtual void slot_addUnitFromUnitDialog(const DtEntityMapperKey& key, const QString&);
112  virtual void slot_checkEntityCreateSelection();
113  virtual void moveSelectedBy(int);
114  virtual void onMarkingTextChanged(DtObjectListViewItem*, const QString&);
115 
116  virtual void hideEvent(QHideEvent*);
117 
118  virtual void cancelCreation();
119 
120  virtual void slot_stoppedObjectCreation();
121  virtual void slot_creatingObject();
122 
123  virtual void slot_itemRemoved(makVrv::DtUniqueID);
124 
125  virtual bool isForceRootNode(DtObjectListViewItem*) const;
126  virtual bool isForceRootNode(makVrv::DtUniqueID) const;
127 
128  virtual int forceForRootNode(DtObjectListViewItem*) const;
129  virtual int forceForRootNode(makVrv::DtUniqueID) const;
130 
131  virtual void paletteItemsAdded();
132 
133  virtual DtVrfHierarchyPageLogic* createLogic();
134 
136  virtual void onItemSelected();
137 
138  virtual DtVrfTreeWidget* createHierarchyList();
139 
140  virtual void slot_createObjectType(const DtEntityMapperKey& x);
141 
143  virtual void slot_reparentOrbatItems(const QStringList& ids, makVrv::DtUniqueID parentID, int newOrbatPosition = -1);
144 
147  virtual void editOrbatEntry(makVrv::DtUniqueID);
148 
150  virtual void setupForEditMode(const makVrv::DtStateView<DtOrbatState>*);
151 
153  virtual void setupForCreateMode();
154 
156  virtual void createEntityPalettePanel();
157 
159  virtual DtSelectUnitDialog* createSelectUnitDialog();
160 
162  virtual void createRightClickMenu();
163 
165  virtual void onRightClickOnItem(QTreeWidgetItem*, QMouseEvent* e, int col);
166 
168  virtual void addObjectsToOrbatFromPalette(const std::vector<DtEntityMapperKey>&, const DtUUID& onTopOf, const QString& name = "",
169  const QString& label = "", bool createSubordinates = true);
170 
172  virtual void addChildForCopyToVector(DtObjectListViewItem*, QStringList& nodes, std::set<DtUUID>& processed,
173  bool consideredUnparented = false);
174 
175  protected:
176  virtual void createFromTick();
177  virtual void editFromTick();
178  virtual void setupForOrbatCreationMode();
179  virtual void setupForOrbatEditMode();
180  virtual void changeMaximumNameLength(const DtEntityMapperKey&);
181  virtual void addObjectItemsFromOrbatPalette(const QByteArray&, DtObjectListViewItem*);
182  virtual void objectsDroppedFromPalette(const std::vector<DtEntityMapperKey>& keys, const DtUUID& onTopOf);
183  virtual bool eventFilter(QObject* o, QEvent* e);
184  virtual void onCreateDone();
185 
186  protected:
188  friend class DtVrfOrbatPageCreator;
189 
191  DtVrfOrbatPage( makVrv::DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0);
192 
193  public:
194  QHBoxLayout* myButtonLayout;
195 
196  QWidget* myButtons;
197 
205 
211 
217  QHBoxLayout* myPaletteButtonLayout;
221 
234 
235  protected:
242 
245 
248  };
249 
252  {
253  public:
254 
257 
259  virtual ~DtVrfOrbatPageCreator();
260 
264  virtual std::string pageClassName() const;
265 
267  virtual makVrv::DtPage* create(QWidget* parent = 0, Qt::WindowFlags f = 0);
268  };
269 
272  {
273  Q_OBJECT
274 
275  public:
276  DtOrbatPalettePage( makVrv::DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0);
277 
278  virtual ~DtOrbatPalettePage();
279 
281  virtual const std::string& pageClassName() const;
282 
284  static const std::string& thePageClassName();
285 
287  virtual void clear() override
288  {
289  }
290 
292  virtual void update() override
293  {
294  }
295 
297  virtual void setEnabled(bool) override
298  {
299  }
300 
301  virtual bool initiallyVisible() const override
302  {
303  return false;
304  }
305 
306  virtual void aboutToShow() override
307  {
308  }
309 
310  protected:
311  virtual void activate();
312  };
313 
316 }
makVrv::DtPageCreatorTemplate< DtOrbatPalettePage > DtOrbatPalettePageCreator
Definition: vrfOrbatPage.h:315
QWidget * myButtons
Definition: vrfOrbatPage.h:196
UUID is a unique ID wrapper class.
Definition: uuid.h:59
bool myInCreationMode
Definition: vrfOrbatPage.h:237
Definition: aggregateAsDialog.h:26
DtCreateObjectPalette * myEntityPalettePanel
Part of entity create palette extension to be able to add items at a particular location and with a p...
Definition: vrfOrbatPage.h:208
QToolButton * myCreateFromOrbat
Definition: vrfOrbatPage.h:204
Definition: ifOrbatOperation.h:20
QAction * myEditOrbatAction
Definition: vrfOrbatPage.h:226
Definition: entityMapperKey.h:23
QToolButton * myRemoveFromOrbat
Definition: vrfOrbatPage.h:201
QAction * myCreateFromOrbatAction
Definition: vrfOrbatPage.h:228
Definition: vrfOrbatPage.h:40
QToolButton * myAddToOrbat
Definition: vrfOrbatPage.h:198
QPushButton * myAddButton
Definition: vrfOrbatPage.h:220
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
virtual void clear() override
Clears contents of widget.
Definition: vrfOrbatPage.h:287
QAction * myMoveDown
Definition: vrfOrbatPage.h:231
bool myCreatingObjectFromOrbat
Definition: vrfOrbatPage.h:236
QAction * myOrganizeAction
Definition: vrfOrbatPage.h:229
Definition: vrfHierarchyPageLogic.h:64
The page creator. This class should be extended by all page classes.
Definition: DtPage.h:121
QFrame * mySeparator
Definition: vrfOrbatPage.h:203
bool myOrbatCreationMode
Definition: vrfOrbatPage.h:243
DtUUID myUUIDBeingAdded
Definition: vrfOrbatPage.h:241
QAction * myAddToOrbatAction
Definition: vrfOrbatPage.h:224
DtEntityMapperKey myObjectSelected
Definition: vrfOrbatPage.h:239
bool myShowInOrbatOnly
Definition: vrfOrbatPage.h:247
QHBoxLayout * myPaletteButtonLayout
Definition: vrfOrbatPage.h:217
bool mySignalObjectToCreate
Definition: vrfOrbatPage.h:246
Contains makVrf::DtVrfEchelonHierarchyPage class.
Definition: DtPage.h:150
QToolButton * myAddUnitToOrbat
Definition: vrfOrbatPage.h:199
QLabel * myLabelLabel
Definition: vrfOrbatPage.h:215
virtual void update() override
Tells widget to update (redraw)
Definition: vrfOrbatPage.h:292
QAction * myMoveUp
Definition: vrfOrbatPage.h:230
Definition: vrfTreeWidget.h:26
virtual bool initiallyVisible() const override
Definition: vrfOrbatPage.h:301
This class will allow the user to select a unit type from a list. The default button is &quot;Add&quot; to sign...
Definition: selectUnitDialog.h:37
A DtStateView is a the interface to simulation state information. Users can create DtStateViews for s...
Definition: DtStateView.h:49
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QAction * myRemoveFromOrbatAction
Definition: vrfOrbatPage.h:227
Abstract interface for the creation palettes.
Definition: genericPaletteInterface.h:28
QAction * myCopyAction
Definition: vrfOrbatPage.h:232
The page is a single widget component which is viewed in a page collection.
Definition: DtPage.h:30
QLabel * myCreateHelpText
Definition: vrfOrbatPage.h:212
bool myOrbatActivated
Definition: vrfOrbatPage.h:238
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Specialized ORBAT page that will put page into creation mode.
Definition: vrfOrbatPage.h:271
QPushButton * myClose
Definition: vrfOrbatPage.h:218
QAction * myPasteAction
Definition: vrfOrbatPage.h:233
QAction * myAddUnitToOrbatAction
Definition: vrfOrbatPage.h:225
QLineEdit * myLabelLineEdit
Definition: vrfOrbatPage.h:216
makVrv::DtUniqueID myEditing
Definition: vrfOrbatPage.h:240
QMenu * myRightClickMenu
Right click menu created when right clicking on orbat only items.
Definition: vrfOrbatPage.h:223
DtAggregateAsDialog * myAggregateAsDialog
Definition: vrfOrbatPage.h:209
A widget class for showing different items of supplied types to the logic tthat can be created...
Definition: createObjectPalette.h:71
Base class to provide boost signal/slot management.
virtual void setEnabled(bool) override
Enables/Disables Gui.
Definition: vrfOrbatPage.h:297
QLabel * myNameLabel
Definition: vrfOrbatPage.h:213
makVrv::DtSignalConnectionManager mySidcConnections
Definition: vrfOrbatPage.h:244
virtual void aboutToShow() override
Called when this palette is about to be shown.
Definition: vrfOrbatPage.h:306
Definition: vrfEchelonHierarchyPage.h:18
QToolButton * myOrganize
Definition: vrfOrbatPage.h:202
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
A collection of icon configurations. The collection maintains flags indicating whether to generate ic...
Definition: DtQIconConfiguration.h:131
The creator class needed to be used to create a DtVrfOrbatPagePage.
Definition: vrfOrbatPage.h:251
QToolButton * myEditOrbatEntry
Definition: vrfOrbatPage.h:200
DtSelectUnitDialog * mySelectUnitDialog
Definition: vrfOrbatPage.h:210
QHBoxLayout * myButtonLayout
Definition: vrfOrbatPage.h:194
This tree widget item can be used in any tree that wants to display an icon next to the name of an ob...
Definition: objectListViewItem.h:55
QLineEdit * myNameLineEdit
Definition: vrfOrbatPage.h:214
boost::signals2::signal< void(DtEntityMapperKey, std::string, std::string, DtUUID)> signal_createObject
Definition: vrfOrbatPage.h:88
QPushButton * myOK
Definition: vrfOrbatPage.h:219

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)