Directory

Enhanced Window Opener - Vaadin Add-on Directory

Enhanced Window Opener Enhanced Window Opener - Vaadin Add-on Directory
Enhanced Window Opener is an extension of Vaadin BrowserWindowOpener that aims to simplify the opening of generated content in a new browser window or tab. There are a lot of post on Vaadin forum regarding the usage `BrowserWindowOpener` extension. The main problems encountered by people depends on a misunderstanding of how `BrowserWindowOpener` works; it does not open a window immediately when the target component is extended but instead it adds a client side click listener on target component, so its effects are available only after the connector has done its work. Usually problems comes from extending a component or setting the resource to open inside a server side listener (e.g. Button click listener) ```java Button button = new Button(); button.addClickListener( e -> { new BrowserWindowOpener(runtimeGeneratedResource()) .extend(button); }); ``` This leeds to two problems: 1. the window will not be opened after the click but only on the next click on the button 1. the second click on the button will open the window but, after that, it will also execute the server side listener extending the button once again and consequently adding another click listener on the client side; next time clicking the button will open two windows and so on The aim of this addon is to simplify opening window for runtime generated content and to avoid multiple window opening due to wrong usage of `BrowserWindowOpener`. ```java Button button = new Button("Click me"); new EnhancedBrowserWindowOpener() .clientSide(true) .withGeneratedContent("myFileName.txt", this::makeStreamSource) .doExtend(button); ``` See [project page](https://github.com/mcollovati/enhanced-window-opener) for further informations.