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
252protected:
253 //---------------------------------------------------------
254 // Description:
255 // Method to update the time bounds when
256 // the tree representation change by adding or deleting a vme.
257 virtual void UpdateTimeBounds();
258
259 // Description:
260 // Set the time to update the time bar.
261 virtual void TimeSet(double t);
262 //---------------------------------------------------------
263
265 virtual void CreateMenu();
267 virtual void CreateStorage(albaEvent *e);
268
270 virtual void CreateAndPlugToolbar();
271
273 virtual void CreateToolbar();
274
276 virtual void CreateControlPanel();
278 virtual void CreateTimeBar();
280 virtual void CreateLogPanel();
283
284
286 void EnableItem(int item, bool enable);
287
290
292 virtual void RestoreLayout();
293
294 // EVENT HANDLERS
295
297 virtual void OnFileNew();
301 virtual void OnFileOpen(const char *file_to_open = NULL);
303 virtual void OnFileHistory(int menuId);
305 virtual void OnFileSave();
307 virtual void OnFileSaveAs();
309 virtual void OnQuit();
310
313 virtual void ImportExternalFile(albaString &filename);
314
316 virtual void VmeSelect(albaVME *vme);
318 virtual void VmeSelected(albaVME *vme);
319
321 void SelectLandmark(albaVMELandmark *lm, bool select);
322
324 virtual void VmeDoubleClicked(albaEvent &e);
326 virtual void VmeShow(albaVME *vme, bool visibility);
327
329 void ShowLandmarkCloud(albaVMELandmarkCloud * lmc, bool visibility);
330
332 void ShowInSideBar(albaVME * vme, bool visibility);
333
334 /* Called from VmeShow to show landmarks*/
335 void ShowLandmark(albaVMELandmark * lm, bool visibility);
336
338 virtual void VmeModified(albaVME *vme);
339
341 virtual void VmeAdd(albaVME *vme);
343 virtual void VmeAdded(albaVME *vme);
345 virtual void VmeRemove(albaVME *vme);
347 virtual void VmeRemoving(albaVME *vme);
349 virtual void VmeRemoved();
350
351 virtual void VmeVisualModeChanged(albaVME * vme);
352
354 virtual void VmeChooseMaterial(albaVME *vme, bool updateProperty);
355
356 //Update Vme Visual Properties
357 virtual void VmeUpdateProperties(albaVME *vme, bool updatePropertyFromTag);
358
360 virtual void OpRunStarting();
362 virtual void OpRunTerminated(int runOk);
364 virtual void OpShowGui(bool push_gui, albaGUIPanel *panel);
366 virtual void OpHideGui(bool view_closed);
367
370
372 virtual void ViewContextualMenu(bool vme_menu);
373
375 virtual void ViewCreate(int viewId);
377 virtual void ViewCreated(albaView *v);
379 virtual void ViewSelect();
380
381 virtual void CameraUpdate();
382
383 virtual void CameraReset();
384
387
390
393
395 virtual void EnableMenuAndToolbar();
396
398 virtual void UpdateFrameTitle();
399
400 //-------------------
401
402
405
407 virtual void WizardRunStarting();
408
410 virtual void WizardRunTerminated();
411
413 virtual void CreateWizardToolbar();
414
415
416
424 albaVMELandmark *m_SelectedLandmark;
426
427
430
432
434
438 wxMenu *m_OpMenu;
439 wxMenu *m_ViewMenu;
440
447
449
452
455
457
463 wxStaticText* m_WizardLabel;
467
470 wxToolBar *m_ToolBar;
471 wxMenuBar *m_MenuBar;
474 wxString m_AppTitle;
476
480
482
485
497};
498#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
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 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