VR-Forces 4.6.1 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 
20 
21 #include <QtWidgets/QDialog>
22 
23 #include <vector>
24 
25 class QVBoxLayout;
26 class QScrollArea;
27 class QLabel;
28 class QFrame;
30 class DtSimMessage;
31 
32 namespace makVrf
33 {
34  class DtTaskSetVariableWidgetInterface;
35  class DtLocationEntryWidget;
36  class DtVrfFilteredListView;
37  class DtTaskSetVariableWidget;
38 
40  {
41  public:
43  virtual ~DtQtScriptedTaskFormatter();
44 
45  virtual DtString stringRep(const DtScriptedTask&) const;
46  virtual DtString stringRep(const DtString& scriptId, const DtRwVariableBindings& variables, const DtRwVariableBindings& variableDataTypes) const;
47 
48  protected:
50  };
51 
55  {
56  Q_OBJECT
57  public:
58 
59  struct WidgetInfo
60  {
61  bool visible;
62  std::string type;
65  QHBoxLayout* hBoxLayout;
67  };
68 
69  //CTOR
70  DtScriptedTaskDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
71 
72  //DTOR
73  virtual ~DtScriptedTaskDialog();
74 
75  virtual bool editStatement(const std::vector<makVrv::DtSimEntry*>& data, const DtSimStatement* s);
76 
78  virtual void initializeFromVariables(const QString& description, const std::vector<DtScriptedTaskVariable>& vars,
79  const std::vector<makVrv::DtSimEntry*>& initializeFrom = std::vector<makVrv::DtSimEntry*>());
80 
82  virtual void initializeFromLayout(const QString& description, const std::string& uiLayout,
83  const std::vector<makVrv::DtSimEntry*>& initializeFrom = std::vector<makVrv::DtSimEntry*>());
84 
86  virtual void setDescription(const QString&);
87 
89  virtual std::vector<DtScriptedTaskVariable> convertToVariables() const;
90 
92  virtual DtRwVariableBindings* convertToVariableBindings() const;
93 
94  virtual void setLocationValid(bool);
95 
96  virtual void validate();
97 
98  virtual QSize visibleSize();
99 
101  virtual void setupFromBoundVariables(const DtRwVariableBindings&);
102 
104  virtual DtRwVariableBindings* variableBindings() const;
105 
106  template <typename T> void getWidgetsOfType(std::vector<T>& widgets) const
107  {
108  std::map<std::string, WidgetInfo>::const_iterator iter = this->myWidgetVariables.begin();
109 
110  while (iter != this->myWidgetVariables.end())
111  {
112  T widget = dynamic_cast<T>(iter->second.widget);
113 
114  if (widget)
115  {
116  widgets.push_back(widget);
117  }
118 
119  ++iter;
120  }
121  }
122 
123  boost::signal<void (DtVrfFilteredListView*)> signal_filteredListViewSelectionChanged;
124  boost::signal<void (bool, DtTaskSetVariableWidget*)> signal_topLevelCheckStateChanged;
125 
126  virtual bool insertMapFocusHandler(DtMapFocusHandler* h, int index);
127 
129  virtual void setUiLayout(const std::string&);
130 
132  virtual QSize canvasSize();
133  virtual QWidget* contents(const std::vector<makVrv::DtSimEntry*>& data);
134 
136  virtual void setShowInternalVariables(bool);
137  bool showInternalVariables() const { return myShowInternalVariables; };
138 
139  protected:
140  virtual bool initializeForScriptedTask(const std::vector<makVrv::DtSimEntry*>& data, const DtSimStatement* s);
141  virtual bool initializeForScriptedSet(const std::vector<makVrv::DtSimEntry*>& data, const DtSimStatement* s);
142  virtual bool initializeStatementForEditing(const std::vector<makVrv::DtSimEntry*>& data, const DtString& scriptId, const DtSimStatement* stmt);
143 
144  virtual void slot_topLevelCheckStateChanged(bool, DtTaskSetVariableWidget*);
145 
146  virtual void slot_filteredListViewChanged(DtVrfFilteredListView*);
147 
149  virtual void initializeFromAction(DtVrfTaskSetAction*);
150  virtual void initializeDialogFromScriptId(const std::string& scriptId);
151 
152  virtual void setupFormForDisplayFromMetaData();
153 
155  virtual void initializeDialogFromLayout(const QString& description, const std::string& scriptId);
156 
157  virtual bool wantsSelectionOfObjectInCommandMode() const;
158  virtual void sendRequest();
159 
161  virtual void run(const std::vector<makVrv::DtSimEntry*>&);
162 
164  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& s);
165 
167  virtual void setupStatement(const DtSimStatement* stmt);
168 
170  virtual void postGuiSetup(const std::vector<makVrv::DtSimEntry*>& data);
171 
172  virtual void setLocationValid(DtLocationEntryWidget* loca, bool);
173 
176  virtual bool setupFromUiLayout(bool& setup);
177 
180  virtual bool setupFromVariables(bool& setup);
181 
183  virtual void requestUiLayout();
184 
186  virtual void receivedUiLayout(DtSimMessage*);
187 
189  virtual void initializeWidgetForVariable(DtTaskSetVariableWidgetInterface* w, const DtScriptedTaskVariable&, int index, bool fromDesigner, int& indent, bool& setup);
190 
191  public slots:
192 
195  virtual void updateValidity();
196 
197  public:
198  QWidget* myCanvas;
199  QVBoxLayout* myContentLayout;
201  QScrollArea* myScrollArea;
202  QWidget* myInsideWidget;
204  QVBoxLayout* myInsideLayout;
205 
206  protected:
209 
210  std::map<std::string, WidgetInfo> myWidgetVariables;
212  std::vector<DtScriptedTaskVariable> myScriptedTaskVariables;
213 
215 
216  typedef std::map<DtLocationEntryWidget*, bool> LocationValid;
218 
220 
221  std::string myUiLayout;
222 
225  std::vector<makVrv::DtUniqueID> mySimEntryIDs;
228  };
229 
233  {
234  public:
235  DtScriptedTaskPreviewDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
236  virtual ~DtScriptedTaskPreviewDialog();
237 
239  virtual void init(const QString& description, const std::vector<DtScriptedTaskVariable>&);
240 
242  virtual void init(const QString& description, const std::string&);
243 
244  public:
247  };
248 
250  {
251  public:
252  virtual DtTaskSetDialogInterface* create(makVrv::DtDe&, QWidget* parent);
253  bool supportsType(makVrv::DtDe& de, const DtSimTaskMessageType&, const DtSimStatement*) const;
254  };
255 
257  {
258  public:
259  virtual DtTaskSetDialogInterface* create(makVrv::DtDe&, QWidget* parent);
260  bool supportsType(makVrv::DtDe& de, const DtSetMessageType&, const DtSimStatement*) const;
261  };
262 
264  {
265  public:
267  virtual DtScriptedTaskDialogCreator* create();
268 
270  static void registerInstance(makVrv::DtDe& de, DtScriptedTaskDialogCreatorInstance*);
271  };
272 
274  {
275  public:
277  virtual DtScriptedSetDialogCreator* create();
278 
280  static void registerInstance(makVrv::DtDe& de, DtScriptedSetDialogCreatorInstance*);
281  };
282 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)