The topmost component in any component hierarchy. There is one UI for every Vaadin instance in a browser window. A UI may either represent an entire browser window (or tab) or some part of a html page where a Vaadin application is embedded.
The UI is the server side entry point for various client side features that are not represented as components added to a layout, e.g notifications, sub windows, and executing javascript in the browser.
When a new UI instance is needed, typically because the user opens a URL in a browser window which points to e.g. {@link VaadinServlet}, all {@link UIProvider}s registered to the current {@link VaadinSession} arequeried for the UI class that should be used. The selection is by default based on the UI
init parameter from web.xml.
After a UI has been created by the application, it is initialized using {@link #init(VaadinRequest)}. This method is intended to be overridden by the developer to add components to the user interface and initialize non-component functionality. The component hierarchy must be initialized by passing a {@link Component} with the main layout or other content of the viewto {@link #setContent(Component)} or to the constructor of the UI.
@see #init(VaadinRequest)
@see UIProvider
@since 7.0