VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
assembliesEditor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #if !defined(Q_MOC_RUN)
16 #include <vrvUtil/DtUnicode.h>
17 #endif
18 
19 #include <QtWidgets/QDialog>
20 
21 #include <set>
22 #include <map>
23 
24 class QPushButton;
25 class QHBoxLayout;
26 class QLabel;
27 class QTableWidget;
28 class QComboBox;
29 class QTabWidget;
30 class QToolButton;
31 
32 namespace makVrv
33 {
34  class DtDe;
35 }
36 
39 {
40  Q_OBJECT
41 
42 public:
43  DtAssembliesEditor(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = Qt::Tool);
44  virtual ~DtAssembliesEditor();
45 
46 protected:
48  virtual void accept();
49 
50  virtual void convertTableToAssembly(const std::string&,
52  virtual void setupTableForAssembly(const DtAssembliesReaderWriter::RwRootNode&);
53 
54  virtual QComboBox* createComboForAmmunition(int row, const std::string&);
55  virtual QComboBox* createComboForEquipment(int row, const std::string&);
56  virtual QComboBox* createComboForWeapon(int row, const std::string&);
57  virtual QComboBox* createComboForVariable(int row, const std::string&);
58  virtual QComboBox* createComboForSystem(int row, const std::string& keyword, const makVrv::DtUnicode& value);
59  virtual QComboBox* createComboBoxFor(int row, const std::string& keyword, const std::string& type);
60  virtual void setupRowFor(int type, int row, const std::string& keyword, const std::string& value);
61 
62  virtual void removeFromAllButThis(int type, const QString&, QComboBox*);
63  virtual void removeFromAllButThis(int type, QComboBox*);
64  virtual void addToAllButThis(int type, const QString&, const QString&, QComboBox*);
65  virtual void modifyComboBoxesFor(int type, QComboBox* value);
66  virtual void variableSelectionChanged(QComboBox*);
67  virtual void systemSelectionChanged(QComboBox*);
68  virtual void setupAvailableMap(const std::string& type, const std::map<std::string, std::string>&);
69  virtual void setupAvailableItemsForCurrentRoot();
70  virtual QString getUniqueName(const QString&);
71  void createTableTabFor(int type, const QString& tab);
72  virtual int mapAvailableToType(const std::string&) const;
73  virtual std::string mapTypeToAvailable(int) const;
74  virtual void addUnusedSystemsTo(QComboBox*);
75  virtual bool canAddItem(int type) const;
76  virtual void setupVariablesForSystem(const std::string& system,
78  virtual void setupVariableDefaultValueFor(QComboBox*);
79  virtual void editSystemProperties(bool edit);
80  virtual void elementSelectionChanged(QComboBox*);
81  virtual bool inMasterSMS() const;
82  virtual bool inMasterSMS(const std::string&) const;
83  virtual void setupRootNode(DtAssembliesReaderWriter::RwRootNode* root);
84 
85 protected slots:
86  virtual void addRow();
87  virtual void promoteAssembly();
88  virtual void removeRow();
89  virtual void itemSelectionChanged();
90  virtual void assemblyChanged();
91  virtual void elementSelectionChanged();
92  virtual void editAssembly();
93  virtual void removeAssembly();
94  virtual void addAssembly();
95  virtual void onEditSystemProperties();
96 
97 public:
99  QHBoxLayout* myButtonLayout;
103 
104  QHBoxLayout* myButtonModifyLayout;
111 
114 
120  typedef std::map<int, QTableWidget*> TableWidgets;
122 
123 protected:
127  mutable std::map<std::string, bool> myPromoted;
128 
129  std::string myCurrentAssembly;
130 
131  QStringList myAvailableSystems;
132  QStringList myUnusedSystems;
133 
135  {
136  std::map<std::string, std::string> all;
137  std::map<std::string, std::string> available;
138  };
139 
140  typedef std::map<int, AssemblyItemStruct> AvailableAssemblyItems;
142 
143  typedef std::map<std::string, DtRwVariableBindings*> SystemVariables;
145 };
146 
149 {
150 public:
153 
155  virtual ~DtAssembliesEditorCreator();
156 
158  static DtAssembliesEditorCreator& instance(makVrv::DtDe&);
159 
161  static void registerInstance(makVrv::DtDe&, DtAssembliesEditorCreator*);
162 
164  virtual DtAssembliesEditor* create(QWidget* parent);
165 
166 protected:
168 };
std::map< int, AssemblyItemStruct > AvailableAssemblyItems
Definition: assembliesEditor.h:140
QToolButton * myPromoteAssembly
Definition: assembliesEditor.h:110
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
QPushButton * myCancelButton
Definition: assembliesEditor.h:101
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
std::map< std::string, std::string > all
Definition: assembliesEditor.h:136
QToolButton * myEditAssembly
Definition: assembliesEditor.h:107
makVrv::DtDe & myDe
Definition: assembliesEditor.h:167
QLabel * myInstructions
Definition: assembliesEditor.h:102
std::map< std::string, DtRwVariableBindings * > SystemVariables
Definition: assembliesEditor.h:143
std::map< std::string, std::string > available
Definition: assembliesEditor.h:137
Definition: assembliesEditor.h:134
std::map< std::string, bool > myPromoted
Definition: assembliesEditor.h:127
Definition: assembliesReaderWriter.h:31
Definition: assembliesReaderWriter.h:112
QStringList myAvailableSystems
Definition: assembliesEditor.h:131
This class will allow editing of the assemblies available to roll up for aggregates.
Definition: assembliesEditor.h:38
QHBoxLayout * myButtonModifyLayout
Definition: assembliesEditor.h:104
AvailableAssemblyItems myAvailableAssemblyItems
Definition: assembliesEditor.h:141
DtAssembliesReaderWriter::RwRootNode myCurrentRoot
Definition: assembliesEditor.h:126
Creator for the canvas.
Definition: assembliesEditor.h:148
QToolButton * myRemoveAssembly
Definition: assembliesEditor.h:106
QLabel * myAssemblyLabel
Definition: assembliesEditor.h:112
Contains makVrv::DtVirtualBaseClass class.
SystemVariables mySystemVariables
Definition: assembliesEditor.h:144
QHBoxLayout * myButtonLayout
Definition: assembliesEditor.h:99
QComboBox * myAssembly
Definition: assembliesEditor.h:113
QToolButton * myAddAssemblyItem
Definition: assembliesEditor.h:108
QStringList myUnusedSystems
Definition: assembliesEditor.h:132
std::map< int, QTableWidget * > TableWidgets
0 - Equipment 1 - Weapons 2 - Ammunition 3 - Variables 4 - Systems
Definition: assembliesEditor.h:120
QTabWidget * myTabWidget
Definition: assembliesEditor.h:98
DtAssembliesReaderWriter::RootNodeContainer myAssembliesRootNode
Definition: assembliesEditor.h:125
TableWidgets myTableWidgets
Definition: assembliesEditor.h:121
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
std::string myCurrentAssembly
Definition: assembliesEditor.h:129
makVrv::DtDe & myDe
Definition: assembliesEditor.h:124
QToolButton * myAddAssembly
Definition: assembliesEditor.h:105
QPushButton * myOKButton
Definition: assembliesEditor.h:100
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
QToolButton * myRemoveAssemblyItem
Definition: assembliesEditor.h:109

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)