VR-Forces Developer's Guide
 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)
20 #endif
21 #include <boost/signals2.hpp>
22 
23 #include <QtWidgets/QDialog>
24 
25 #include <vector>
26 
27 class QVBoxLayout;
28 class QScrollArea;
29 class QLabel;
30 class QFrame;
32 class DtSimMessage;
33 class QSpacerItem;
34 
35 namespace makVrf
36 {
37  class DtTaskSetVariableWidgetInterface;
38  class DtLocationEntryWidget;
39  class DtVrfFilteredListView;
40  class DtTaskSetVariableWidget;
41  class DtLocationReferenceEntryWidget;
42  class DtSimpleVariableWidget;
43 
45  {
46  public:
48  virtual ~DtQtScriptedTaskFormatter();
49 
50  virtual DtString stringRep(const DtScriptedTask&) const override;
51  virtual DtString stringRep(const DtString& scriptId, const DtRwVariableBindings& variables,
52  const DtRwVariableBindings& variableDataTypes) const override;
53 
54  protected:
56  };
57 
61  {
62  Q_OBJECT
63  public:
64 
65  struct WidgetInfo
66  {
67  bool visible;
68  std::string type;
71  QHBoxLayout* hBoxLayout;
73  };
74 
75  //CTOR
76  DtScriptedTaskDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
77 
78  //DTOR
79  virtual ~DtScriptedTaskDialog() override;
80 
81  virtual QSize minimumSizeHint() const override;
82  virtual QSize sizeHint() const override;
83 
84  virtual bool editStatement(const std::set<makVrv::DtUniqueID>& data, const DtSimStatement* s) override;
85 
87  virtual void initializeFromVariables(const QString& description, const std::vector<DtScriptedTaskVariable>& vars,
88  const std::set<makVrv::DtUniqueID>& initializeFrom = std::set<makVrv::DtUniqueID>());
89 
91  virtual void initializeFromLayout(const QString& description, const std::string& uiLayout,
92  const std::set<makVrv::DtUniqueID>& initializeFrom = std::set<makVrv::DtUniqueID>());
93 
95  virtual void setDescription(const QString&) override;
96 
98  virtual std::vector<DtScriptedTaskVariable> convertToVariables() const;
99 
101  virtual DtRwVariableBindings* convertToVariableBindings() const;
102 
103  virtual void setLocationValid(bool);
104 
105  virtual void validate();
106 
107  virtual QSize visibleSize();
108 
110  virtual void setupFromBoundVariables(const DtRwVariableBindings&);
111 
113  virtual DtRwVariableBindings* variableBindings() const;
114 
115  template <typename T> void getWidgetsOfType(std::vector<T>& widgets) const
116  {
117  std::map<std::string, WidgetInfo>::const_iterator iter = this->myWidgetVariables.begin();
118 
119  while (iter != this->myWidgetVariables.end())
120  {
121  T widget = dynamic_cast<T>(iter->second.widget);
122 
123  if (widget)
124  {
125  widgets.push_back(widget);
126  }
127 
128  ++iter;
129  }
130  }
131 
132  boost::signals2::signal<void (DtVrfFilteredListView*)> signal_filteredListViewSelectionChanged;
133  boost::signals2::signal<void (bool, DtTaskSetVariableWidget*)> signal_topLevelCheckStateChanged;
134 
135  virtual bool insertMapFocusHandler(DtMapFocusHandlerInterface* h, int index) override;
136 
138  virtual void setUiLayout(const std::string&);
139 
141  virtual QSize canvasSize() override;
142  virtual QWidget* contents(const std::set<makVrv::DtUniqueID>& data) override;
143 
145  virtual void setShowInternalVariables(bool);
146  bool showInternalVariables() const { return myShowInternalVariables; };
147 
148  static std::string buildLayoutFrom(makVrv::DtDe& de, const std::vector<DtScriptedTaskVariable>& vars, const std::string& description, bool showInternal = false);
149  virtual std::string buildLayoutFrom();
150 
151  virtual void resizeContentsToFit();
152 
154  virtual void setValidateBeforeSend(bool);
155  bool validateBeforeSend() const
156  {
157  return myValidateBeforeSend;
158  }
159 
160  protected:
161  virtual QString statusText() const override;
162 
163  virtual void slot_positionInputChanged(DtLocationReferenceEntryWidget* pew);
164  virtual void setupForLocationEntryWidget(DtLocationEntryWidget*);
165  virtual void setupForFilteredListView(DtVrfFilteredListView*);
166  virtual void setupForPositionEntryWidget(DtLocationReferenceEntryWidget*);
167  virtual void setupForSimpleVariableWidget(DtSimpleVariableWidget*);
168 
169  virtual bool initializeForScriptedTask(const std::set<makVrv::DtUniqueID>& data, const DtSimStatement* s);
170  virtual bool initializeForScriptedSet(const std::set<makVrv::DtUniqueID>& data, const DtSimStatement* s);
171  virtual bool initializeStatementForEditing(const std::set<makVrv::DtUniqueID>& data, const DtString& scriptId, const DtSimStatement* stmt);
172 
173  virtual void slot_topLevelCheckStateChanged(bool, DtTaskSetVariableWidget*);
174 
175  virtual void slot_filteredListViewChanged(DtVrfFilteredListView*);
176 
178  virtual void initializeFromAction(DtVrfTaskSetAction*) override;
179  virtual void initializeDialogFromScriptId(const std::string& scriptId);
180 
181  virtual void setupFormForDisplayFromMetaData();
182 
184  virtual void initializeDialogFromLayout(const QString& description, const std::string& scriptId);
185 
186  virtual bool wantsSelectionOfObjectInCommandMode(const std::set<makVrv::DtUniqueID>&) const override;
187  virtual void sendRequest() override;
188 
190  virtual void run(const std::set<makVrv::DtUniqueID>&) override;
191 
193  virtual void setupFrom(const std::set<makVrv::DtUniqueID>& s) override;
194 
196  virtual void setupStatement(const DtSimStatement* stmt) override;
197 
199  virtual void postGuiSetup(const std::set<makVrv::DtUniqueID>& data) override;
200 
201  virtual void setLocationValid(DtLocationEntryWidget* loca, bool);
202 
205  virtual bool setupFromUiLayout(bool& setup, const std::set<makVrv::DtUniqueID>& data = std::set<makVrv::DtUniqueID>());
206 
209  virtual bool setupFromVariables(bool& setup, const std::set<makVrv::DtUniqueID>& data = std::set<makVrv::DtUniqueID>());
210 
212  virtual void requestUiLayout();
213 
215  virtual void receivedUiLayout(DtSimMessage*);
216 
218  virtual void initializeWidgetForVariable(DtTaskSetVariableWidgetInterface* w, const DtScriptedTaskVariable&, int index, bool fromDesigner, int& indent, bool& setup,
219  const std::set<makVrv::DtUniqueID>& data = std::set<makVrv::DtUniqueID>(), const std::set<makVrv::DtUniqueID>& selection = std::set<makVrv::DtUniqueID>());
220 
222  virtual void initializeDefaultValueFromStateProperty(DtTaskSetVariableWidgetInterface* widget,
223  const std::string& statePropertyName, const std::set<makVrv::DtUniqueID>& data);
224 
225  virtual void resizeToContents() override;
226 
227  public slots:
228 
231  virtual void updateValidity();
232 
233  public:
234  QWidget* myCanvas;
235  QVBoxLayout* myContentLayout;
238  QWidget* myInsideWidget;
241  QVBoxLayout* myInsideLayout;
242 
243  protected:
245 
246  std::map<std::string, WidgetInfo> myWidgetVariables;
248  std::vector<DtScriptedTaskVariable> myScriptedTaskVariables;
249 
251 
252  typedef std::map<DtLocationEntryWidget*, bool> LocationValid;
254 
256 
257  std::string myUiLayout;
258 
261  std::set<makVrv::DtUniqueID> mySimEntryIDs;
264 
265  bool myValidateBeforeSend = true;
266  };
267 
271  {
272  public:
273  DtScriptedTaskPreviewDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
274  virtual ~DtScriptedTaskPreviewDialog() override;
275 
277  virtual void init(const QString& description, const std::vector<DtScriptedTaskVariable>&);
278 
280  virtual void init(const QString& description, const std::string&);
281 
282  public:
285  };
286 
288  {
289  public:
290  virtual DtTaskSetDialogInterface* create(makVrv::DtDe&, QWidget* parent) override;
291  virtual bool supportsType(makVrv::DtDe& de, const DtSimTaskMessageType&, const DtSimStatement*) const override;
292  };
293 
295  {
296  public:
297  virtual DtTaskSetDialogInterface* create(makVrv::DtDe&, QWidget* parent) override;
298  virtual bool supportsType(makVrv::DtDe& de, const DtSetMessageType&, const DtSimStatement*) const override;
299  };
300 
302  {
303  public:
305  virtual DtScriptedTaskDialogCreator* create();
306 
308  static void registerInstance(makVrv::DtDe& de, DtScriptedTaskDialogCreatorInstance*);
309  };
310 
312  {
313  public:
315  virtual DtScriptedSetDialogCreator* create();
316 
318  static void registerInstance(makVrv::DtDe& de, DtScriptedSetDialogCreatorInstance*);
319  };
320 }
QVBoxLayout * myContentLayout
Definition: scriptedTaskDialog.h:235
QString myDescriptionText
Definition: scriptedTaskDialog.h:250
Definition: scriptedTaskTask.h:40
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Definition: taskSetDialogInterface.h:63
Definition: baseTaskSetDialogInterface.h:35
Definition: scriptedTaskDialog.h:65
int variableIndex
Definition: scriptedTaskDialog.h:72
makVrv::DtDe & myDe
Definition: scriptedTaskDialog.h:284
Definition: taskSetDialogInterface.h:82
Definition: scriptedTaskDialog.h:311
std::string myUiLayout
Definition: scriptedTaskDialog.h:257
bool myShowInternalVariables
Definition: scriptedTaskDialog.h:244
QFrame * myDescriptionSeparator
Definition: scriptedTaskDialog.h:240
QVBoxLayout * myInsideLayout
Definition: scriptedTaskDialog.h:241
Definition: scriptedTaskDialog.h:301
const DtSimStatement * myScriptedTaskToEdit
Definition: scriptedTaskDialog.h:263
boost::signals2::signal< void(DtVrfFilteredListView *)> signal_filteredListViewSelectionChanged
Definition: scriptedTaskDialog.h:132
This class will created a dialog from scripted task meta data and send that information to the back-e...
Definition: scriptedTaskDialog.h:60
ReaderWriter object that maintains a list of reader-writer variable bindings. It keeps a list of name...
Definition: rwVariableBindings.h:27
bool visible
Definition: scriptedTaskDialog.h:67
QHBoxLayout * hBoxLayout
Definition: scriptedTaskDialog.h:71
This widget will allow the user to pick either a destination location or destination object...
Definition: locationReferenceEntryWidget.h:33
A dialog that allows a preview of the scripted task dialog to be show without sending task requests...
Definition: scriptedTaskDialog.h:270
Basic implementation that has a label at the top.
Definition: taskSetVariableWidget.h:231
Definition: scriptedTaskDialog.h:44
Contains makVrv::DtVirtualBaseClass class.
Contains makVrf::DtBaseTaskSetDialogInterface class. This is the interface for the dialog used by mos...
std::map< DtLocationEntryWidget *, bool > LocationValid
Definition: scriptedTaskDialog.h:252
bool validateBeforeSend() const
Definition: scriptedTaskDialog.h:155
DtTaskSetVariableWidgetInterface * widget
Definition: scriptedTaskDialog.h:70
void getWidgetsOfType(std::vector< T > &widgets) const
Definition: scriptedTaskDialog.h:115
int myUiLayoutRequestId
Definition: scriptedTaskDialog.h:262
These classes will define simple data entry widgets that can be used in scripted (or other) tasks...
Definition: simpleVariableWidget.h:47
The DtScriptedTaskTask will encapsulate the variables defined by a scripted task in the variable bind...
Definition: scriptedTaskTask.h:37
File: simMsg.h.
Definition: simMessage.h:35
std::string type
Definition: scriptedTaskDialog.h:68
A widget class for managing a DtVrfTreeWidget of objects which supports user-defined filters...
Definition: vrfFilteredListView.h:64
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. The information is currently ...
Definition: scriptedTaskVariable.h:34
QSpacerItem * myInsideWidgetSpacerItem
Definition: scriptedTaskDialog.h:239
Definition: scriptedTaskDialog.h:294
QWidget * myCanvas
Definition: scriptedTaskDialog.h:234
Base class that must be implemented by items that wish to be part of a map focus handler chain...
Definition: mapFocusHandler.h:31
Class that is used as a template for task/set dialogs.
Definition: taskSetDialogInterface.h:44
boost::signals2::signal< void(bool, DtTaskSetVariableWidget *)> signal_topLevelCheckStateChanged
Definition: scriptedTaskDialog.h:133
bool showInternalVariables() const
Definition: scriptedTaskDialog.h:146
QWidget * myInsideWidget
Definition: scriptedTaskDialog.h:238
makVrv::DtSignalConnectionManager myConnections
Definition: scriptedTaskDialog.h:255
Base class to provide boost signal/slot management.
class DtSimStatement:
Definition: simStatement.h:38
LocationValid myLocationsValid
Definition: scriptedTaskDialog.h:253
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtScriptedTaskDialog * myScriptedTaskDialog
Definition: scriptedTaskDialog.h:283
std::vector< DtScriptedTaskVariable > myScriptedTaskVariables
Definition: scriptedTaskDialog.h:248
QLabel * myDescription
Definition: scriptedTaskDialog.h:236
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:76
Definition: locationEntryWidget.h:47
Contains makVrf::DtTaskSetMenu, makVrf::DtVrfTaskSetAction, and makVrf::DtTaskSetMenuItem class...
Definition: vrfTaskSetAction.h:108
QScrollArea * myScrollArea
Definition: scriptedTaskDialog.h:237
makVrv::DtDe & myDe
Definition: scriptedTaskDialog.h:55
std::string scriptedTaskVariableName
Definition: scriptedTaskDialog.h:69
#define DT_DLL_VRFGUITASKSETQT
Definition: vrfGuiTaskSetQt.h:22
class DtScriptedTaskMetaData
Definition: scriptedTaskMetaData.h:58
std::set< 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:261
DtScriptedTaskMetaData myScriptedTaskMetaData
Definition: scriptedTaskDialog.h:247
std::map< std::string, WidgetInfo > myWidgetVariables
Definition: scriptedTaskDialog.h:246
Definition: scriptedTaskDialog.h:287

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)