@SuppressWarnings("serial") @Tag(Tag.DIV) private static class WindowSizeReceiver extends Component { private final BiConsumer<Integer, Integer> callback; public WindowSizeReceiver(BiConsumer<Integer, Integer> callback) { super(); this.callback = callback; } @ClientCallable private void windowSize(int width, int height) { this.callback.accept(width, height); } }
private void injectClientSideElement(String tagName, String id, Field field) { Class<?> fieldType = field.getType(); Tag tag = fieldType.getAnnotation(Tag.class); if (tag != null && !tagName.equalsIgnoreCase(tag.value())) { String msg = String.format( "Class '%s' has field '%s' whose type '%s' is annotated with " + "tag '%s' but the element defined in the HTML " + "template with id '%s' has tag name '%s'", templateClass.getName(), field.getName(), fieldType.getName(), tag.value(), id, tagName); throw new IllegalStateException(msg); } attachExistingElementById(tagName, id, field); }
@Tag(Tag.DIV) private static class ResizeEventReceiver extends Component { private int windowResizeListenersSize; @ClientCallable private void windowResized(int width, int height) { if (windowResizeListenersSize != 0) { fireEvent(new ResizeEvent(this, width, height)); } } private Registration addListener(BrowserWindowResizeListener listener) { windowResizeListenersSize++; Registration registration = addListener(ResizeEvent.class, event -> listener .browserWindowResized(event.getApiEvent())); return new ResizeRegistration(this, registration); } private void listenerIsUnregistered() { windowResizeListenersSize--; if (windowResizeListenersSize == 0) { // remove JS listener getUI().get().getPage().executeJavaScript("$0.resizeRemove()", this); } } }
@Tag("vaadin-accordion-panel") public class AccordionPanel extends Details {
@Tag("vaadin-item") class VaadinItem<T> extends Component implements HasItemsAndComponents.ItemComponent<T>, HasComponents,
@Tag("nav") public class DemoNavigationBar extends HtmlContainer {
@Tag(Tag.DIV) public class FlexLayout extends Component implements FlexComponent<FlexLayout> {
@Tag("app-layout-left-responsive") @HtmlImport("frontend://com/github/appreciated/app-layout/left/left-responsive.html") class LeftResponsive extends AbstractLeftAppLayoutBase { @Override public String getStyleName() { return "left-responsive"; } }
@Tag("app-layout-left") @HtmlImport("frontend://com/github/appreciated/app-layout/left/left.html") class Left extends AbstractLeftAppLayoutBase { @Override public String getStyleName() { return "left"; } }
@Tag("app-layout-left-overlay") @HtmlImport("frontend://com/github/appreciated/app-layout/left/left-overlay.html") class LeftOverlay extends AbstractLeftAppLayoutBase { @Override public String getStyleName() { return "left-overlay"; } }
@Tag("app-layout-left-responsive-overlay") @HtmlImport("frontend://com/github/appreciated/app-layout/left/left-responsive-overlay.html") class LeftResponsiveOverlay extends AbstractLeftAppLayoutBase { @Override public String getStyleName() { return "left-responsive-overlay"; } }
@Tag("app-layout-left-responsive-overlay-no-app-bar") @HtmlImport("frontend://com/github/appreciated/app-layout/left/left-responsive-overlay-no-app-bar.html") class LeftResponsiveOverlayNoAppBar extends AbstractLeftAppLayoutBase { @Override public String getStyleName() { return "left-responsive-overlay-no-app-bar"; } }
@Tag("app-header") @HtmlImport("bower_components/app-layout/app-header/app-header.html") public class AppHeader extends Component implements HasSize, HasComponents { }
@HtmlImport("/components/CustomElement.html") @Tag("custom-element") public class CustomElement extends PolymerTemplate<TemplateModel> { }
@Tag("app-drawer-layout") @HtmlImport("bower_components/app-layout/app-drawer-layout/app-drawer-layout.html") public class AppDrawerLayout extends Component implements HasComponents { }
@Tag("app-drawer") @HtmlImport("bower_components/app-layout/app-drawer/app-drawer.html") public class AppDrawer extends Component implements HasSize, HasComponents { }
@Tag("app-header-layout") @HtmlImport("bower_components/app-layout/app-header-layout/app-header-layout.html") public class AppHeaderLayout extends Component implements HasComponents { }
@Tag("app-toolbar") @HtmlImport("bower_components/app-layout/app-toolbar/app-toolbar.html") public class AppToolbar extends Component implements HasSize, HasComponents { }
@Tag(Tag.A) public class RouterLink extends Component implements HasText, HasComponents, HasStyle, AfterNavigationObserver {
@Tag("child-template") @HtmlImport("ChildTemplate.html") public class ChildTemplate extends PolymerTemplate<TemplateModel> { @Component @VaadinSessionScope public static class BackendImpl implements Backend { @Override public String getMessage() { return "foo"; } } public interface Backend { String getMessage(); } @Autowired private Backend backend; @Override protected void onAttach(AttachEvent attachEvent) { getElement().setProperty("message", backend.getMessage()); } }