#include <QmitkFunctionalityCoordinator.h>
A class which coordinates active QmitkFunctionalities, e.g. calling activated and hidden on them.
Definition at line 32 of file QmitkFunctionalityCoordinator.h.
QmitkFunctionalityCoordinator::QmitkFunctionalityCoordinator | ( | ) |
Add listener
Definition at line 24 of file QmitkFunctionalityCoordinator.cpp.
: m_StandaloneFuntionality(NULL) { }
QmitkFunctionalityCoordinator::~QmitkFunctionalityCoordinator | ( | ) | [virtual] |
void QmitkFunctionalityCoordinator::ActivateStandaloneFunctionality | ( | QmitkFunctionality * | functionality ) | [protected] |
Activates the standalone functionality
Definition at line 157 of file QmitkFunctionalityCoordinator.cpp.
References QmitkFunctionality::Activated(), DeactivateStandaloneFunctionality(), QmitkFunctionality::IsActivated(), QmitkFunctionality::IsExclusiveFunctionality(), m_StandaloneFuntionality, and QmitkFunctionality::SetActivated().
Referenced by PartActivated(), PartHidden(), and PartVisible().
{ if(functionality && !functionality->IsActivated() && functionality->IsExclusiveFunctionality()) { // deactivate old one if necessary this->DeactivateStandaloneFunctionality(m_StandaloneFuntionality); m_StandaloneFuntionality = functionality; // call activated on this functionality m_StandaloneFuntionality->SetActivated(true); m_StandaloneFuntionality->Activated(); } }
QmitkFunctionalityCoordinator::berryNewMacro | ( | QmitkFunctionalityCoordinator | ) |
QmitkFunctionalityCoordinator::berryObjectMacro | ( | QmitkFunctionalityCoordinator | ) |
void QmitkFunctionalityCoordinator::DeactivateStandaloneFunctionality | ( | QmitkFunctionality * | functionality ) | [protected] |
Deactivates the standalone functionality
Definition at line 171 of file QmitkFunctionalityCoordinator.cpp.
References QmitkFunctionality::Deactivated(), QmitkFunctionality::IsActivated(), and QmitkFunctionality::SetActivated().
Referenced by ActivateStandaloneFunctionality(), PartClosed(), and PartHidden().
{ if(functionality && functionality->IsActivated()) { functionality->SetActivated(false); functionality->Deactivated(); } }
berry::IPartListener::Events::Types QmitkFunctionalityCoordinator::GetPartEventTypes | ( | ) | const [virtual] |
Implements berry::IPartListener.
Definition at line 43 of file QmitkFunctionalityCoordinator.cpp.
References berry::IPartListener::Events::ACTIVATED, berry::IPartListener::Events::CLOSED, berry::IPartListener::Events::DEACTIVATED, berry::IPartListener::Events::HIDDEN, berry::IPartListener::Events::OPENED, and berry::IPartListener::Events::VISIBLE.
void QmitkFunctionalityCoordinator::PartActivated | ( | berry::IWorkbenchPartReference::Pointer | partRef ) | [virtual] |
Reimplemented from berry::IPartListener.
Definition at line 50 of file QmitkFunctionalityCoordinator.cpp.
References ActivateStandaloneFunctionality(), berry::SmartPointer< TObjectType >::Cast(), and berry::SmartPointer< TObjectType >::GetPointer().
{ // Check for QmitkFunctionality QmitkFunctionality::Pointer _QmitkFunctionality = partRef->GetPart(false).Cast<QmitkFunctionality>(); // change the active standalone functionality this->ActivateStandaloneFunctionality(_QmitkFunctionality.GetPointer()); }
void QmitkFunctionalityCoordinator::PartClosed | ( | berry::IWorkbenchPartReference::Pointer | partRef ) | [virtual] |
Reimplemented from berry::IPartListener.
Definition at line 86 of file QmitkFunctionalityCoordinator.cpp.
References berry::SmartPointer< TObjectType >::Cast(), DeactivateStandaloneFunctionality(), QmitkStdMultiWidgetEditor::EDITOR_ID, berry::SmartPointer< TObjectType >::GetPointer(), berry::SmartPointer< TObjectType >::IsNotNull(), m_Functionalities, and m_StandaloneFuntionality.
{ // check for multiwidget and inform views that it not available any more if ( partRef->GetId() == QmitkStdMultiWidgetEditor::EDITOR_ID ) { QmitkStdMultiWidgetEditor::Pointer stdMultiWidgetEditor = partRef->GetPart(false).Cast<QmitkStdMultiWidgetEditor>(); for (std::set<QmitkFunctionality*>::iterator it = m_Functionalities.begin() ; it != m_Functionalities.end(); it++) { (*it)->StdMultiWidgetClosed(*(stdMultiWidgetEditor->GetStdMultiWidget())); (*it)->StdMultiWidgetNotAvailable(); // deprecated call, provided for consistence } } else { // check for functionality QmitkFunctionality::Pointer _QmitkFunctionality = partRef->GetPart(false).Cast<QmitkFunctionality>(); if(_QmitkFunctionality.IsNotNull()) { // deactivate on close ( the standalone functionality may still be activated ) this->DeactivateStandaloneFunctionality(_QmitkFunctionality.GetPointer()); // and set pointer to 0 if(m_StandaloneFuntionality == _QmitkFunctionality.GetPointer()) m_StandaloneFuntionality = 0; m_Functionalities.erase(_QmitkFunctionality.GetPointer()); // remove as opened functionality // call PartClosed on the QmitkFunctionality _QmitkFunctionality->ClosePartProxy(); //m_VisibleStandaloneFunctionalities.erase(_QmitkFunctionality.GetPointer()); // remove if necessary (should be done before in PartHidden() } } }
void QmitkFunctionalityCoordinator::PartDeactivated | ( | berry::IWorkbenchPartReference::Pointer | ) | [virtual] |
Reimplemented from berry::IPartListener.
Definition at line 58 of file QmitkFunctionalityCoordinator.cpp.
{
// nothing to do here: see PartActivated()
}
void QmitkFunctionalityCoordinator::PartHidden | ( | berry::IWorkbenchPartReference::Pointer | partRef ) | [virtual] |
Reimplemented from berry::IPartListener.
Definition at line 121 of file QmitkFunctionalityCoordinator.cpp.
References ActivateStandaloneFunctionality(), berry::SmartPointer< TObjectType >::Cast(), DeactivateStandaloneFunctionality(), berry::SmartPointer< TObjectType >::GetPointer(), and m_VisibleStandaloneFunctionalities.
{ // Check for QmitkFunctionality QmitkFunctionality::Pointer _QmitkFunctionality = partRef->GetPart(false).Cast<QmitkFunctionality>(); if(_QmitkFunctionality != 0) { _QmitkFunctionality->SetVisible(false); _QmitkFunctionality->Hidden(); // try to deactivate on hide (if is activated) this->DeactivateStandaloneFunctionality(_QmitkFunctionality.GetPointer()); // tracking of Visible Standalone Functionalities m_VisibleStandaloneFunctionalities.erase(_QmitkFunctionality.GetPointer()); // activate Functionality if just one Standalone Functionality is visible (old one gets deactivated) if(m_VisibleStandaloneFunctionalities.size() == 1) this->ActivateStandaloneFunctionality(_QmitkFunctionality.GetPointer()); } }
void QmitkFunctionalityCoordinator::PartOpened | ( | berry::IWorkbenchPartReference::Pointer | partRef ) | [virtual] |
Reimplemented from berry::IPartListener.
Definition at line 63 of file QmitkFunctionalityCoordinator.cpp.
References berry::SmartPointer< TObjectType >::Cast(), QmitkStdMultiWidgetEditor::EDITOR_ID, berry::SmartPointer< TObjectType >::GetPointer(), berry::SmartPointer< TObjectType >::IsNotNull(), and m_Functionalities.
{ // check for multiwidget and inform views that it is available now if ( partRef->GetId() == QmitkStdMultiWidgetEditor::EDITOR_ID ) { for (std::set<QmitkFunctionality*>::iterator it = m_Functionalities.begin() ; it != m_Functionalities.end(); it++) { (*it)->StdMultiWidgetAvailable(*(partRef ->GetPart(false).Cast<QmitkStdMultiWidgetEditor>()->GetStdMultiWidget())); } } else { // Check for QmitkFunctionality QmitkFunctionality::Pointer _QmitkFunctionality = partRef->GetPart(false).Cast<QmitkFunctionality>(); if(_QmitkFunctionality.IsNotNull()) { m_Functionalities.insert(_QmitkFunctionality.GetPointer()); // save as opened functionality } } }
void QmitkFunctionalityCoordinator::PartVisible | ( | berry::IWorkbenchPartReference::Pointer | partRef ) | [virtual] |
Reimplemented from berry::IPartListener.
Definition at line 140 of file QmitkFunctionalityCoordinator.cpp.
References ActivateStandaloneFunctionality(), berry::SmartPointer< TObjectType >::Cast(), berry::SmartPointer< TObjectType >::GetPointer(), berry::SmartPointer< TObjectType >::IsNotNull(), and m_VisibleStandaloneFunctionalities.
{ // Check for QmitkFunctionality QmitkFunctionality::Pointer _QmitkFunctionality = partRef->GetPart(false).Cast<QmitkFunctionality>(); if(_QmitkFunctionality.IsNotNull()) { _QmitkFunctionality->SetVisible(true); _QmitkFunctionality->Visible(); // tracking of Visible Standalone Functionalities m_VisibleStandaloneFunctionalities.insert(_QmitkFunctionality.GetPointer()); // activate Functionality if just one Standalone Functionality is visible if(m_VisibleStandaloneFunctionalities.size() == 1) this->ActivateStandaloneFunctionality(_QmitkFunctionality.GetPointer()); } }
void QmitkFunctionalityCoordinator::SetWindow | ( | berry::IWorkbenchWindow::Pointer | window ) |
Sets the window to attach the part listener
Definition at line 29 of file QmitkFunctionalityCoordinator.cpp.
References berry::SmartPointer< TObjectType >::IsNotNull(), and m_Window.
{ m_Window = window; if(window.IsNotNull()) { window->GetWorkbench()->AddWindowListener(berry::IWindowListener::Pointer(this)); window->GetPartService()->AddPartListener(berry::IPartListener::Pointer(this)); } }
void QmitkFunctionalityCoordinator::WindowClosed | ( | berry::IWorkbenchWindow::Pointer | window ) | [virtual] |
Notifies this listener that the given window has been closed.
Reimplemented from berry::IWindowListener.
Definition at line 180 of file QmitkFunctionalityCoordinator.cpp.
References berry::SmartPointer< TObjectType >::IsNotNull().
{ if(window.IsNotNull()) { window->GetWorkbench()->RemoveWindowListener(berry::IWindowListener::Pointer(this)); window->GetPartService()->RemovePartListener(berry::IPartListener::Pointer(this)); } }
void QmitkFunctionalityCoordinator::WindowOpened | ( | berry::IWorkbenchWindow::Pointer | ) | [virtual] |
Notifies this listener that the given window has been opened.
Reimplemented from berry::IWindowListener.
Definition at line 189 of file QmitkFunctionalityCoordinator.cpp.
{ }
std::set<QmitkFunctionality*> QmitkFunctionalityCoordinator::m_Functionalities [protected] |
Saves all opened QmitkFunctionalities
Definition at line 109 of file QmitkFunctionalityCoordinator.h.
Referenced by PartClosed(), and PartOpened().
Saves the last QmitkFunctionality that added interactors
Definition at line 105 of file QmitkFunctionalityCoordinator.h.
Referenced by ActivateStandaloneFunctionality(), and PartClosed().
std::set<QmitkFunctionality*> QmitkFunctionalityCoordinator::m_VisibleStandaloneFunctionalities [protected] |
Saves all visible QmitkFunctionalities
Definition at line 113 of file QmitkFunctionalityCoordinator.h.
Referenced by PartHidden(), and PartVisible().
Saves the workbench window
Definition at line 101 of file QmitkFunctionalityCoordinator.h.
Referenced by SetWindow().