21 #ifndef __ANTARES_WINDOWS_OUTPUT_OUTPUT_H__
22 #define __ANTARES_WINDOWS_OUTPUT_OUTPUT_H__
25 #include <ui/common/component/panel.h>
26 #include "../../application/study.h"
27 #include "../../toolbox/components/button.h"
28 #include <wx/treectrl.h>
29 #include <wx/splitter.h>
33 #include <antares/study/fwd.h>
34 #include <wx/statbmp.h>
35 #include <wx/scrolwin.h>
37 #include <ui/common/component/spotlight.h>
39 namespace Antares::Window::OutputViewer
62 Component(wxWindow* parent,
bool parentIsStandaloneWindow =
false);
77 void updateLayerList();
89 void selectCellAllPanels(uint x, uint y);
98 void refreshPanel(uint index);
105 using Ptr = std::shared_ptr<Tab>;
107 using Vector = std::vector<Ptr>;
118 void updateAreaOrLinkName(SelectionType selection,
const Yuni::String& text);
137 void outputSelectionsClear();
140 void createAllControlsIfNeeded();
142 void onStudyClosed();
144 void internalUpdate();
146 void backToInputData(
void*);
152 void incrementYearByYear(
void*);
154 void decrementYearByYear(
void*);
156 void goToASpecificYear(
void*);
159 void openNewWindow(
void*);
171 void removeOutput(
Layer* layer);
174 void onDetachCurrentLayer(wxCommandEvent& evt);
179 void createNewVirtualLayer(LayerType type);
182 void onSelectDataLevel(
void*);
184 void onSelectTimeLevel(
void*);
187 void onToggleSidebar(
void*);
190 const char* imageForLayerPlaceOrder(
const Layer* so)
const;
198 void createSubMenuForSwitchingOrders(wxMenu* menu,
const Layer* currentLayer)
const;
200 void rebuildIndexes();
203 void refreshCurrentYear();
208 void displayMiniFrame(wxWindow* parent,
209 Antares::Component::Spotlight::IProvider::Ptr provider,
211 bool searchInput =
true,
215 void bugFixResetSashPosition();
223 void treeDataClear();
225 void treeDataWaiting();
227 void treeDataUpdate();
229 void treeDataUpdateWL(
const Content& content);
231 bool checkAreaIsCommonToAllOutputs(
const Data::AreaName& name);
233 bool checkLinkIsCommonToAllOutputs(
const Data::AreaLinkName& name);
235 void checkYearByYearMode();
237 void noSimulationData();
239 void updateAreaOrLinkName();
242 void updateGlobalSelection();
244 void updateButtonView();
254 void closeSubFrames();
260 using WxPanelVector = std::vector<wxPanel*>;
268 Yuni::String pCurrentAreaOrLink;
270 SelectionType pCurrentSelectionType;
272 LevelOfDetails pCurrentLOD;
276 uint pYearsLimits[2];
280 bool pHasConcatenedDataset;
282 Yuni::String pCurrentVariable;
284 Yuni::String pCurrentVariableID;
287 Antares::Private::OutputViewerData::ThermalNameSetPerArea* pCurrentClusters;
292 WxPanelVector pBtnPanelAllOutputs;
294 wxSizer* pSizerForBtnOutputs;
296 wxWindow* pWindowForBtnOutputs;
300 wxSizer* pSizerForPanelOutputs;
302 wxWindow* pWindowForPanelOutputs;
304 Yuni::Event<void(wxScrolledWindow*)> pOnScrollAllPanels;
306 Yuni::Event<void(uint, uint)> pOnSelectCellAllPanels;
309 Button* pBtnAllYears;
312 wxSizer* pSizerYearsToolbar;
314 wxSizer* pSizerYearByYearToolbar;
316 wxSizer* pSizerVariables;
318 wxSizer* pSizerToolbar;
321 Layer* pCurrentLayerForMenu;
323 wxWindow* pLblAreaOrLinkName;
329 bool pControlsAlreadyCreated;
332 wxSplitterWindow* pSplitter;
333 wxWindow* pSplitterWindow1;
334 wxWindow* pSplitterWindow2;
336 bool pSidebarCollapsed;
337 int pOldSidebarWidth;
338 Button* pBtnExpandCollapseSidebar;
341 wxWindow* pParentWindow;
344 wxWindow* pLabelItemName;
350 Button* pBtnDetailsRes;
366 Button* pBtnCurrentYearNumber;
368 Button* pBtnVariables;
374 Antares::Private::OutputViewerData::JobVector pJobs;
379 Antares::Private::OutputViewerData::ContentMap pAlreadyPreparedContents;
386 bool pOpenedInANewWindow;
389 bool pASelectionHasAlreadyBeenMade;
Panel implementation.
Definition: panel.h:34
Definition: spotlight.h:38
std::list< Ptr > List
List.
Definition: output.h:43
std::shared_ptr< Output > Ptr
Smartptr.
Definition: output.h:41
std::vector< Panel * > Vector
Vector.
Definition: panel.h:42
Component: Viewer for simulation results.
Definition: output.h:45
void update(const Data::Output::List &list, const Data::Output::Ptr &selection)
Update the list of all outputs.
Definition: output.cpp:685
void refreshAllPanels()
Refresh all panels (only their content)
Definition: output.cpp:2213
void scrollAllPanels(wxScrolledWindow *component)
Ask to all panels to scroll as the given component.
Definition: output.cpp:2291
virtual ~Component()
Destructor.
Definition: output.cpp:136
void refreshAllPanelsWithVirtualLayer()
Refresh all virtual layers.
Definition: output.cpp:2268
void clear()
Clear all output.
Definition: output.cpp:608
void refreshAllTabs()
Refresh all tabs (but not their content)
Definition: output.cpp:2301
Antares::Private::OutputViewerData::Content Content
Content.
Definition: output.h:48
Component(wxWindow *parent, bool parentIsStandaloneWindow=false)
Constructor.
Definition: output.cpp:82
static void ConvertVarNameToID(Yuni::String &id, const Yuni::String &name)
Convert a name into an ID.
Definition: output.cpp:2486
void copyFrom(const Component &source)
Copy data from another output viewer.
Definition: output.cpp:1436
std::vector< Layer * > Vector
Array.
Definition: layer.h:33
Definition: output-comparison.h:31
Definition: variables.h:31
Definition: spotlight-provider.h:82
Definition: spotlight-provider.h:160
Definition: spotlight-provider.h:32