VR-Forces 5.0.1 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 
82 protected slots:
83  virtual void addRow();
84  virtual void removeRow();
85  virtual void itemSelectionChanged();
86  virtual void assemblyChanged();
87  virtual void elementSelectionChanged();
88  virtual void editAssembly();
89  virtual void removeAssembly();
90  virtual void addAssembly();
91  virtual void onEditSystemProperties();
92 
93 public:
95  QHBoxLayout* myButtonLayout;
99 
100  QHBoxLayout* myButtonModifyLayout;
106 
109 
115  typedef std::map<int, QTableWidget*> TableWidgets;
117 
118 protected:
122 
123  std::string myCurrentAssembly;
124 
125  QStringList myAvailableSystems;
126  QStringList myUnusedSystems;
127 
129  {
130  std::map<std::string, std::string> all;
131  std::map<std::string, std::string> available;
132  };
133 
134  typedef std::map<int, AssemblyItemStruct> AvailableAssemblyItems;
136 
137  typedef std::map<std::string, DtRwVariableBindings*> SystemVariables;
139 };
140 
143 {
144 public:
147 
149  virtual ~DtAssembliesEditorCreator();
150 
152  static DtAssembliesEditorCreator& instance(makVrv::DtDe&);
153 
155  static void registerInstance(makVrv::DtDe&, DtAssembliesEditorCreator*);
156 
158  virtual DtAssembliesEditor* create(QWidget* parent);
159 
160 protected:
162 };
std::map< int, AssemblyItemStruct > AvailableAssemblyItems
Definition: assembliesEditor.h:134
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:97
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:130
QToolButton * myEditAssembly
Definition: assembliesEditor.h:103
makVrv::DtDe & myDe
Definition: assembliesEditor.h:161
QLabel * myInstructions
Definition: assembliesEditor.h:98
std::map< std::string, DtRwVariableBindings * > SystemVariables
Definition: assembliesEditor.h:137
std::map< std::string, std::string > available
Definition: assembliesEditor.h:131
Definition: assembliesEditor.h:128
Definition: assembliesReaderWriter.h:31
Definition: assembliesReaderWriter.h:107
QStringList myAvailableSystems
Definition: assembliesEditor.h:125
This class will allow editing of the assemblies available to roll up for aggregates.
Definition: assembliesEditor.h:38
QHBoxLayout * myButtonModifyLayout
Definition: assembliesEditor.h:100
AvailableAssemblyItems myAvailableAssemblyItems
Definition: assembliesEditor.h:135
DtAssembliesReaderWriter::RwRootNode myCurrentRoot
Definition: assembliesEditor.h:121
Creator for the canvas.
Definition: assembliesEditor.h:142
QToolButton * myRemoveAssembly
Definition: assembliesEditor.h:102
QLabel * myAssemblyLabel
Definition: assembliesEditor.h:107
Contains makVrv::DtVirtualBaseClass class.
SystemVariables mySystemVariables
Definition: assembliesEditor.h:138
QHBoxLayout * myButtonLayout
Definition: assembliesEditor.h:95
QComboBox * myAssembly
Definition: assembliesEditor.h:108
QToolButton * myAddAssemblyItem
Definition: assembliesEditor.h:104
QStringList myUnusedSystems
Definition: assembliesEditor.h:126
std::map< int, QTableWidget * > TableWidgets
0 - Equipment 1 - Weapons 2 - Ammunition 3 - Variables 4 - Systems
Definition: assembliesEditor.h:115
QTabWidget * myTabWidget
Definition: assembliesEditor.h:94
DtAssembliesReaderWriter::RootNodeContainer myAssembliesRootNode
Definition: assembliesEditor.h:120
TableWidgets myTableWidgets
Definition: assembliesEditor.h:116
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:70
std::string myCurrentAssembly
Definition: assembliesEditor.h:123
makVrv::DtDe & myDe
Definition: assembliesEditor.h:119
QToolButton * myAddAssembly
Definition: assembliesEditor.h:101
QPushButton * myOKButton
Definition: assembliesEditor.h:96
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
QToolButton * myRemoveAssemblyItem
Definition: assembliesEditor.h:105

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)