Medical Imaging Interaction Toolkit  2024.12.99-0da743f6
Medical Imaging Interaction Toolkit
mitk::DisplayActionEventHandler Class Reference

This class simplifies the process of adding an itkEventObject-itkCommand pair as an observer of a DisplayActionEventBroadcast instance. The 'SetObservableBroadcast'-function can be used to define the broadcast instance that should be observed. The 'ConnectDisplayActionEvent'-function can be used to add a an observer to the broadcast. Such an observer consists of a DisplayActionEvent (an itkEventObject) and a StdFunctionCommand (an itkCommand). The StdFunctionCommand is created inside the function by the given two std::functions. More...

#include <mitkDisplayActionEventHandler.h>

Inheritance diagram for mitk::DisplayActionEventHandler:
Collaboration diagram for mitk::DisplayActionEventHandler:

Public Types

using OberserverTagType = unsigned long
 

Public Member Functions

virtual ~DisplayActionEventHandler ()
 
void SetObservableBroadcast (DisplayActionEventBroadcast *observableBroadcast)
 Sets the display action event broadcast class that should be observed. This class receives events from the given broadcast class and triggers the "corresponding functions" to perform the custom actions. "Corresponding functions" are std::functions inside commands that observe the specific display action event. More...
 
OberserverTagType ConnectDisplayActionEvent (const DisplayActionEvent &displayActionEvent, const StdFunctionCommand::ActionFunction &actionFunction, const StdFunctionCommand::FilterFunction &filterFunction=[](const itk::EventObject &) { return true;})
 Uses the given std::functions to customize a command: The display action event is used to define on which event the command should react. The display action event broadcast class member is then observed by the newly created command. A tag for the command is returned and stored in a member vector. More...
 
void DisconnectObserver (OberserverTagType observerTag)
 Uses the given observer tag to remove the corresponding custom command as an observer of the observed display action event broadcast class. If the given tag is not contained in the member vector of observer tags, nothing happens. More...
 
const std::vector< OberserverTagType > & GetAllObserverTags ()
 
void InitActions ()
 This function can be used by sub-classes to initialize a set of pre-defined DisplayActionEventFunctions and connect them to the observable broadcast member. In order to customize a sub-class behavior this function calls the virtual function InitActionsImpl. All currently connected display action events will be removed as observer from the broadcast instance. More...
 

Protected Member Functions

virtual void InitActionsImpl ()
 Sub-classes need to implement this function to define a customized behavior for default action pre-definition. More...
 

Protected Attributes

WeakPointer< DisplayActionEventBroadcastm_ObservableBroadcast
 
std::vector< OberserverTagTypem_ObserverTags
 

Detailed Description

This class simplifies the process of adding an itkEventObject-itkCommand pair as an observer of a DisplayActionEventBroadcast instance. The 'SetObservableBroadcast'-function can be used to define the broadcast instance that should be observed. The 'ConnectDisplayActionEvent'-function can be used to add a an observer to the broadcast. Such an observer consists of a DisplayActionEvent (an itkEventObject) and a StdFunctionCommand (an itkCommand). The StdFunctionCommand is created inside the function by the given two std::functions.

Definition at line 33 of file mitkDisplayActionEventHandler.h.

Member Typedef Documentation

◆ OberserverTagType

Constructor & Destructor Documentation

◆ ~DisplayActionEventHandler()

virtual mitk::DisplayActionEventHandler::~DisplayActionEventHandler ( )
virtual

Member Function Documentation

◆ ConnectDisplayActionEvent()

OberserverTagType mitk::DisplayActionEventHandler::ConnectDisplayActionEvent ( const DisplayActionEvent displayActionEvent,
const StdFunctionCommand::ActionFunction actionFunction,
const StdFunctionCommand::FilterFunction filterFunction = [](const itk::EventObject &) { return true;} 
)

Uses the given std::functions to customize a command: The display action event is used to define on which event the command should react. The display action event broadcast class member is then observed by the newly created command. A tag for the command is returned and stored in a member vector.

Precondition
The class' observable (the display action event broadcast) has to be set to connect display events.
Exceptions
mitk::Exception,ifthe class' observable is null.
Parameters
displayActionEventThe 'DisplayActionEvent' on which the command should react.
actionFunctionA custom std::Function that will be executed if the command receives the correct event.
filterFunctionA custom std::Function that will be checked before the execution of the action function. If the filter function is not specified, a default filter always returning 'true' will be used.
Returns
A tag to identify, receive or remove the newly created 'StdFunctionCommand'.

◆ DisconnectObserver()

void mitk::DisplayActionEventHandler::DisconnectObserver ( OberserverTagType  observerTag)

Uses the given observer tag to remove the corresponding custom command as an observer of the observed display action event broadcast class. If the given tag is not contained in the member vector of observer tags, nothing happens.

Precondition
The class' observable (the display action event broadcast) has to be set to connect display events.
Exceptions
mitk::Exception,ifthe class' observable is null.
Parameters
observerTagThe tag to identify the 'StdFunctionCommand' observer.

◆ GetAllObserverTags()

const std::vector<OberserverTagType>& mitk::DisplayActionEventHandler::GetAllObserverTags ( )
inline

Definition at line 86 of file mitkDisplayActionEventHandler.h.

◆ InitActions()

void mitk::DisplayActionEventHandler::InitActions ( )

This function can be used by sub-classes to initialize a set of pre-defined DisplayActionEventFunctions and connect them to the observable broadcast member. In order to customize a sub-class behavior this function calls the virtual function InitActionsImpl. All currently connected display action events will be removed as observer from the broadcast instance.

Precondition
The class' observable (the display action event broadcast) has to be set.
Exceptions
mitk::Exception,ifthe class' observable is null.

◆ InitActionsImpl()

virtual void mitk::DisplayActionEventHandler::InitActionsImpl ( )
inlineprotectedvirtual

Sub-classes need to implement this function to define a customized behavior for default action pre-definition.

Reimplemented in mitk::DisplayActionEventHandlerStd, mitk::DisplayActionEventHandlerDesynchronized, and mitk::DisplayActionEventHandlerSynchronized.

Definition at line 106 of file mitkDisplayActionEventHandler.h.

◆ SetObservableBroadcast()

void mitk::DisplayActionEventHandler::SetObservableBroadcast ( DisplayActionEventBroadcast observableBroadcast)

Sets the display action event broadcast class that should be observed. This class receives events from the given broadcast class and triggers the "corresponding functions" to perform the custom actions. "Corresponding functions" are std::functions inside commands that observe the specific display action event.

Postcondition
If the same broadcast class was already set, nothing changed
If a different broadcast class was already set, the observing commands are removed as observer. Attention: All registered commands are removed from the list of observer.
Parameters
observableBroadcastThe 'DisplayActionEventBroadcast'-class that should be observed.

Member Data Documentation

◆ m_ObservableBroadcast

WeakPointer<DisplayActionEventBroadcast> mitk::DisplayActionEventHandler::m_ObservableBroadcast
protected

Definition at line 108 of file mitkDisplayActionEventHandler.h.

◆ m_ObserverTags

std::vector<OberserverTagType> mitk::DisplayActionEventHandler::m_ObserverTags
protected

Definition at line 109 of file mitkDisplayActionEventHandler.h.


The documentation for this class was generated from the following file: