Have you looked at what the OSC project does? It uses Vaadin, and uses the ViewProvider interface to provide view instances. These automatically have a detach listener added on creation so that they get correctly disposed when their parent container is closed.
See https://github.com/opensecuritycontroller/osc-core/blob/4441c96fe49e4b11ce6f380a440367912190a246/osc-ui/src/main/java/org/osc/core/broker/view/OSCViewProvider.java#L60-L67 <https://github.com/opensecuritycontroller/osc-core/blob/4441c96fe49e4b11ce6f380a440367912190a246/osc-ui/src/main/java/org/osc/core/broker/view/OSCViewProvider.java#L60-L67> for details. Tim > On 21 Aug 2018, at 09:56, Alain Picard via osgi-dev <[email protected]> > wrote: > > When using factory components, you get a ComponentInstance and you should > dispose once done. For services with prototype scope, you get > ComponentServiceObjects from which you need to ungetService after use. > > I have some cases where I am creating some UI Widgets and where I don't have > a well defined lifecycle that my class controls. It is expected to hand over > a widget and the widget will be "disposed" when necessary. The widget can add > actions when it is "disposed" or a listener can be added to watch for such > events with the UI framework. > > What is the best way to handle those and is either factory component or CSO > better that the other, in this case and others? I was thinking that I might > implement a factory for managed widgets that keeps a map of provided widgets > and registers for events of disposed widgets and cleans up at that time, but > feels like an added moving part. > > Alain > _______________________________________________ > OSGi Developer Mail List > [email protected] > https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________ OSGi Developer Mail List [email protected] https://mail.osgi.org/mailman/listinfo/osgi-dev
