VR-Forces 4.8 Class Documentation
 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 
31 namespace makVrv
32 {
33  class DtDe;
34 }
35 
38 {
39  Q_OBJECT
40 
41 public:
42  DtAssembliesEditor(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = Qt::Tool);
43  virtual ~DtAssembliesEditor();
44 
45 protected:
47  virtual void accept();
48 
49  virtual void convertTableToAssembly(const std::string&,
51  virtual void setupTableForAssembly(const DtAssembliesReaderWriter::RwRootNode&);
52 
53  virtual QComboBox* createComboForAmmunition(int row, const std::string&);
54  virtual QComboBox* createComboForEquipment(int row, const std::string&);
55  virtual QComboBox* createComboForWeapon(int row, const std::string&);
56  virtual QComboBox* createComboForVariable(int row, const std::string&);
57  virtual QComboBox* createComboForSystem(int row, const std::string& keyword, const makVrv::DtUnicode& value);
58  virtual QComboBox* createComboBoxFor(int row, const std::string& keyword, const std::string& type);
59  virtual void setupRowFor(int type, int row, const std::string& keyword, const std::string& value);
60 
61  virtual void removeFromAllButThis(int type, const QString&, QComboBox*);
62  virtual void removeFromAllButThis(int type, QComboBox*);
63  virtual void addToAllButThis(int type, const QString&, const QString&, QComboBox*);
64  virtual void modifyComboBoxesFor(int type, QComboBox* value);
65  virtual void variableSelectionChanged(QComboBox*);
66  virtual void systemSelectionChanged(QComboBox*);
67  virtual void setupAvailableMap(const std::string& type, const std::map<std::string, std::string>&);
68  virtual void setupAvailableItemsForCurrentRoot();
69  virtual QString getUniqueName(const QString&);
70  void createTableTabFor(int type, const QString& tab);
71  virtual int mapAvailableToType(const std::string&) const;
72  virtual std::string mapTypeToAvailable(int) const;
73  virtual void addUnusedSystemsTo(QComboBox*);
74  virtual bool canAddItem(int type) const;
75  virtual void setupVariablesForSystem(const std::string& system,
77  virtual void setupVariableDefaultValueFor(QComboBox*);
78  virtual void editSystemProperties(bool edit);
79  virtual void elementSelectionChanged(QComboBox*);
80 
81 protected slots:
82  virtual void addRow();
83  virtual void removeRow();
84  virtual void itemSelectionChanged();
85  virtual void assemblyChanged();
86  virtual void elementSelectionChanged();
87  virtual void editAssembly();
88  virtual void removeAssembly();
89  virtual void addAssembly();
90  virtual void onEditSystemProperties();
91 
92 public:
94  QHBoxLayout* myButtonLayout;
98 
99  QHBoxLayout* myButtonModifyLayout;
105 
108 
114  typedef std::map<int, QTableWidget*> TableWidgets;
116 
117 protected:
121 
122  std::string myCurrentAssembly;
123 
124  QStringList myAvailableSystems;
125  QStringList myUnusedSystems;
126 
128  {
129  std::map<std::string, std::string> all;
130  std::map<std::string, std::string> available;
131  };
132 
133  typedef std::map<int, AssemblyItemStruct> AvailableAssemblyItems;
135 
136  typedef std::map<std::string, DtRwVariableBindings*> SystemVariables;
138 };
139 
142 {
143 public:
146 
148  virtual ~DtAssembliesEditorCreator();
149 
151  static DtAssembliesEditorCreator& instance(makVrv::DtDe&);
152 
154  static void registerInstance(makVrv::DtDe&, DtAssembliesEditorCreator*);
155 
157  virtual DtAssembliesEditor* create(QWidget* parent);
158 
159 protected:
161 };
std::map< int, AssemblyItemStruct > AvailableAssemblyItems
Definition: assembliesEditor.h:133
Virtual base class.
Definition: DtVirtualBaseClass.h:22
QPushButton * myCancelButton
Definition: assembliesEditor.h:96
A unicode string.
Definition: DtUnicode.h:33
QPushButton * myAddAssemblyItem
Definition: assembliesEditor.h:103
std::map< std::string, std::string > all
Definition: assembliesEditor.h:129
makVrv::DtDe & myDe
Definition: assembliesEditor.h:160
QLabel * myInstructions
Definition: assembliesEditor.h:97
std::map< std::string, DtRwVariableBindings * > SystemVariables
Definition: assembliesEditor.h:136
std::map< std::string, std::string > available
Definition: assembliesEditor.h:130
QPushButton * myRemoveAssemblyItem
Definition: assembliesEditor.h:104
Definition: assembliesEditor.h:127
Definition: assembliesReaderWriter.h:31
Definition: assembliesReaderWriter.h:107
QStringList myAvailableSystems
Definition: assembliesEditor.h:124
This class will allow editing of the assemblies available to roll up for aggregates.
Definition: assembliesEditor.h:37
QHBoxLayout * myButtonModifyLayout
Definition: assembliesEditor.h:99
QPushButton * myAddAssembly
Definition: assembliesEditor.h:100
AvailableAssemblyItems myAvailableAssemblyItems
Definition: assembliesEditor.h:134
DtAssembliesReaderWriter::RwRootNode myCurrentRoot
Definition: assembliesEditor.h:120
Creator for the canvas.
Definition: assembliesEditor.h:141
QLabel * myAssemblyLabel
Definition: assembliesEditor.h:106
Contains makVrv::DtVirtualBaseClass class.
SystemVariables mySystemVariables
Definition: assembliesEditor.h:137
QPushButton * myRemoveAssembly
Definition: assembliesEditor.h:101
QPushButton * myEditAssembly
Definition: assembliesEditor.h:102
QHBoxLayout * myButtonLayout
Definition: assembliesEditor.h:94
QComboBox * myAssembly
Definition: assembliesEditor.h:107
QStringList myUnusedSystems
Definition: assembliesEditor.h:125
std::map< int, QTableWidget * > TableWidgets
0 - Equipment 1 - Weapons 2 - Ammunition 3 - Variables 4 - Systems
Definition: assembliesEditor.h:114
QTabWidget * myTabWidget
Definition: assembliesEditor.h:93
DtAssembliesReaderWriter::RootNodeContainer myAssembliesRootNode
Definition: assembliesEditor.h:119
TableWidgets myTableWidgets
Definition: assembliesEditor.h:115
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::string myCurrentAssembly
Definition: assembliesEditor.h:122
makVrv::DtDe & myDe
Definition: assembliesEditor.h:118
QPushButton * myOKButton
Definition: assembliesEditor.h:95
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:32

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)