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:
118
120 virtual void OnEvent(albaEventBase *alba_event);
121
123 virtual void Plug(albaView* view, bool visibleInMenu = true);
124
125
128 virtual void Plug(albaOp *op, wxString menuPath = "", bool canUndo = true, albaGUISettings *setting = NULL);
129
133 virtual void Configure();
134
137
139 virtual void Init(int argc, char **argv);
140
142 void PlugVMEManager(bool b) { m_UseVMEManager = b; };
143
145 void PlugViewManager(bool b) { m_UseViewManager = b; };
146
148 void PlugOpManager(bool b) { m_UseOpManager = b; };
149
151 void PlugInteractionManger(bool b) { m_UseInteractionManager = b; }
152
154 void PlugWizardManager(bool b) { m_UseWizardManager = b; };
155
157 void PlugSnapshotManager(bool b) { m_UseSnapshotManager = b; };
158
159 /* Initialize Prosthesis DB Manager*/
160 void PlugProsthesisDBManager(albaString passPhrase = "");
161
163 virtual void Plug(albaWizard *wizard, wxString menuPath = "");
164
166 virtual void Show();
167
169 void FillMenus();
170
172 albaUser *GetUser() { return m_User; };
173
178
180 virtual void HandleException();
181
183 int AppEventFilter(wxEvent& event);
184
185
187 void ALBAExpertModeOn() { (*GetALBAExpertMode()) = true; };
188 void ALBAExpertModeOff() { (*GetALBAExpertMode()) = false; };
189 void SetALBAExpertMode(int value) { (*GetALBAExpertMode()) = value; };
190
192 void SetFileExtension(albaString &extension) { m_Extension = extension; };
193
195 virtual albaGUIMDIFrame *GetTopWin() { return m_Win; };
196
198 void PlugToolbar(bool plug) { m_PlugToolbar = plug; };
200 void PlugSidebar(bool plug) { m_PlugControlPanel = plug; };
202 void PlugTimebar(bool plug) { m_PlugTimebar = plug; };
204 void PlugLogbar(bool plug) { m_PlugLogPanel = plug; };
205
209 virtual void ShowSplashScreen();
210
213 virtual void ShowSplashScreen(wxBitmap &splashImage, wxString message ="", int x = 0, int y = 0, wxColour color = *wxBLACK);
214
215 static void ShowWebSite(wxString url);
216
218 bool IsOperationRunning() { return m_RunningOperation; }
219
220 // VME
221 virtual const char* GetMsfFileExtension() { return m_Extension.GetCStr(); }
222
223 /* Return the Operation Manager */
224 virtual albaOpManager * GetOpManager() const { return m_OpManager; }
225
226 virtual albaViewManager *GetViewManager() { return m_ViewManager; }
227
228 virtual void PrintImage(albaVMEImage *img);
229
230 eventfilterFunc GetEventFilterFunc() const { return m_EventFilterFunc; }
231
232 void SetEventFilterFunc(eventfilterFunc val) { m_EventFilterFunc = val;}
233
235 mmaApplicationLayout* GetLayout() { return m_AppLayout; };
236
237 // Inherited via albaAbsLogicManager
239
242
245
247 albaString GetAboutImage() const { return m_AboutImage; }
248
250 void SetAboutImage(albaString aboutImage) { m_AboutImage = aboutImage; }
251
253 virtual bool IsVMEExpanded(albaVME *vme);
254
256 virtual void CollapseVME(albaVME *vme);
257
259 virtual void ExpandVME(albaVME *vme);
260
261
263 virtual const char* GetAppBuildNum();
265 virtual void SetAppBuildNum(char* buildNum);
267 virtual const char* GetAlbaBuildNum();
269 virtual void SetAlbaBuildNum(char* buildNum);
270
271protected:
272 //---------------------------------------------------------
273 // Description:
274 // Method to update the time bounds when
275 // the tree representation change by adding or deleting a vme.
276 virtual void UpdateTimeBounds();
277
278 // Description:
279 // Set the time to update the time bar.
280 virtual void TimeSet(double t);
281 //---------------------------------------------------------
282
284 virtual void CreateMenu();
286 virtual void CreateStorage(albaEvent *e);
287
289 virtual void CreateAndPlugToolbar();
290
292 virtual void CreateToolbar();
293
295 virtual void CreateControlPanel();
297 virtual void CreateTimeBar();
299 virtual void CreateLogPanel();
302
303
305 void EnableItem(int item, bool enable);
306
309
311 virtual void RestoreLayout();
312
313 // EVENT HANDLERS
314
316 virtual void OnFileNew();
320 virtual void OnFileOpen(const char *file_to_open = NULL);
322 virtual void OnFileHistory(int menuId);
324 virtual void OnFileSave();
326 virtual void OnFileSaveAs();
328 virtual void OnQuit();
329
332 virtual void ImportExternalFile(albaString &filename);
333
335 virtual void VmeSelect(albaVME *vme);
337 virtual void VmeSelected(albaVME *vme);
338
340 void SelectLandmark(albaVMELandmark *lm, bool select);
341
343 virtual void VmeDoubleClicked(albaEvent &e);
345 virtual void VmeShow(albaVME *vme, bool visibility);
346
348 void ShowLandmarkCloud(albaVMELandmarkCloud * lmc, bool visibility);
349
351 void ShowInSideBar(albaVME * vme, bool visibility);
352
353 /* Called from VmeShow to show landmarks*/
354 void ShowLandmark(albaVMELandmark * lm, bool visibility);
355
357 virtual void VmeModified(albaVME *vme);
358
360 virtual void VmeAdd(albaVME *vme);
362 virtual void VmeAdded(albaVME *vme);
364 virtual void VmeRemove(albaVME *vme);
366 virtual void VmeRemoving(albaVME *vme);
368 virtual void VmeRemoved();
369
370 virtual void VmeVisualModeChanged(albaVME * vme);
371
373 virtual void VmeChooseMaterial(albaVME *vme, bool updateProperty);
374
375 //Update Vme Visual Properties
376 virtual void VmeUpdateProperties(albaVME *vme, bool updatePropertyFromTag);
377
379 virtual void OpRunStarting();
381 virtual void OpRunTerminated(int runOk);
383 virtual void OpShowGui(bool push_gui, albaGUIPanel *panel);
385 virtual void OpHideGui(bool view_closed);
386
389
391 virtual void ViewContextualMenu(bool vme_menu);
392
394 virtual void ViewCreate(int viewId);
396 virtual void ViewCreated(albaView *v);
398 virtual void ViewSelect();
399
400 virtual void CameraUpdate();
401
402 virtual void CameraReset();
403
406
409
412
414 virtual void EnableMenuAndToolbar();
415
417 virtual void UpdateFrameTitle();
418
419 //-------------------
420
421
424
426 virtual void WizardRunStarting();
427
429 virtual void WizardRunTerminated();
430
432 virtual void CreateWizardToolbar();
433
434
435
443 albaVMELandmark *m_SelectedLandmark;
445
446
449
451
453
457 wxMenu *m_OpMenu;
458 wxMenu *m_ViewMenu;
459
466
468
471
475
477
483 wxStaticText* m_WizardLabel;
487
490 wxToolBar *m_ToolBar;
491 wxMenuBar *m_MenuBar;
494 wxString m_AppTitle;
496
500
502
505
517};
518#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 ShowSplashScreen(wxBitmap &splashImage, wxString message="", int x=0, int y=0, wxColour color= *wxBLACK)
Used to give a splash screen image directly from the bitmap without converting it in xpm.
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
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.
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.
virtual const char * GetAppBuildNum()
Get the App Build Number.
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 ShowSplashScreen()
Show the splash screen for the application.
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....
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.
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:51
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