21 #ifndef __ANTARES_APPLICATION_STUDY_H__
22 #define __ANTARES_APPLICATION_STUDY_H__
24 #include <yuni/yuni.h>
25 #include "../toolbox/wx-wrapper.h"
26 #include <antares/study/study.h>
27 #include <antares/study/output.h>
28 #include <yuni/core/event.h>
30 #include <antares/locator/locator.h>
32 #include "ui/simulator/toolbox/components/map/settings.h"
47 extern wxString gLastOpenedStudyFolder;
59 void OpenStudyFromFolder(wxString folder);
64 SaveResult SaveStudy();
69 SaveResult SaveStudyAs(
const Yuni::String& path,
bool copyoutput,
bool copyuserdata,
bool copylogs);
74 void SetCurrentStudy(std::shared_ptr<Data::Study> study);
79 std::shared_ptr<Data::Study> GetCurrentStudy();
84 bool CurrentStudyIsValid();
90 SaveResult ExportMap(
const Yuni::String& path,
91 bool transparentBackground,
92 const wxColour& backgroundColor,
93 const std::list<uint16_t>& layers,
95 Antares::Map::mapImageFormat format);
102 bool CloseTheStudy(
bool updateGUI =
true);
107 bool CheckIfInsideAStudyFolder(
const AnyString& path,
bool quiet =
false);
118 void RunSimulationOnTheStudy(Data::Study::Ptr study,
119 const YString& simuName,
120 const YString& simuComments,
122 Solver::Feature features = Solver::standard,
123 bool preproOnly =
false,
124 const std::string& solverName =
"sirius");
129 void UpdateGUIFromStudyState();
139 void MarkTheStudyAsModified();
144 void MarkTheStudyAsModified(
const Data::Study::Ptr& study);
146 void ResetTheModifierState(
bool v);
154 bool StudyHasBeenModified();
163 uint64_t StudyInMemoryRevisionID();
168 void RefreshListOfOutputsForTheCurrentStudy();
170 void StudyRefreshCalendar();
179 extern Yuni::Event<void()> OnStudyLoaded;
186 extern Yuni::Event<void()> OnStudyClosed;
191 extern Yuni::Event<void()> OnStudySaved;
196 extern Yuni::Event<void()> OnStudySavedAs;
202 extern Yuni::Event<void(
Data::Study&)> OnStudyChanged;
207 extern Yuni::Event<void()> OnStudyAreasChanged;
209 extern Yuni::Event<void()> OnStudySettingsChanged;
215 OnStudyUpdateOutputInfo;
220 extern Yuni::Event<void(
Data::Area*)> OnStudyAreaRename;
225 extern Yuni::Event<void(
Data::Area*)> OnStudyAreaAdded;
230 extern Yuni::Event<void(
Data::Area*)> OnStudyAreaDelete;
238 extern Yuni::Event<void(
Data::Area*)> OnStudyAreaColorChanged;
275 extern Yuni::Event<void()> OnStudyNodalOptimizationChanged;
280 extern Yuni::Event<void()> OnStudySimulationSettingsChanged;
285 extern Yuni::Event<void()> OnStudyUpdatePlaylist;
290 extern Yuni::Event<void()> OnStudyReloadAllComponentsWithJITData;
297 extern Yuni::Event<void()> OnStudyThermalClusterCommonSettingsChanged;
300 extern Yuni::Event<void(
Data::Area*)> OnStudyThermalClusterGroupChanged;
307 extern Yuni::Event<void()> OnStudyRenewableClusterCommonSettingsChanged;
310 extern Yuni::Event<void(
Data::Area*)> OnStudyRenewableClusterGroupChanged;
317 extern Yuni::Event<void()> OnStudyScenarioBuilderDataAreLoaded;
326 extern Yuni::Event<void()> OnStudyBeginUpdate;
332 extern Yuni::Event<void()> OnStudyEndUpdate;
335 extern Yuni::Event<void(
const void*)> OnInspectorRefresh;
338 extern Yuni::Event<void()> OnMainNotebookChanged;
342 extern Yuni::Event<void()> OnLayerNodeUIChanged;
346 extern Yuni::Event<void(
const wxString*)> OnMapLayerChanged;
349 extern Yuni::Event<void(
const wxString*)> OnMapLayerAdded;
350 extern Yuni::Event<void(
const wxString*)> OnMapLayerRemoved;
351 extern Yuni::Event<void(
const wxString*)> OnMapLayerRenamed;
357 void MemoryFlushBeginUpdate();
360 void MemoryFlushEndUpdate();
362 bool CanPerformMemoryFlush();
365 extern bool SystemParameterHaveChanged;
370 extern bool GUIFlagInvalidateAreas;
378 extern Yuni::String LastPathForOpeningAFile;
389 OnStudyBeginUpdate();
405 MemoryFlushBeginUpdate();
409 MemoryFlushEndUpdate();
Definition of a link between two areas (Interconnection)
Definition: links.h:58
Definition for a single area.
Definition: area.h:51
Definition: BindingConstraint.h:49
std::list< Ptr > List
List.
Definition: output.h:43
std::shared_ptr< Output > Ptr
Smartptr.
Definition: output.h:41
A single thermal cluster.
Definition: cluster.h:76
Avoid the execution of a memory flush.
Definition: study.h:401
Avoid the use of the data related to a study for the lifetime of the object (RAII)
Definition: study.h:385