Medical Imaging Interaction Toolkit
2024.06.00
Medical Imaging Interaction Toolkit
|
This widget provides abstraction for the handling of MicroServices. More...
#include <QmitkServiceListWidget.h>
Classes | |
struct | ServiceListLink |
Internal structure used to link ServiceReferences to their QListWidgetItems. More... | |
Signals | |
void | ServiceRegistered (us::ServiceReferenceU) |
Emitted when a new Service matching the filter is being registered. More... | |
void | ServiceUnregistering (us::ServiceReferenceU) |
Emitted directly before a Service matching the filter is being unregistered. More... | |
void | ServiceModified (us::ServiceReferenceU) |
Emitted when a Service matching the filter changes it's properties, or when a service that formerly not matched the filter changed it's properties and now matches the filter. More... | |
void | ServiceModifiedEndMatch (us::ServiceReferenceU) |
Emitted when a Service matching the filter changes it's properties,. More... | |
void | ServiceSelectionChanged (us::ServiceReferenceU) |
Emitted if the user selects a Service from the list. More... | |
Public Member Functions | |
QmitkServiceListWidget (QWidget *p=nullptr, Qt::WindowFlags f1={}) | |
~QmitkServiceListWidget () override | |
void | SetAutomaticallySelectFirstEntry (bool automaticallySelectFirstEntry) |
Set if the first entry of the list should be selected automatically if no entry was selected before. More... | |
virtual void | CreateQtPartControl (QWidget *parent) |
This method is part of the widget an needs not to be called separately. More... | |
virtual void | CreateConnections () |
This method is part of the widget an needs not to be called separately. (Creation of the connections of main and control widget.) More... | |
bool | GetIsServiceSelected () |
Will return true, if a service is currently selected and false otherwise. More... | |
us::ServiceReferenceU | GetSelectedServiceReference () |
Returns the currently selected Service as a ServiceReference. More... | |
std::vector< us::ServiceReferenceU > | GetAllServiceReferences () |
template<class T > | |
std::vector< T * > | GetAllServices () |
Use this function to return the all listed services as a class directly. More... | |
template<class T > | |
T * | GetSelectedService () |
Use this function to return the currently selected service as a class directly. More... | |
template<class T > | |
void | Initialize (const std::string &namingProperty=static_cast< std::string >(""), const std::string &filter=static_cast< std::string >("")) |
Initializes the Widget with essential parameters. More... | |
template<class T > | |
T * | TranslateReference (const us::ServiceReferenceU &reference) |
Translates a serviceReference to a class of the given type. More... | |
void | OnServiceEvent (const us::ServiceEvent event) |
This Function listens to ServiceRegistry changes and updates the list of services accordingly. More... | |
Static Public Attributes | |
static const std::string | VIEW_ID |
Protected Slots | |
void | OnServiceSelectionChanged () |
Called, when the selection in the list of Services changes. More... | |
Protected Member Functions | |
void | InitPrivate (const std::string &namingProperty, const std::string &filter) |
Finishes initialization after Initialize has been called. More... | |
QListWidgetItem * | AddServiceToList (const us::ServiceReferenceU &serviceRef) |
Constructs a ListItem from the given service, displays it, and locally stores the service. More... | |
bool | RemoveServiceFromList (const us::ServiceReferenceU &serviceRef) |
Removes the given service from the list and cleans up. Returns true if successful, false if service was not found. More... | |
bool | ChangeServiceOnList (const us::ServiceReferenceU &serviceRef) |
Changes list entry of given service to match the changed service properties. More... | |
us::ServiceReferenceU | GetServiceForListItem (QListWidgetItem *item) |
Returns the serviceReference corresponding to the given ListEntry or an invalid one if none was found (will evaluate to false in bool expressions). More... | |
std::vector< us::ServiceReferenceU > | GetAllRegisteredServices () |
Returns a list of ServiceReferences matching the filter criteria by querying the service registry. More... | |
QString | CreateCaptionForService (const us::ServiceReferenceU &serviceRef) |
Gets string from the naming property of the service. More... | |
Protected Attributes | |
Ui::QmitkServiceListWidgetControls * | m_Controls |
member holding the UI elements of this widget More... | |
std::vector< ServiceListLink > | m_ListContent |
Contains a list of currently active services and their entires in the list. This is wiped with every ServiceRegistryEvent. More... | |
This widget provides abstraction for the handling of MicroServices.
Place one in your Plugin and set it to look for a certain interface. One can also specify a filter and / or a property to use for captioning of the services. It also offers functionality to signal ServiceEvents and to return the actual classes, so only a minimum of interaction with the MicroserviceInterface is required. To get started, just put it in your Plugin or Widget, call the Initialize Method and optionally connect it's signals. As QT limits templating possibilities, events only throw ServiceReferences. You can manually dereference them using TranslateServiceReference()
Definition at line 45 of file QmitkServiceListWidget.h.
QmitkServiceListWidget::QmitkServiceListWidget | ( | QWidget * | p = nullptr , |
Qt::WindowFlags | f1 = {} |
||
) |
|
override |
|
protected |
Constructs a ListItem from the given service, displays it, and locally stores the service.
|
protected |
Changes list entry of given service to match the changed service properties.
|
protected |
Gets string from the naming property of the service.
|
virtual |
This method is part of the widget an needs not to be called separately. (Creation of the connections of main and control widget.)
|
virtual |
This method is part of the widget an needs not to be called separately.
|
protected |
Returns a list of ServiceReferences matching the filter criteria by querying the service registry.
std::vector<us::ServiceReferenceU> QmitkServiceListWidget::GetAllServiceReferences | ( | ) |
|
inline |
Use this function to return the all listed services as a class directly.
Make sure you pass the appropriate type, or else this call will fail. Usually, you will pass the class itself, not the SmartPointer, but the function returns a pointer.
Definition at line 104 of file QmitkServiceListWidget.h.
bool QmitkServiceListWidget::GetIsServiceSelected | ( | ) |
Will return true, if a service is currently selected and false otherwise.
Call this before requesting service references to avoid invalid ServiceReferences.
|
inline |
Use this function to return the currently selected service as a class directly.
Make sure you pass the appropriate type, or else this call will fail. Usually, you will pass the class itself, not the SmartPointer, but the function returns a pointer. Example:
mitk::USDevice::Pointer device = GetSelectedService<mitk::USDevice>();
Definition at line 125 of file QmitkServiceListWidget.h.
us::ServiceReferenceU QmitkServiceListWidget::GetSelectedServiceReference | ( | ) |
Returns the currently selected Service as a ServiceReference.
If no Service is selected, the result will probably be a bad pointer. call GetIsServiceSelected() beforehand to avoid this
|
protected |
Returns the serviceReference corresponding to the given ListEntry or an invalid one if none was found (will evaluate to false in bool expressions).
|
inline |
Initializes the Widget with essential parameters.
The string filter is an LDAP parsable String, compare mitk::ModuleContext for examples on filtering. Pass class T to tell the widget which class it should filter for - only services of this class will be listed. NamingProperty is a property that will be used to caption the Items in the list. If no filter is supplied, all matching interfaces are shown. If no namingProperty is supplied, the interfaceName will be used to caption Items in the list. For example, this Initialization will filter for all USDevices that are set to active. The USDevice's model will be used to display it in the list:
std::string filter = "(&(" + us::ServiceConstants::OBJECTCLASS() + "=" + "org.mitk.services.UltrasoundDevice)(IsActive=true))"; m_Controls.m_ActiveVideoDevices->Initialize<mitk::USDevice>(mitk::USDevice::GetPropertyKeys().US_PROPKEY_NAME ,filter); *
Definition at line 151 of file QmitkServiceListWidget.h.
|
protected |
Finishes initialization after Initialize has been called.
This function assumes that m_Interface is set correctly (Which Initialize does).
void QmitkServiceListWidget::OnServiceEvent | ( | const us::ServiceEvent | event | ) |
This Function listens to ServiceRegistry changes and updates the list of services accordingly.
The user of this widget does not need to call this method, it is instead used to receive events from the module registry.
|
protectedslot |
Called, when the selection in the list of Services changes.
|
protected |
Removes the given service from the list and cleans up. Returns true if successful, false if service was not found.
|
signal |
Emitted when a Service matching the filter changes it's properties, or when a service that formerly not matched the filter changed it's properties and now matches the filter.
|
signal |
Emitted when a Service matching the filter changes it's properties,.
and the new properties make it fall trough the filter. This effectively means that the widget will not track the service anymore. Usually, the Service should still be useable though
|
signal |
Emitted when a new Service matching the filter is being registered.
Be careful if you use a filter: If a device does not match the filter when registering, but modifies it's properties later to match the filter, then the first signal you will see this device in will be ServiceModified.
|
signal |
Emitted if the user selects a Service from the list.
If no service is selected, an invalid serviceReference is returned. The user can easily check for this. if (serviceReference) will evaluate to false, if the reference is invalid and true if valid.
|
signal |
Emitted directly before a Service matching the filter is being unregistered.
void QmitkServiceListWidget::SetAutomaticallySelectFirstEntry | ( | bool | automaticallySelectFirstEntry | ) |
Set if the first entry of the list should be selected automatically if no entry was selected before.
|
inline |
Translates a serviceReference to a class of the given type.
Use this to translate the signal's parameters. To adhere to the MicroService contract, only ServiceReferences stemming from the same widget should be used as parameters for this method.
mitk::USDevice::Pointer device = TranslateReference<mitk::USDevice>(myDeviceReference);
Definition at line 167 of file QmitkServiceListWidget.h.
|
protected |
member holding the UI elements of this widget
Definition at line 229 of file QmitkServiceListWidget.h.
|
protected |
Contains a list of currently active services and their entires in the list. This is wiped with every ServiceRegistryEvent.
Definition at line 251 of file QmitkServiceListWidget.h.
|
static |
Definition at line 63 of file QmitkServiceListWidget.h.