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);
260protected:
261 //---------------------------------------------------------
262 // Description:
263 // Method to update the time bounds when
264 // the tree representation change by adding or deleting a vme.
265 virtual void UpdateTimeBounds();
266
267 // Description:
268 // Set the time to update the time bar.
269 virtual void TimeSet(double t);
270 //---------------------------------------------------------
271
273 virtual void CreateMenu();
275 virtual void CreateStorage(albaEvent *e);
276
278 virtual void CreateAndPlugToolbar();
279
281 virtual void CreateToolbar();
282
284 virtual void CreateControlPanel();
286 virtual void CreateTimeBar();
288 virtual void CreateLogPanel();
291
292
294 void EnableItem(int item, bool enable);
295
298
300 virtual void RestoreLayout();
301
302 // EVENT HANDLERS
303
305 virtual void OnFileNew();
309 virtual void OnFileOpen(const char *file_to_open = NULL);
311 virtual void OnFileHistory(int menuId);
313 virtual void OnFileSave();
315 virtual void OnFileSaveAs();
317 virtual void OnQuit();
318
321 virtual void ImportExternalFile(albaString &filename);
322
324 virtual void VmeSelect(albaVME *vme);
326 virtual void VmeSelected(albaVME *vme);
327
329 void SelectLandmark(albaVMELandmark *lm, bool select);
330
332 virtual void VmeDoubleClicked(albaEvent &e);
334 virtual void VmeShow(albaVME *vme, bool visibility);
335
337 void ShowLandmarkCloud(albaVMELandmarkCloud * lmc, bool visibility);
338
340 void ShowInSideBar(albaVME * vme, bool visibility);
341
342 /* Called from VmeShow to show landmarks*/
343 void ShowLandmark(albaVMELandmark * lm, bool visibility);
344
346 virtual void VmeModified(albaVME *vme);
347
349 virtual void VmeAdd(albaVME *vme);
351 virtual void VmeAdded(albaVME *vme);
353 virtual void VmeRemove(albaVME *vme);
355 virtual void VmeRemoving(albaVME *vme);
357 virtual void VmeRemoved();
358
359 virtual void VmeVisualModeChanged(albaVME * vme);
360
362 virtual void VmeChooseMaterial(albaVME *vme, bool updateProperty);
363
364 //Update Vme Visual Properties
365 virtual void VmeUpdateProperties(albaVME *vme, bool updatePropertyFromTag);
366
368 virtual void OpRunStarting();
370 virtual void OpRunTerminated(int runOk);
372 virtual void OpShowGui(bool push_gui, albaGUIPanel *panel);
374 virtual void OpHideGui(bool view_closed);
375
378
380 virtual void ViewContextualMenu(bool vme_menu);
381
383 virtual void ViewCreate(int viewId);
385 virtual void ViewCreated(albaView *v);
387 virtual void ViewSelect();
388
389 virtual void CameraUpdate();
390
391 virtual void CameraReset();
392
395
398
401
403 virtual void EnableMenuAndToolbar();
404
406 virtual void UpdateFrameTitle();
407
408 //-------------------
409
410
413
415 virtual void WizardRunStarting();
416
418 virtual void WizardRunTerminated();
419
421 virtual void CreateWizardToolbar();
422
423
424
432 albaVMELandmark *m_SelectedLandmark;
434
435
438
440
442
446 wxMenu *m_OpMenu;
447 wxMenu *m_ViewMenu;
448
455
457
460
463
465
471 wxStaticText* m_WizardLabel;
475
478 wxToolBar *m_ToolBar;
479 wxMenuBar *m_MenuBar;
482 wxString m_AppTitle;
484
488
490
493
505};
506#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.
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.
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 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 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