VR-Forces 4.2 Class Documentation
DtVrfScriptedTaskManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 #include <vrvUtil/DtVirtualBaseClass.h>
15 #include <vrvUtil/signalslib.h>
16 #include <vrfGuiCore/vrfGuiCore.h>
18 #include <vrvCore/DtDe.h>
19 #include <vlpi/simulationAddress.h>
20 
21 #include <boost/function.hpp>
22 
23 class DtSimMessage;
24 
27 class QWidget;
28 
29 namespace makVrf
30 {
31  class DtVrfBackendState;
32 
35  class DT_DLL_VRFGUICORE DtVrfScriptedTaskManager : public makVrv::DtVirtualBaseClass
36  {
37  public:
38  typedef std::map<int, makVrv::DtUnicode> ScriptedTaskTypeNames;
39  typedef std::map<bool, std::string> IconType;
40  typedef std::map<int, std::string> DoctrinesByForce;
41 
43  {
44  makVrv::DtUnicode name;
46  };
47 
48  typedef std::map<int, ScriptedTaskDialogInformation> ScriptedTaskTypeInformation;
49 
51  {
52  ScenarioSystemPair() : scenarioScript(0), systemScript(0) {};
53  ScenarioSystemPair(DtScriptedTaskMetaData* sc, DtScriptedTaskMetaData* sy) : scenarioScript(sc), systemScript(sy) {};
54 
55  DtScriptedTaskMetaData* scenarioScript;
57  std::string scriptError;
58  bool modified;
59  };
60 
61  typedef std::map<std::string, ScenarioSystemPair> ScriptedTasks;
62  typedef std::pair<std::string, bool> ActionCategory;
63  typedef std::set<std::string> Doctrines;
64  typedef std::map<std::string, ActionCategory> ActionCategories;
65 
67  {
69  std::string scriptError;
70  };
71 
72  typedef std::map<std::string, PreservedScript> PreservedScripts;
73 
74  public:
75  DtVrfScriptedTaskManager(makVrv::DtDe&);
76  virtual ~DtVrfScriptedTaskManager();
77 
79  static DtVrfScriptedTaskManager& instance(makVrv::DtDe& de);
80  static void registerInstance(makVrv::DtDe&, DtVrfScriptedTaskManager*);
81 
85  virtual void clear(bool andSetting = true);
86 
89  virtual void removeScriptedTaskMetaData(const std::string& scriptedTaskId, bool signal = true);
90 
92  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId, bool system) const;
93 
95  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId) const;
96 
99  virtual void addScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, bool addScript = false);
100 
103  virtual void duplicateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& sourceId);
104 
108  virtual void updateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& originalId = "");
109 
111  virtual void deleteScriptedTaskMetaData(const std::string&);
112 
114  virtual void addScriptedTaskMetaData(const DtScriptedTaskMetaData&, bool signal = true);
115 
118  virtual void requestScriptedTasks();
119 
121  virtual bool isSystemScript(const std::string&) const;
122 
124  virtual bool appearsOnMenu(const std::string&) const;
125 
127  virtual bool systemScriptAvailable(const std::string&) const;
128 
130  virtual void setSystemScriptAvailable(const std::string& id, bool);
131 
133  virtual void removeSystemScript(const std::string& id, bool signal = true);
134 
136  virtual const ScriptedTasks& scriptedTaskMetaData() const;
137 
139  virtual bool hasScriptedTaskMetaData(const std::string&) const;
140  virtual bool hasScenarioScriptedTaskMetaData(const std::string&) const;
141  virtual bool hasSystemScriptedTaskMetaData(const std::string&) const;
142 
144  virtual bool hasDoctrine(const std::string&) const;
145 
149  virtual std::string uniqueScriptIdFrom(const std::string&,
150  std::set<std::string> additionalToCheck = std::set<std::string>()) const;
151 
155  virtual void makeSystemScript(const std::string&);
156 
158  virtual void assignScriptError(const std::string& scriptId, const std::string& error);
159 
161  virtual void clearScriptError(const std::string& scriptId);
162 
165  virtual bool scriptHasError(const std::string& scriptId, std::string* error = 0) const;
166 
168  virtual bool scriptIsModified(const std::string& scriptId) const;
169 
171  virtual void setScriptModified(const std::string& scriptId, bool);
172 
174  virtual void clearModifiedScripts();
175 
179  virtual void setScript(const std::string& scriptId, const std::string& script, bool setAsModified = true);
180 
182  virtual bool hasModifiedScripts() const;
183 
185  virtual void preserveModifiedScripts();
186 
188  virtual void restorePreservedScripts();
189 
191  virtual int mapScriptIdToAction(const std::string& scriptId);
192 
194  virtual void unmapScriptId(const std::string&);
195 
197  virtual void setMonitorFrameRates(const std::string& scriptId, bool monitor);
198 
200  virtual const ActionCategories& actionCategories() const;
201 
203  virtual const Doctrines& doctrines() const;
204 
206  virtual void requestScriptsIfNeeded();
207 
211  virtual void addScriptedTaskType(int, const makVrv::DtUnicode& name);
212  virtual void addScriptedTaskTypeIcon(int, bool isSystemIcon, const std::string&);
213  virtual makVrv::DtUnicode getScriptedTaskTypeName(int) const;
214  virtual std::string getScriptedTaskTypeIcon(int, bool isSystemScrript) const;
215  virtual ScriptedTaskTypeNames getScriptedTaskTypes() const;
216  virtual void removeScriptedTaskType(int);
218 
220  virtual std::vector<std::string> scriptedTasksValidFor(const DtEntityType&, int force = -1) const;
221 
223  virtual std::vector<std::string> reactiveTasksValidFor(const DtEntityType&, int force = -1) const;
224 
226  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force = -1) const;
227 
229  virtual std::vector<std::string> scriptsThatSupportDoctrine(const std::string&) const;
230 
232  const DoctrinesByForce& doctrinesByForce() const
233  {
234  return myDoctrinesByForce;
235  }
236 
238  virtual std::string doctrineForForce(int) const;
239 
240  protected:
242  virtual void receiveScriptedTaskList(DtSimMessage* msg);
243 
245  virtual void receiveActionCategories(DtSimMessage* msg);
246 
248  virtual void receiveDoctrines(DtSimMessage* msg);
249 
252  virtual void processDoctrinesOperation(DtSimMessage* msg);
253 
255  virtual void receivedScriptedTaskUpdateMessage(DtSimMessage* msg);
256 
258  virtual void slot_backendRemoved(const DtVrfBackendState&);
259 
260  public:
261  boost::signal<void ()> signal_aboutToClearScriptedTasks;
262  boost::signal<void (std::string)> signal_scriptedTaskAboutToBeRemoved;
263  boost::signal<void (std::string)> signal_scriptedTaskAdded;
264  boost::signal<void ()> signal_receivedScriptedTasks;
265  boost::signal<void (int)> signal_scriptedTaskTypeAdded;
266  boost::signal<void (int)> signal_scriptedTaskTypeRemoved;
267  boost::signal<void ()> signal_doctrinesReceived;
268 
271  boost::signal<void (std::string, bool, std::string)> signal_scriptErrorChange;
272 
274  boost::signal<void (std::string, bool)> signal_scriptModified;
275 
277  boost::signal<void ()> signal_scriptModifiedCleared;
278 
280  boost::signal<void (int, std::string)> signal_scriptRemovedFromTaskMenu;
281 
283  boost::signal<void (int, std::string)> signal_scriptAddedToTaskMenu;
284 
286  boost::signal<void (int, std::string)> signal_assignedDoctrineChanged;
287 
288  protected:
289  makVrv::DtDe& myDe;
292 
293  unsigned int myRequestId;
294 
295  typedef std::map<std::string, int> ScriptIdToActionIdMap;
297 
298  DtSimulationAddress myScriptMonitorAddress;
299  std::map<std::string, int> myMonitoring;
300 
304 
306 
308  };
309 }

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)