VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scriptedTaskDialog.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
21 #endif
22 #include <boost/signals2.hpp>
23 
24 #include <QtWidgets/QDialog>
25 
26 #include <vector>
27 
28 class QVBoxLayout;
29 class QScrollArea;
30 class QLabel;
31 class QFrame;
33 class DtSimMessage;
34 
35 namespace makVrf
36 {
37  class DtTaskSetVariableWidgetInterface;
38  class DtLocationEntryWidget;
39  class DtVrfFilteredListView;
40  class DtTaskSetVariableWidget;
41 
43  {
44  public:
46  virtual ~DtQtScriptedTaskFormatter();
47 
48  virtual DtString stringRep(const DtScriptedTask&) const;
49  virtual DtString stringRep(const DtString& scriptId, const DtRwVariableBindings& variables, const DtRwVariableBindings& variableDataTypes) const;
50 
51  protected:
53  };
54 
58  {
59  Q_OBJECT
60  public:
61 
62  struct WidgetInfo
63  {
64  bool visible;
65  std::string type;
68  QHBoxLayout* hBoxLayout;
70  };
71 
72  //CTOR
73  DtScriptedTaskDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
74 
75  //DTOR
76  virtual ~DtScriptedTaskDialog();
77 
78  virtual bool editStatement(const std::vector<makVrv::DtSimEntry*>& data, const DtSimStatement* s);
79 
81  virtual void initializeFromVariables(const QString& description, const std::vector<DtScriptedTaskVariable>& vars,
82  const std::vector<makVrv::DtSimEntry*>& initializeFrom = std::vector<makVrv::DtSimEntry*>());
83 
85  virtual void initializeFromLayout(const QString& description, const std::string& uiLayout,
86  const std::vector<makVrv::DtSimEntry*>& initializeFrom = std::vector<makVrv::DtSimEntry*>());
87 
89  virtual void setDescription(const QString&);
90 
92  virtual std::vector<DtScriptedTaskVariable> convertToVariables() const;
93 
95  virtual DtRwVariableBindings* convertToVariableBindings() const;
96 
97  virtual void setLocationValid(bool);
98 
99  virtual void validate();
100 
101  virtual QSize visibleSize();
102 
104  virtual void setupFromBoundVariables(const DtRwVariableBindings&);
105 
107  virtual DtRwVariableBindings* variableBindings() const;
108 
109  template <typename T> void getWidgetsOfType(std::vector<T>& widgets) const
110  {
111  std::map<std::string, WidgetInfo>::const_iterator iter = this->myWidgetVariables.begin();
112 
113  while (iter != this->myWidgetVariables.end())
114  {
115  T widget = dynamic_cast<T>(iter->second.widget);
116 
117  if (widget)
118  {
119  widgets.push_back(widget);
120  }
121 
122  ++iter;
123  }
124  }
125 
126  boost::signals2::signal<void (DtVrfFilteredListView*)> signal_filteredListViewSelectionChanged;
127  boost::signals2::signal<void (bool, DtTaskSetVariableWidget*)> signal_topLevelCheckStateChanged;
128 
129  virtual bool insertMapFocusHandler(DtMapFocusHandler* h, int index);
130 
132  virtual void setUiLayout(const std::string&);
133 
135  virtual QSize canvasSize();
136  virtual QWidget* contents(const std::vector<makVrv::DtSimEntry*>& data);
137 
139  virtual void setShowInternalVariables(bool);
140  bool showInternalVariables() const { return myShowInternalVariables; };
141 
142  static std::string buildLayoutFrom(makVrv::DtDe& de, const std::vector<DtScriptedTaskVariable>& vars, const std::string& description, bool showInternal = false);
143  virtual std::string buildLayoutFrom();
144 
145  protected:
146  virtual bool initializeForScriptedTask(const std::vector<makVrv::DtSimEntry*>& data, const DtSimStatement* s);
147  virtual bool initializeForScriptedSet(const std::vector<makVrv::DtSimEntry*>& data, const DtSimStatement* s);
148  virtual bool initializeStatementForEditing(const std::vector<makVrv::DtSimEntry*>& data, const DtString& scriptId, const DtSimStatement* stmt);
149 
150  virtual void slot_topLevelCheckStateChanged(bool, DtTaskSetVariableWidget*);
151 
152  virtual void slot_filteredListViewChanged(DtVrfFilteredListView*);
153 
155  virtual void initializeFromAction(DtVrfTaskSetAction*);
156  virtual void initializeDialogFromScriptId(const std::string& scriptId);
157 
158  virtual void setupFormForDisplayFromMetaData();
159 
161  virtual void initializeDialogFromLayout(const QString& description, const std::string& scriptId);
162 
163  virtual bool wantsSelectionOfObjectInCommandMode(const std::vector<makVrv::DtSimEntry*>&) const;
164  virtual void sendRequest();
165 
167  virtual void run(const std::vector<makVrv::DtSimEntry*>&);
168 
170  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& s);
171 
173  virtual void setupStatement(const DtSimStatement* stmt);
174 
176  virtual void postGuiSetup(const std::vector<makVrv::DtSimEntry*>& data);
177 
178  virtual void setLocationValid(DtLocationEntryWidget* loca, bool);
179 
182  virtual bool setupFromUiLayout(bool& setup, const std::vector<makVrv::DtSimEntry*>& data = std::vector<makVrv::DtSimEntry*>());
183 
186  virtual bool setupFromVariables(bool& setup, const std::vector<makVrv::DtSimEntry*>& data = std::vector<makVrv::DtSimEntry*>());
187 
189  virtual void requestUiLayout();
190 
192  virtual void receivedUiLayout(DtSimMessage*);
193 
195  virtual void initializeWidgetForVariable(DtTaskSetVariableWidgetInterface* w, const DtScriptedTaskVariable&, int index, bool fromDesigner, int& indent, bool& setup,
196  const std::vector<makVrv::DtSimEntry*>& data = std::vector<makVrv::DtSimEntry*>(), const std::set<makVrv::DtUniqueID>& selection = std::set<makVrv::DtUniqueID>());
197 
198  public slots:
199 
202  virtual void updateValidity();
203 
204  public:
205  QWidget* myCanvas;
206  QVBoxLayout* myContentLayout;
208  QScrollArea* myScrollArea;
209  QWidget* myInsideWidget;
211  QVBoxLayout* myInsideLayout;
212 
213  protected:
216 
217  std::map<std::string, WidgetInfo> myWidgetVariables;
219  std::vector<DtScriptedTaskVariable> myScriptedTaskVariables;
220 
222 
223  typedef std::map<DtLocationEntryWidget*, bool> LocationValid;
225 
227 
228  std::string myUiLayout;
229 
232  std::vector<makVrv::DtUniqueID> mySimEntryIDs;
235  };
236 
240  {
241  public:
242  DtScriptedTaskPreviewDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
243  virtual ~DtScriptedTaskPreviewDialog();
244 
246  virtual void init(const QString& description, const std::vector<DtScriptedTaskVariable>&);
247 
249  virtual void init(const QString& description, const std::string&);
250 
251  public:
254  };
255 
257  {
258  public:
259  virtual DtTaskSetDialogInterface* create(makVrv::DtDe&, QWidget* parent);
260  bool supportsType(makVrv::DtDe& de, const DtSimTaskMessageType&, const DtSimStatement*) const;
261  };
262 
264  {
265  public:
266  virtual DtTaskSetDialogInterface* create(makVrv::DtDe&, QWidget* parent);
267  bool supportsType(makVrv::DtDe& de, const DtSetMessageType&, const DtSimStatement*) const;
268  };
269 
271  {
272  public:
274  virtual DtScriptedTaskDialogCreator* create();
275 
277  static void registerInstance(makVrv::DtDe& de, DtScriptedTaskDialogCreatorInstance*);
278  };
279 
281  {
282  public:
284  virtual DtScriptedSetDialogCreator* create();
285 
287  static void registerInstance(makVrv::DtDe& de, DtScriptedSetDialogCreatorInstance*);
288  };
289 }
QVBoxLayout * myContentLayout
Definition: scriptedTaskDialog.h:206
QString myDescriptionText
Definition: scriptedTaskDialog.h:221
Definition: scriptedTaskTask.h:36
Virtual base class.
Definition: DtVirtualBaseClass.h:19
Definition: taskSetDialogInterface.h:64
Definition: baseTaskSetDialogInterface.h:33
Definition: scriptedTaskDialog.h:62
int variableIndex
Definition: scriptedTaskDialog.h:69
makVrv::DtDe & myDe
Definition: scriptedTaskDialog.h:253
std::vector< makVrv::DtUniqueID > mySimEntryIDs
Variables when requesting UI layout during a run, will keep track of the element ids for sim entry (f...
Definition: scriptedTaskDialog.h:232
Definition: taskSetDialogInterface.h:83
Definition: scriptedTaskDialog.h:280
std::string myUiLayout
Definition: scriptedTaskDialog.h:228
bool myShowInternalVariables
Definition: scriptedTaskDialog.h:214
QFrame * myDescriptionSeparator
Definition: scriptedTaskDialog.h:210
QVBoxLayout * myInsideLayout
Definition: scriptedTaskDialog.h:211
Definition: scriptedTaskDialog.h:270
const DtSimStatement * myScriptedTaskToEdit
Definition: scriptedTaskDialog.h:234
boost::signals2::signal< void(DtVrfFilteredListView *)> signal_filteredListViewSelectionChanged
Definition: scriptedTaskDialog.h:126
DtMapFocusHandlerManager myMapFocusHandlerManager
Definition: scriptedTaskDialog.h:215
This class will created a dialog from scripted task meta data and send that information to the back-e...
Definition: scriptedTaskDialog.h:57
ReaderWriter object that maintains a list of reader-writer variable bindings.
Definition: rwVariableBindings.h:27
bool visible
Definition: scriptedTaskDialog.h:64
QHBoxLayout * hBoxLayout
Definition: scriptedTaskDialog.h:68
A dialog that allows a preview of the scripted task dialog to be show without sending task requests...
Definition: scriptedTaskDialog.h:239
Basic implementation that has a label at the top.
Definition: taskSetVariableWidget.h:228
Definition: scriptedTaskDialog.h:42
Contains makVrv::DtVirtualBaseClass class.
Contains makVrf::DtBaseTaskSetDialogInterface class.
std::map< DtLocationEntryWidget *, bool > LocationValid
Definition: scriptedTaskDialog.h:223
DtTaskSetVariableWidgetInterface * widget
Definition: scriptedTaskDialog.h:67
void getWidgetsOfType(std::vector< T > &widgets) const
Definition: scriptedTaskDialog.h:109
int myUiLayoutRequestId
Definition: scriptedTaskDialog.h:233
The DtScriptedTaskTask will encapsulate the variables defined by a scripted task in the variable bind...
Definition: scriptedTaskTask.h:33
File: simMsg.h.
Definition: simMessage.h:35
std::string type
Definition: scriptedTaskDialog.h:65
A widget class for managing a DtTreeWidget of objects which supports user-defined filters...
Definition: vrfFilteredListView.h:62
This class will define the interface needed for being a task set variable that can be used in task di...
Definition: taskSetVariableWidget.h:115
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
A class for keeping track of meta data for variables of scripted tasks.
Definition: scriptedTaskVariable.h:31
Definition: scriptedTaskDialog.h:263
QWidget * myCanvas
Definition: scriptedTaskDialog.h:205
Class that is used as a template for task/set dialogs.
Definition: taskSetDialogInterface.h:45
boost::signals2::signal< void(bool, DtTaskSetVariableWidget *)> signal_topLevelCheckStateChanged
Definition: scriptedTaskDialog.h:127
bool showInternalVariables() const
Definition: scriptedTaskDialog.h:140
QWidget * myInsideWidget
Definition: scriptedTaskDialog.h:209
makVrv::DtSignalConnectionManager myConnections
Definition: scriptedTaskDialog.h:226
Base class to provide boost signal/slot management.
class DtSimStatement:
Definition: simStatement.h:35
LocationValid myLocationsValid
Definition: scriptedTaskDialog.h:224
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Base class that must be implemented by items that wish to be part of a map focus handler chain...
Definition: mapFocusHandlerManager.h:28
DtScriptedTaskDialog * myScriptedTaskDialog
Definition: scriptedTaskDialog.h:252
std::vector< DtScriptedTaskVariable > myScriptedTaskVariables
Definition: scriptedTaskDialog.h:219
QLabel * myDescription
Definition: scriptedTaskDialog.h:207
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Definition: locationEntryWidget.h:44
This class will manage filtered list views for the basic purpose of allowing a single list view in th...
Definition: mapFocusHandlerManager.h:74
Contains makVrf::DtTaskSetMenu, makVrf::DtVrfTaskSetAction, and makVrf::DtTaskSetMenuItem class...
Definition: vrfTaskSetAction.h:104
QScrollArea * myScrollArea
Definition: scriptedTaskDialog.h:208
makVrv::DtDe & myDe
Definition: scriptedTaskDialog.h:52
std::string scriptedTaskVariableName
Definition: scriptedTaskDialog.h:66
#define DT_DLL_VRFGUITASKSETQT
Definition: vrfGuiTaskSetQt.h:22
Definition: scriptedTaskMetaData.h:48
DtScriptedTaskMetaData myScriptedTaskMetaData
Definition: scriptedTaskDialog.h:218
std::map< std::string, WidgetInfo > myWidgetVariables
Definition: scriptedTaskDialog.h:217
Definition: scriptedTaskDialog.h:256

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)