class SessionPreviewImpl extends AbstractSessionViewer<S> implements SessionDiagramPreview<S>,
                   CommandRequestLifecycle {

    @PostConstruct
    public void init() {
        requestLifecycle.listen(() -> this);
    }

    @Inject @SuppressWarnings("unchecked") public  SessionPreviewImpl(final DefinitionUtils definitionUtils,
                              final GraphUtils graphUtils,
                              final ShapeManager shapeManager,
                              final TextPropertyProviderFactory textPropertyProviderFactory,
                              final MouseRequestLifecycle requestLifecycle,
                              final @Any ManagedInstance<WiresCanvas> canvases,
                              final @Any ManagedInstance<PreviewLienzoPanel> canvasPanels,
                              final @Any ManagedInstance<BaseCanvasHandler> canvasHandlers,
                              final @Any ManagedInstance<MediatorsControl<AbstractCanvas>> mediatorControls,
                              final @Any @SingleSelection ManagedInstance<SelectionControl<AbstractCanvasHandler, Element>> selectionControls,
                              final @Any ManagedInstance<CanvasCommandFactory> canvasCommandFactories,
                              final @Any ManagedInstance<CanvasCommandManager<AbstractCanvasHandler>> canvasCommandManagers,
                              final WidgetWrapperView view,
                              final StunnerPreferencesRegistries preferencesRegistries);

}