ALBA
albaLogicWithManagers.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: ALBA (Agile Library for Biomedical Applications)
4 Module: albaLogicWithManagers
5 Authors: Silvano Imboden, Paolo Quadrani
6
7 Copyright (c) BIC
8 All rights reserved. See Copyright.txt or
9
10
11 This software is distributed WITHOUT ANY WARRANTY; without even
12 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13 PURPOSE. See the above copyright notice for more information.
14
15=========================================================================*/
16#ifndef __albaLogicWithManagers_H__
17#define __albaLogicWithManagers_H__
18
19
20//----------------------------------------------------------------------------
21// includes :
22//----------------------------------------------------------------------------
23#include "albaGUIPanel.h"
24#include "albaDecl.h"
25#include "albaEvent.h"
26#include "albaVMEManager.h"
27#include "albaGUIMDIFrame.h"
28#include "albaSideBar.h"
29#include "albaAbsLogicManager.h"
30
31
32//----------------------------------------------------------------------------
33// forward reference
34//----------------------------------------------------------------------------
35class albaViewManager;
36class albaOpManager;
38class albaVME;
39class albaVMELandmark;
40class albaVMELandmarkCloud;
47class albaGUISettings;
48class albaUser;
50class albaWizard;
51class albaGUITimeBar;
52class albaWXLog;
53class albaVTKLog;
56class albaHelpManager;
60
61typedef int(*eventfilterFunc)(wxEvent& event);
62
63//----------------------------------------------------------------------------
64// albaLogicWithManagers :
65//----------------------------------------------------------------------------
113class ALBA_EXPORT albaLogicWithManagers : public albaObserver, public albaAbsLogicManager
114{
115public:
116
119
121 virtual void OnEvent(albaEventBase *alba_event);
122
124 virtual void Plug(albaView* view, bool visibleInMenu = true);
125
126
129 virtual void Plug(albaOp *op, wxString menuPath = "", bool canUndo = true, albaGUISettings *setting = NULL);
130
134 virtual void Configure();
135
138
140 virtual void Init(int argc, char **argv);
141
143 void PlugVMEManager(bool b) { m_UseVMEManager = b; };
144
146 void PlugViewManager(bool b) { m_UseViewManager = b; };
147
149 void PlugOpManager(bool b) { m_UseOpManager = b; };
150
152 void PlugInteractionManger(bool b) { m_UseInteractionManager = b; }
153
155 void PlugWizardManager(bool b) { m_UseWizardManager = b; };
156
158 void PlugSnapshotManager(bool b) { m_UseSnapshotManager = b; };
159
160 /* Initialize Prosthesis DB Manager*/
161 void PlugProsthesisDBManager(albaString passPhrase = "");
162
164 virtual void Plug(albaWizard *wizard, wxString menuPath = "");
165
167 virtual void Show();
168
170 void FillMenus();
171
173 albaUser *GetUser() { return m_User; };
174
179
181 virtual void HandleException();
182
184 int AppEventFilter(wxEvent& event);
185
186
188 void ALBAExpertModeOn() { (*GetALBAExpertMode()) = true; };
189 void ALBAExpertModeOff() { (*GetALBAExpertMode()) = false; };
190 void SetALBAExpertMode(int value) { (*GetALBAExpertMode()) = value; };
191
193 void SetFileExtension(albaString &extension) { m_Extension = extension; };
194
196 virtual albaGUIMDIFrame *GetTopWin() { return m_Win; };
197
199 void PlugToolbar(bool plug) { m_PlugToolbar = plug; };
201 void PlugSidebar(bool plug) { m_PlugControlPanel = plug; };
203 void PlugTimebar(bool plug) { m_PlugTimebar = plug; };
205 void PlugLogbar(bool plug) { m_PlugLogPanel = plug; };
206
207
210 virtual void ShowSplashScreen(wxBitmap &splashImage, wxString message ="", int pos=2, wxColour color = *wxBLACK);
211
212 static void ShowWebSite(wxString url);
213
215 bool IsOperationRunning() { return m_RunningOperation; }
216
217 // VME
218 virtual const char* GetMsfFileExtension() { return m_Extension.GetCStr(); }
219
220 /* Return the Operation Manager */
221 virtual albaOpManager * GetOpManager() const { return m_OpManager; }
222
223 virtual albaViewManager *GetViewManager() { return m_ViewManager; }
224
225 virtual void PrintImage(albaVMEImage *img);
226
227 eventfilterFunc GetEventFilterFunc() const { return m_EventFilterFunc; }
228
229 void SetEventFilterFunc(eventfilterFunc val) { m_EventFilterFunc = val;}
230
232 mmaApplicationLayout* GetLayout() { return m_AppLayout; };
233
234 // Inherited via albaAbsLogicManager
236
239
242
244 albaString GetAboutImage() const { return m_AboutImage; }
245
247 void SetAboutImage(albaString aboutImage) { m_AboutImage = aboutImage; }
248
250 virtual bool IsVMEExpanded(albaVME *vme);
251
253 virtual void CollapseVME(albaVME *vme);
254
256 virtual void ExpandVME(albaVME *vme);
257
258
260 virtual const char* GetAppBuildNum();
262 virtual void SetAppBuildNum(char* buildNum);
264 virtual const char* GetAlbaBuildNum();
266 virtual void SetAlbaBuildNum(char* buildNum);
268 const char *GetCitationPaper() { return m_CitationPaper.GetCStr(); }
270 void SetCitationPaper(char *link) { m_CitationPaper = link; }
271
272 void RegisterForKeyEvents(albaObserver *listener) override;
273
274
275 void UnRegisterForKeyEvents(albaObserver *listener) override;
276
277protected:
278 //---------------------------------------------------------
279 // Description:
280 // Method to update the time bounds when
281 // the tree representation change by adding or deleting a vme.
282 virtual void UpdateTimeBounds();
283
284 // Description:
285 // Set the time to update the time bar.
286 virtual void TimeSet(double t);
287 //---------------------------------------------------------
288
290 virtual void CreateMenu();
292 virtual void CreateStorage(albaEvent *e);
293
295 virtual void CreateAndPlugToolbar();
296
298 virtual void CreateToolbar();
299
301 virtual void CreateControlPanel();
303 virtual void CreateTimeBar();
305 virtual void CreateLogPanel();
308
309
311 void EnableItem(int item, bool enable);
312
315
317 virtual void RestoreLayout();
318
319 // EVENT HANDLERS
320
322 virtual void OnFileNew();
326 virtual void OnFileOpen(const char *file_to_open = NULL);
328 virtual void OnFileHistory(int menuId);
330 virtual void OnFileSave();
332 virtual void OnFileSaveAs();
334 virtual void OnQuit();
335
338 virtual void ImportExternalFile(albaString &filename);
339
341 virtual void VmeSelect(albaVME *vme);
343 virtual void VmeSelected(albaVME *vme);
344
346 void SelectLandmark(albaVMELandmark *lm, bool select);
347
349 virtual void VmeDoubleClicked(albaEvent &e);
351 virtual void VmeShow(albaVME *vme, bool visibility);
352
354 void ShowLandmarkCloud(albaVMELandmarkCloud * lmc, bool visibility);
355
357 void ShowInSideBar(albaVME * vme, bool visibility);
358
359 /* Called from VmeShow to show landmarks*/
360 void ShowLandmark(albaVMELandmark * lm, bool visibility);
361
363 virtual void VmeModified(albaVME *vme);
364
366 virtual void VmeAdd(albaVME *vme);
368 virtual void VmeAdded(albaVME *vme);
370 virtual void VmeRemove(albaVME *vme);
372 virtual void VmeRemoving(albaVME *vme);
374 virtual void VmeRemoved();
375
376 virtual void VmeVisualModeChanged(albaVME * vme);
377
379 virtual void VmeChooseMaterial(albaVME *vme, bool updateProperty);
380
381 //Update Vme Visual Properties
382 virtual void VmeUpdateProperties(albaVME *vme, bool updatePropertyFromTag);
383
385 virtual void OpRunStarting();
387 virtual void OpRunTerminated(int runOk);
389 virtual void OpShowGui(bool push_gui, albaGUIPanel *panel);
391 virtual void OpHideGui(bool view_closed);
392
395
397 virtual void ViewContextualMenu(bool vme_menu);
398
400 virtual void ViewCreate(int viewId);
402 virtual void ViewCreated(albaView *v);
404 virtual void ViewSelect();
405
406 virtual void CameraUpdate();
407
408 virtual void CameraReset();
409
412
415
418
420 virtual void EnableMenuAndToolbar();
421
423 virtual void UpdateFrameTitle();
424
425 //-------------------
426
427
430
432 virtual void WizardRunStarting();
433
435 virtual void WizardRunTerminated();
436
438 virtual void CreateWizardToolbar();
439
440
441
449 albaVMELandmark *m_SelectedLandmark;
451
452
455
457
459
463 wxMenu *m_OpMenu;
464 wxMenu *m_ViewMenu;
465
472
474
477
482
484
490 wxStaticText* m_WizardLabel;
494
497 wxToolBar *m_ToolBar;
498 wxMenuBar *m_MenuBar;
501 wxString m_AppTitle;
503
507
509
512
513 std::vector<albaObserver *> m_KeyEventListeners;
514
526};
527#endif
ALBA_EXPORT int * GetALBAExpertMode()
int(* eventfilterFunc)(wxEvent &event)
Implementation of the message object for the Subject/Observer design pattern.
Definition: albaEventBase.h:49
albaEvent - Class implementing ALBA application events.
Definition: albaEvent.h:55
class name: albaGUIAboutDialog.
Class Name: albaGUIApplicationSettings.
Class Name: albaGUIMDIFrame.
albaMaterialChooser let the user Choose one of the predefined materials, but also edit material setti...
class name: albaGUIPanel Inherits directly from wxPanel and adds the pointer to the next panel
Definition: albaGUIPanel.h:27
class name: albaGUISettingsDialog.
class name: albaGUISettingsTimeBar Gui class for handling time bar properties inside application sett...
class name: albaGUISettings base class for more complex specified classes regarding the setting of ap...
albaGUITimeBar is a wxPanel with a set of widget to handle time.
Class Name: albaHelpManager.
This class takes care of mastering the interaction inside views.
albaLogicWithManagers provide:
void PlugVMEManager(bool b)
Must be called before Configure.
virtual void Show()
Set the application stamp to the VMEManager and Shows the application.
void PlugToolbar(bool plug)
Sets the flag to know if Toolbar should be built.
virtual void OnFileHistory(int menuId)
FILE HISTORY evt.
virtual void VmeAdded(albaVME *vme)
Respond to a VME_ADDED evt.
void UpdateMeasureUnit()
Called when user change the measure unit from menù Options.
virtual void OnFileOpen(const char *file_to_open=NULL)
FILE OPEN evt.
void ALBAExpertModeOn()
Set ALBA Expert Mode.
virtual void SetAlbaBuildNum(char *buildNum)
Get Alba Build Number.
bool m_ShowInteractionSettings
Flag to show storage setting default is false.
virtual void WizardRunTerminated()
Called when an wizard stops.
void SelectLandmark(albaVMELandmark *lm, bool select)
Called from VmeSelect to select a LM.
virtual void DisableCameraUpdateSkip()
exit the Camera Update Skip Modality
albaProsthesesDBManager * m_ProsthesisDBManager
eventfilterFunc m_EventFilterFunc
albaGUIAboutDialog * m_AboutDialog
void RegisterForKeyEvents(albaObserver *listener) override
virtual void CreateToolbar()
This method creates the toolbar, override this method for specific app toolbars.
bool IsOperationRunning()
Returns true if there is a Running Operation.
virtual void OpRunTerminated(int runOk)
Called when an operation stops.
void SetApplicationStamp(albaString &app_stamp)
Set the application stamp for the application, if set to OPEN_ALL_DATA let's the application to open ...
virtual void VmeRemoving(albaVME *vme)
Respond to a VME_REMOVING evt.
void PlugWizardManager(bool b)
Must be called before Configure.
void CreateToolBarsAndPanels()
Creates menu and tool bars.
virtual void HandleException()
Manage application exception and allow to save at least the tree.
virtual void OpShowGui(bool push_gui, albaGUIPanel *panel)
Show the gui of the running operation or the settings of the selected view.
virtual const char * GetMsfFileExtension()
void PlugStandardOperations()
Plugs a list of standard operations, importer and exporters included.
virtual void OpRunStarting()
Called when an operation starts.
virtual void VmeRemoved()
called from VME after removing
virtual void CollapseVME(albaVME *vme)
Collapse the VME on the Tree.
virtual void ShowSplashScreen(wxBitmap &splashImage, wxString message="", int pos=2, wxColour color= *wxBLACK)
Used to give a splash screen image directly from the bitmap without converting it in xpm.
albaUser * GetUser()
Return the applications' user.
albaLogicWithManagers(albaGUIMDIFrame *mdiFrame=NULL)
void PlugSidebar(bool plug)
Sets the flag to know if Side bar should be built.
albaWizardManager * m_WizardManager
virtual void OnQuit()
Called on Quit event.
virtual void ImportExternalFile(albaString &filename)
Called when a user drag a non msf or zmsf file over the application.
virtual void WizardRunStarting()
Called when an wizard starts.
albaString GetAboutImage() const
Returns AboutImage.
virtual void CreateLogPanel()
Virtual method to create the log bar.
virtual void VmeSelected(albaVME *vme)
Respond to a VME_SELECTED evt.
virtual void ExpandVME(albaVME *vme)
Expand the VME on the Tree
virtual bool IsVMEExpanded(albaVME *vme)
Return True if the VME is Expanded on Tree.
virtual void OnFileSaveAs()
FILE SAVEAS evt.
std::vector< albaObserver * > m_KeyEventListeners
List of the observers that are registered to receive key events.
virtual const char * GetAppBuildNum()
Get the App Build Number.
void SetCitationPaper(char *link)
Set the link to the citation Paper.
mmaApplicationLayout * GetLayout()
Get application layout.
virtual void VmeChooseMaterial(albaVME *vme, bool updateProperty)
Build a dialog to show all available materials.
albaInteractionManager * m_InteractionManager
virtual void UpdateFrameTitle()
Called after FileOpen or Save operation.
virtual void Plug(albaView *view, bool visibleInMenu=true)
Plug a new view.
int AppEventFilter(wxEvent &event)
Manage application Events.
virtual void CameraUpdate()
void PlugProsthesisDBManager(albaString passPhrase="")
virtual void Init(int argc, char **argv)
Program Initialization.
void PlugViewManager(bool b)
Must be called before Configure.
void CreateNullLog()
Create a null logger.
virtual void CreateMenu()
Redefined to add View,Op,Import,Export menu.
virtual albaProsthesesDBManager * GetProsthesesDBManager()
virtual void Plug(albaWizard *wizard, wxString menuPath="")
Plug a new wizard.
virtual void VmeVisualModeChanged(albaVME *vme)
static void ShowWebSite(wxString url)
virtual void OnFileSave()
FILE SAVE evt.
void SetEventFilterFunc(eventfilterFunc val)
void ShowLandmark(albaVMELandmark *lm, bool visibility)
albaDeviceButtonsPadMouse * m_Mouse
mmaApplicationLayout * m_AppLayout
virtual void CreateAndPlugToolbar()
This method creates and add the Toolbar, for specific app toolbar override the CreateToolBar method.
bool m_PlugTimebar
Flag to plug or not the Time-bar into the application. Default is true.
virtual void PrintImage(albaVMEImage *img)
void PlugInteractionManger(bool b)
Must be called before Configure.
void SetALBAExpertMode(int value)
virtual const char * GetAlbaBuildNum()
Set Alba Build Number.
virtual void VmeUpdateProperties(albaVME *vme, bool updatePropertyFromTag)
virtual void TreeContextualMenu(albaEvent &e)
Show contextual menu for tree when right mouse click arrives.
virtual void Configure()
Configure the application.
virtual void VmeShow(albaVME *vme, bool visibility)
Show/Hide the vme.
void PlugTimebar(bool plug)
Sets the flag to know if Time bar should be built.
virtual void CreateWizardToolbar()
Redefined to add Print buttons.
virtual void CreateTimeBar()
Virtual method to create the time bar.
void EnableItem(int item, bool enable)
Enable/disable a Toolbar or Menu Item.
void PlugOpManager(bool b)
Must be called before Configure.
bool m_PlugToolbar
Flag to plug or not the Toolbar into the application. Default is true.
albaSnapshotManager * m_SnapshotManager
virtual albaOpManager * GetOpManager() const
virtual void TimeSet(double t)
virtual ~albaLogicWithManagers()
virtual void VmeDoubleClicked(albaEvent &e)
Respond to a VME_DCLICKED evt.
virtual void OnEvent(albaEventBase *alba_event)
Events management.
virtual void SetAppBuildNum(char *buildNum)
Set the App Build Number.
virtual void OnFileNew()
FILE NEW evt.
virtual void ViewContextualMenu(bool vme_menu)
Show contextual menu for views when right mouse click arrives.
albaUser * m_User
Applications' user.
virtual void EnableCameraUpdateSkip()
enter in Camera Update Skip Modality, useful to avoid flickering or incomplete visualizations
virtual void ViewCreate(int viewId)
Create a new view.
void PlugStandardViews()
Plugs a list of standard operations, importer and exporters included.
virtual albaGUIMDIFrame * GetTopWin()
Returns the pointer to the main panel of the application.
albaHelpManager * m_HelpManager
bool m_PlugLogPanel
Flag to plug or not the Log area into the application. Default is true.
bool m_PlugControlPanel
Flag to plug or not the Side-bar into the application. Default is true.
void ShowInSideBar(albaVME *vme, bool visibility)
Show VME in the side bar.
void StoreLayout()
Stores application layout.
virtual void ViewCreated(albaView *v)
A new View has Been Created - Logic must create the View Frame.
virtual void ConfigureWizardManager()
to be added
virtual void RestoreLayout()
Restores application layout.
albaGUISettingsTimeBar * m_TimeBarSettings
void PlugLogbar(bool plug)
Sets the flag to know if Log bar should be built.
void ShowLandmarkCloud(albaVMELandmarkCloud *lmc, bool visibility)
Called from VmeShow to show a LM cloud.
virtual void UpdateTimeBounds()
albaPrintManager * m_PrintSupport
eventfilterFunc GetEventFilterFunc() const
albaGUISettingsDialog * m_SettingsDialog
virtual void VmeSelect(albaVME *vme)
Respond to a VME_SELECT evt.
albaVMELandmark * m_SelectedLandmark
albaGUIApplicationSettings * m_ApplicationSettings
virtual void CreateStorage(albaEvent *e)
create a new storage object
virtual albaViewManager * GetViewManager()
long m_SidebarStyle
Store the style of the sidebar. Old style (ALBA 1.x): SINGLE_NOTEBOOK or new style (ALBA 2....
const char * GetCitationPaper()
Get the link to the citation Paper.
virtual void VmeAdd(albaVME *vme)
Add a new vme to the tree.
albaGUISplashScreen * m_SplashScreen
albaViewManager * m_ViewManager
virtual void CameraReset()
albaGUIMaterialChooser * m_MaterialChooser
virtual void VmeRemove(albaVME *vme)
Remove a vme from the tree.
void PlugSnapshotManager(bool b)
Must be called before Configure.
virtual void ViewSelect()
Select a view and update the display list for the tree.
virtual void CreateControlPanel()
Virtual method to create the side bar.
bool m_ShowStorageSettings
Flag to show storage setting default is false.
virtual void VmeModified(albaVME *vme)
Respond to a vme Modified evt.
void UnRegisterForKeyEvents(albaObserver *listener) override
virtual void OpHideGui(bool view_closed)
Hide the setting's gui when a view is destroyed.
bool m_Quitting
Variable that allows to determine if the application is Quitting or not.
void FillMenus()
Fill the View and operation menu's
virtual void EnableMenuAndToolbar()
Enable/Disable menu items when an operation start/end running.
virtual void Plug(albaOp *op, wxString menuPath="", bool canUndo=true, albaGUISettings *setting=NULL)
Plug a new operation and its undo flag: if the operation does not support undo the undo flag has no e...
bool m_PlugMenu
Flag to plug or not the Menu into the application. Default is true.
void SetFileExtension(albaString &extension)
Set the file extension.
void SetAboutImage(albaString aboutImage)
Sets AboutImage.
Interface implementing the Observer of the Subject/Observer design pattern.
Definition: albaObserver.h:36
Definition: albaOp.h:50
Class Name: albaProsthesesDBManager.
Class Name: albaSnapshotManager.
albaString - performs common string operations on c-strings.
Definition: albaString.h:43
albaUser - Used to manage username and password; store them and give basic function to check user's c...
Definition: albaUser.h:33
albaVMEManager : Class managing VMEs inside a ALBA application.
albaVME -
Definition: albaVME.h:150
An implementation of albaViewManager with [D]ynamic view [C]reation feature.
albaView is the base class for Views in alba.
Definition: albaView.h:79
Class Name: albaWizardManager.
Class Name: albaWizard.
Definition: albaWizard.h:46