We are developing a new local selection concept that can be used inside the MITK plugins. It aims to replace the QmitkDataStorageComboBox, as the data storage combo box does not offer enough flexibility.
We decided to go with a “local selection“ concept, as this gives more control for the individual plugins and clearly separates the responsibilities of managing data nodes for visualization purposes and managing data nodes for algorithm processing.
We propose to create a BaseSelection widget, which could be used in a “select plugin node“ dialog, that pops up after clicking a button of a plugin. This widget could contain several tabs that provide different approaches to select nodes. This could go from a simple list, similar to the data manager view through a sorted patient view to a semantic relation matrix, which we offer for the BlackSwan-project. And each developer should be able to easily subclass and extend
/ modify an approach to customize the behavior for the current need.
This BaseSelection widget could offer different selection approaches by using the registered node-selectionservices. This would allow each module to add its custom node-selection-service to MITK. An interface has to define functions and variables that are needed for each node-selection-service. The BaseSelection widget just relies on the node-selection-service interface and puts each service into its own tab.