VR-Forces 5.0.2 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)
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 class QSpacerItem;
35 
36 namespace makVrf
37 {
38  class DtTaskSetVariableWidgetInterface;
39  class DtLocationEntryWidget;
40  class DtVrfFilteredListView;
41  class DtTaskSetVariableWidget;
42 
44  {
45  public:
47  virtual ~DtQtScriptedTaskFormatter();
48 
49  virtual DtString stringRep(const DtScriptedTask&) const;
50  virtual DtString stringRep(const DtString& scriptId, const DtRwVariableBindings& variables, const DtRwVariableBindings& variableDataTypes) const;
51 
52  protected:
54  };
55 
59  {
60  Q_OBJECT
61  public:
62 
63  struct WidgetInfo
64  {
65  bool visible;
66  std::string type;
69  QHBoxLayout* hBoxLayout;
71  };
72 
73  //CTOR
74  DtScriptedTaskDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
75 
76  //DTOR
77  virtual ~DtScriptedTaskDialog();
78 
79  virtual QSize minimumSizeHint() const;
80  virtual QSize sizeHint() const;
81 
82  virtual bool editStatement(const std::vector<makVrv::DtSimEntry*>& data, const DtSimStatement* s);
83 
85  virtual void initializeFromVariables(const QString& description, const std::vector<DtScriptedTaskVariable>& vars,
86  const std::vector<makVrv::DtSimEntry*>& initializeFrom = std::vector<makVrv::DtSimEntry*>());
87 
89  virtual void initializeFromLayout(const QString& description, const std::string& uiLayout,
90  const std::vector<makVrv::DtSimEntry*>& initializeFrom = std::vector<makVrv::DtSimEntry*>());
91 
93  virtual void setDescription(const QString&);
94 
96  virtual std::vector<DtScriptedTaskVariable> convertToVariables() const;
97 
99  virtual DtRwVariableBindings* convertToVariableBindings() const;
100 
101  virtual void setLocationValid(bool);
102 
103  virtual void validate();
104 
105  virtual QSize visibleSize();
106 
108  virtual void setupFromBoundVariables(const DtRwVariableBindings&);
109 
111  virtual DtRwVariableBindings* variableBindings() const;
112 
113  template <typename T> void getWidgetsOfType(std::vector<T>& widgets) const
114  {
115  std::map<std::string, WidgetInfo>::const_iterator iter = this->myWidgetVariables.begin();
116 
117  while (iter != this->myWidgetVariables.end())
118  {
119  T widget = dynamic_cast<T>(iter->second.widget);
120 
121  if (widget)
122  {
123  widgets.push_back(widget);
124  }
125 
126  ++iter;
127  }
128  }
129 
130  boost::signals2::signal<void (DtVrfFilteredListView*)> signal_filteredListViewSelectionChanged;
131  boost::signals2::signal<void (bool, DtTaskSetVariableWidget*)> signal_topLevelCheckStateChanged;
132 
133  virtual bool insertMapFocusHandler(DtMapFocusHandlerInterface* h, int index);
134 
136  virtual void setUiLayout(const std::string&);
137 
139  virtual QSize canvasSize();
140  virtual QWidget* contents(const std::vector<makVrv::DtSimEntry*>& data);
141 
143  virtual void setShowInternalVariables(bool);
144  bool showInternalVariables() const { return myShowInternalVariables; };
145 
146  static std::string buildLayoutFrom(makVrv::DtDe& de, const std::vector<DtScriptedTaskVariable>& vars, const std::string& description, bool showInternal = false);
147  virtual std::string buildLayoutFrom();
148 
149  virtual void resizeContentsToFit();
150 
151  protected:
152  virtual bool initializeForScriptedTask(const std::vector<makVrv::DtSimEntry*>& data, const DtSimStatement* s);
153  virtual bool initializeForScriptedSet(const std::vector<makVrv::DtSimEntry*>& data, const DtSimStatement* s);
154  virtual bool initializeStatementForEditing(const std::vector<makVrv::DtSimEntry*>& data, const DtString& scriptId, const DtSimStatement* stmt);
155 
156  virtual void slot_topLevelCheckStateChanged(bool, DtTaskSetVariableWidget*);
157 
158  virtual void slot_filteredListViewChanged(DtVrfFilteredListView*);
159 
161  virtual void initializeFromAction(DtVrfTaskSetAction*);
162  virtual void initializeDialogFromScriptId(const std::string& scriptId);
163 
164  virtual void setupFormForDisplayFromMetaData();
165 
167  virtual void initializeDialogFromLayout(const QString& description, const std::string& scriptId);
168 
169  virtual bool wantsSelectionOfObjectInCommandMode(const std::vector<makVrv::DtSimEntry*>&) const;
170  virtual void sendRequest();
171 
173  virtual void run(const std::vector<makVrv::DtSimEntry*>&);
174 
176  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& s);
177 
179  virtual void setupStatement(const DtSimStatement* stmt);
180 
182  virtual void postGuiSetup(const std::vector<makVrv::DtSimEntry*>& data);
183 
184  virtual void setLocationValid(DtLocationEntryWidget* loca, bool);
185 
188  virtual bool setupFromUiLayout(bool& setup, const std::vector<makVrv::DtSimEntry*>& data = std::vector<makVrv::DtSimEntry*>());
189 
192  virtual bool setupFromVariables(bool& setup, const std::vector<makVrv::DtSimEntry*>& data = std::vector<makVrv::DtSimEntry*>());
193 
195  virtual void requestUiLayout();
196 
198  virtual void receivedUiLayout(DtSimMessage*);
199 
201  virtual void initializeWidgetForVariable(DtTaskSetVariableWidgetInterface* w, const DtScriptedTaskVariable&, int index, bool fromDesigner, int& indent, bool& setup,
202  const std::vector<makVrv::DtSimEntry*>& data = std::vector<makVrv::DtSimEntry*>(), const std::set<makVrv::DtUniqueID>& selection = std::set<makVrv::DtUniqueID>());
203 
204  virtual void resizeToContents();
205 
206  public slots:
207 
210  virtual void updateValidity();
211 
212  public:
213  QWidget* myCanvas;
214  QVBoxLayout* myContentLayout;
216  QScrollArea* myScrollArea;
217  QWidget* myInsideWidget;
220  QVBoxLayout* myInsideLayout;
221 
222  protected:
225 
226  std::map<std::string, WidgetInfo> myWidgetVariables;
228  std::vector<DtScriptedTaskVariable> myScriptedTaskVariables;
229 
231 
232  typedef std::map<DtLocationEntryWidget*, bool> LocationValid;
234 
236 
237  std::string myUiLayout;
238 
241  std::vector<makVrv::DtUniqueID> mySimEntryIDs;
244  };
245 
249  {
250  public:
251  DtScriptedTaskPreviewDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
252  virtual ~DtScriptedTaskPreviewDialog();
253 
255  virtual void init(const QString& description, const std::vector<DtScriptedTaskVariable>&);
256 
258  virtual void init(const QString& description, const std::string&);
259 
260  public:
263  };
264 
266  {
267  public:
268  virtual DtTaskSetDialogInterface* create(makVrv::DtDe&, QWidget* parent);
269  bool supportsType(makVrv::DtDe& de, const DtSimTaskMessageType&, const DtSimStatement*) const;
270  };
271 
273  {
274  public:
275  virtual DtTaskSetDialogInterface* create(makVrv::DtDe&, QWidget* parent);
276  bool supportsType(makVrv::DtDe& de, const DtSetMessageType&, const DtSimStatement*) const;
277  };
278 
280  {
281  public:
283  virtual DtScriptedTaskDialogCreator* create();
284 
286  static void registerInstance(makVrv::DtDe& de, DtScriptedTaskDialogCreatorInstance*);
287  };
288 
290  {
291  public:
293  virtual DtScriptedSetDialogCreator* create();
294 
296  static void registerInstance(makVrv::DtDe& de, DtScriptedSetDialogCreatorInstance*);
297  };
298 }
QVBoxLayout * myContentLayout
Definition: scriptedTaskDialog.h:214
QString myDescriptionText
Definition: scriptedTaskDialog.h:230
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:65
Definition: baseTaskSetDialogInterface.h:34
Definition: scriptedTaskDialog.h:63
int variableIndex
Definition: scriptedTaskDialog.h:70
makVrv::DtDe & myDe
Definition: scriptedTaskDialog.h:262
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:241
Definition: taskSetDialogInterface.h:84
Definition: scriptedTaskDialog.h:289
std::string myUiLayout
Definition: scriptedTaskDialog.h:237
bool myShowInternalVariables
Definition: scriptedTaskDialog.h:223
QFrame * myDescriptionSeparator
Definition: scriptedTaskDialog.h:219
QVBoxLayout * myInsideLayout
Definition: scriptedTaskDialog.h:220
Definition: scriptedTaskDialog.h:279
const DtSimStatement * myScriptedTaskToEdit
Definition: scriptedTaskDialog.h:243
boost::signals2::signal< void(DtVrfFilteredListView *)> signal_filteredListViewSelectionChanged
Definition: scriptedTaskDialog.h:130
This class will created a dialog from scripted task meta data and send that information to the back-e...
Definition: scriptedTaskDialog.h:58
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:65
QHBoxLayout * hBoxLayout
Definition: scriptedTaskDialog.h:69
A dialog that allows a preview of the scripted task dialog to be show without sending task requests...
Definition: scriptedTaskDialog.h:248
Basic implementation that has a label at the top.
Definition: taskSetVariableWidget.h:228
Definition: scriptedTaskDialog.h:43
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:232
DtTaskSetVariableWidgetInterface * widget
Definition: scriptedTaskDialog.h:68
void getWidgetsOfType(std::vector< T > &widgets) const
Definition: scriptedTaskDialog.h:113
int myUiLayoutRequestId
Definition: scriptedTaskDialog.h:242
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:66
A widget class for managing a DtVrfTreeWidget of objects which supports user-defined filters...
Definition: vrfFilteredListView.h:63
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:218
Definition: scriptedTaskDialog.h:272
QWidget * myCanvas
Definition: scriptedTaskDialog.h:213
Base class that must be implemented by items that wish to be part of a map focus handler chain...
Definition: mapFocusHandler.h:27
Class that is used as a template for task/set dialogs.
Definition: taskSetDialogInterface.h:46
boost::signals2::signal< void(bool, DtTaskSetVariableWidget *)> signal_topLevelCheckStateChanged
Definition: scriptedTaskDialog.h:131
bool showInternalVariables() const
Definition: scriptedTaskDialog.h:144
QWidget * myInsideWidget
Definition: scriptedTaskDialog.h:217
makVrv::DtSignalConnectionManager myConnections
Definition: scriptedTaskDialog.h:235
Base class to provide boost signal/slot management.
class DtSimStatement:
Definition: simStatement.h:38
LocationValid myLocationsValid
Definition: scriptedTaskDialog.h:233
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
This class will manage filtered list views for the basic purpose of allowing a single list view in th...
Definition: mapFocusHandler.h:74
DtScriptedTaskDialog * myScriptedTaskDialog
Definition: scriptedTaskDialog.h:261
std::vector< DtScriptedTaskVariable > myScriptedTaskVariables
Definition: scriptedTaskDialog.h:228
QLabel * myDescription
Definition: scriptedTaskDialog.h:215
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
Definition: locationEntryWidget.h:45
DtMapFocusHandler myMapFocusHandler
Definition: scriptedTaskDialog.h:224
Contains makVrf::DtTaskSetMenu, makVrf::DtVrfTaskSetAction, and makVrf::DtTaskSetMenuItem class...
Definition: vrfTaskSetAction.h:106
QScrollArea * myScrollArea
Definition: scriptedTaskDialog.h:216
makVrv::DtDe & myDe
Definition: scriptedTaskDialog.h:53
std::string scriptedTaskVariableName
Definition: scriptedTaskDialog.h:67
#define DT_DLL_VRFGUITASKSETQT
Definition: vrfGuiTaskSetQt.h:22
class DtScriptedTaskMetaData
Definition: scriptedTaskMetaData.h:56
DtScriptedTaskMetaData myScriptedTaskMetaData
Definition: scriptedTaskDialog.h:227
std::map< std::string, WidgetInfo > myWidgetVariables
Definition: scriptedTaskDialog.h:226
Definition: scriptedTaskDialog.h:265

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)