123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- package com.vaadin.tests.components.ui;
-
- import com.vaadin.server.ExternalResource;
- import com.vaadin.server.Page;
- import com.vaadin.server.UIClassSelectionEvent;
- import com.vaadin.server.UICreateEvent;
- import com.vaadin.server.UIProviderEvent;
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.shared.ui.ContentMode;
- import com.vaadin.tests.components.AbstractTestUIProvider;
- import com.vaadin.ui.Label;
- import com.vaadin.ui.Link;
- import com.vaadin.ui.UI;
- import com.vaadin.ui.VerticalLayout;
-
- public class LazyInitUIs extends AbstractTestUIProvider {
-
- // @EagerInit
- private static class EagerInitUI extends UI {
- @Override
- public void init(VaadinRequest request) {
- VerticalLayout layout = new VerticalLayout();
- layout.setMargin(true);
- setContent(layout);
-
- layout.addComponent(getRequestInfo("EagerInitUI", request));
- }
- }
-
- @Override
- public UI createInstance(UICreateEvent event) {
- return getUI(event);
- }
-
- @Override
- public Class<? extends UI> getUIClass(UIClassSelectionEvent event) {
- return getUI(event).getClass();
- }
-
- private UI getUI(UIProviderEvent event) {
- VaadinRequest request = event.getRequest();
- if (request.getParameter("lazyCreate") != null) {
- // UI created on second request
- UI uI = new UI() {
- @Override
- protected void init(VaadinRequest request) {
- VerticalLayout layout = new VerticalLayout();
- layout.setMargin(true);
- setContent(layout);
-
- layout.addComponent(
- getRequestInfo("LazyCreateUI", request));
- }
- };
- return uI;
- } else if (request.getParameter("eagerInit") != null) {
- // UI inited on first request
- return new EagerInitUI();
- } else {
- // The standard UI
- UI uI = new UI() {
- @Override
- protected void init(VaadinRequest request) {
- VerticalLayout layout = new VerticalLayout();
- layout.setMargin(true);
- setContent(layout);
-
- layout.addComponent(getRequestInfo("NormalUI", request));
-
- String location = getPage().getLocation().toString();
- Link lazyCreateLink = new Link("Open lazyCreate UI",
- new ExternalResource(location.replaceFirst(
- "(\\?|#|$).*", "?lazyCreate#lazyCreate")));
- lazyCreateLink.setTargetName("_blank");
- layout.addComponent(lazyCreateLink);
-
- Link lazyInitLink = new Link("Open eagerInit UI",
- new ExternalResource(location.replaceFirst(
- "(\\?|#|$).*", "?eagerInit#eagerInit")));
- lazyInitLink.setTargetName("_blank");
- layout.addComponent(lazyInitLink);
- }
- };
-
- return uI;
- }
- }
-
- public static Label getRequestInfo(String name, VaadinRequest request) {
- String info = name;
- info += "<br />pathInfo: " + request.getPathInfo();
- info += "<br />parameters: " + request.getParameterMap().keySet();
- info += "<br />uri fragment: "
- + Page.getCurrent().getLocation().getFragment();
- return new Label(info, ContentMode.HTML);
- }
-
- @Override
- protected String getTestDescription() {
- return "BrowserDetails should be available in Application.getUI if UIRequiresMoreInformation has been thrown and in UI.init if the UI has the @UIInitRequiresBrowserDetals annotation";
- }
-
- @Override
- protected Integer getTicketNumber() {
- return Integer.valueOf(7883); // + #7882 + #7884
- }
-
- }
|