A concrete implementation of the proposed base widget, which serves as an API for different data storage viewer implementations, should be able to provide and receive its own data node selection to and from other data storage viewers, in order to communicate a workbench-wide data node selection.
Since a data storage viewer will be embedded in a workbench view (AbstractView), it can use the existing selection service to send and receive data node selections on the global selection bus.
However, in order to separate the responsibilities, we propose to create a connector-class, that allows to set a data storage viewer instance as a global selection provider / receiver. A plugin-developer is free to use this connector-class to extend a data storage viewer instance.
If the connector-class is used, the signal/slot mechanism of the base widget is employed to send/receive selections on the selection bus. If the connector-class is not used, the signal/slot mechanism works only locally inside its embedding workbench view.