Search in sources :

Example 1 with SearchButton

use of com.github.appreciated.app.layout.addons.search.SearchButton in project vaadin-app-layout by appreciated.

the class MainLayout method getLayoutConfiguration.

private AppLayout getLayoutConfiguration(Class<? extends AppLayout> variant) {
    this.variant = variant;
    dataProvider = new ListDataProvider<>(Arrays.asList(new TestSearchResult("Header1", "Description1"), new TestSearchResult("Header2", "Description2"), new TestSearchResult("Header3", "Description3"), new TestSearchResult("Header4", "Description4"), new TestSearchResult("Header5", "Description5"), new TestSearchResult("Header6", "Description6"), new TestSearchResult("Header7", "Description7"), new TestSearchResult("Header8", "Description8"), new TestSearchResult("Header9", "Description9"), new TestSearchResult("Header10", "Description10")));
    button = new SearchOverlayButtonBuilder<TestSearchResult, SerializablePredicate<TestSearchResult>>().withDataProvider(dataProvider).withQueryProvider(s -> new Query<>(testEntity -> !s.equals("") && testEntity.getHeader().startsWith(s))).withDataViewProvider(queryResult -> {
        RippleClickableCard card = new RippleClickableCard(new Item(queryResult.getHeader(), queryResult.getDescription()));
        card.setWidthFull();
        card.setBackground("var(--app-layout-bar-background-base-color)");
        return card;
    }).withQueryResultListener(testSearchResult -> Notification.show(testSearchResult.getHeader())).build();
    if (this.variant != TopLayouts.Top.class && this.variant != TopLayouts.TopLarge.class) {
        LeftNavigationItem home = new LeftNavigationItem("Home", VaadinIcon.HOME.create(), View1.class);
        LeftNavigationItem menu = new LeftNavigationItem("Menu", VaadinIcon.MENU.create(), View9.class);
        notificationHolder.bind(home.getBadge());
        badgeHolder.bind(menu.getBadge());
        AppLayout build = AppLayoutBuilder.get(this.variant).withTitle("App Layout").withIcon("/frontend/images/logo.png").withAppBar(AppBarBuilder.get().add(button, AppBarProfileButtonBuilder.get().withItem("Profile", event -> Notification.show("Profile clicked")).withItem("Profile", event -> Notification.show("Profile clicked")).withItem("Profile", event -> Notification.show("Profile clicked")).build(), AppBarImageProfileButtonBuilder.get("/frontend/images/logo.png").withItem("Profile", event -> Notification.show("Profile clicked")).withItem("Profile", event -> Notification.show("Profile clicked")).withItem("Profile", event -> Notification.show("Profile clicked")).build(), new SearchButton().withValueChangeListener(event -> Notification.show(event.getValue())), new NotificationButton<>(VaadinIcon.BELL, notificationHolder)).build()).withAppMenu(LeftAppMenuBuilder.get().addToSection(HEADER, new LeftHeaderItem("App-Layout", "Version 4.0.0", "/frontend/images/logo.png"), new LeftClickableItem("Set Behaviour HEADER", VaadinIcon.COG.create(), clickEvent -> openModeSelector(this.variant))).add(home, new LeftNavigationItem("Grid", VaadinIcon.TABLE.create(), GridTest.class), LeftSubMenuBuilder.get("My Submenu 1", VaadinIcon.PLUS.create()).add(LeftSubMenuBuilder.get("My Submenu 2", VaadinIcon.PLUS.create()).add(new LeftNavigationItem("Charts", VaadinIcon.SPLINE_CHART.create(), View2.class), new LeftNavigationItem("Contact", VaadinIcon.CONNECT.create(), View3.class), new LeftNavigationItem("More", VaadinIcon.COG.create(), View4.class)).build(), new LeftNavigationItem("Contact1", VaadinIcon.CONNECT.create(), View5.class), new LeftNavigationItem("More1", VaadinIcon.COG.create(), View6.class)).build(), new LeftSectionItem(), LeftSubMenuBuilder.get("My Submenu 3").add(new LeftNavigationItem("Contact2", VaadinIcon.CONNECT.create(), View7.class), new LeftNavigationItem("More2", VaadinIcon.COG.create(), View8.class)).build(), new LeftSectionItem("Test"), menu).addToSection(FOOTER, new LeftClickableItem("Set Behaviour FOOTER", VaadinIcon.COG.create(), clickEvent -> openModeSelector(this.variant))).build()).withUpNavigation().build();
        return build;
    } else {
        return AppLayoutBuilder.get(this.variant).withTitle("App Layout").withAppBar(AppBarBuilder.get().add(button, AppBarProfileButtonBuilder.get().withItem("Profile", event -> Notification.show("Profile clicked")).withItem("Profile", event -> Notification.show("Profile clicked")).withItem("Profile", event -> Notification.show("Profile clicked")).build(), new NotificationButton<>(VaadinIcon.BELL, notificationHolder)).build()).withAppMenu(TopAppMenuBuilder.get().add(new TopClickableItem("Set Behaviour 1", VaadinIcon.COG.create(), event -> openModeSelector(this.variant)), new TopNavigationItem("Home", VaadinIcon.HOME.create(), View1.class), new TopNavigationItem("Contact", VaadinIcon.SPLINE_CHART.create(), View2.class), new TopClickableItem("Set Behaviour 2", VaadinIcon.COG.create(), event -> openModeSelector(this.variant)), new TopNavigationItem("More", VaadinIcon.CONNECT.create(), View3.class)).build()).withUpNavigation().build();
    }
}
Also used : ListDataProvider(com.vaadin.flow.data.provider.ListDataProvider) LeftLayouts(com.github.appreciated.app.layout.component.applayout.LeftLayouts) Arrays(java.util.Arrays) SearchOverlayButton(com.github.appreciated.app.layout.addons.search.overlay.SearchOverlayButton) Priority(com.github.appreciated.app.layout.addons.notification.entity.Priority) SearchButton(com.github.appreciated.app.layout.addons.search.SearchButton) LeftSubMenuBuilder(com.github.appreciated.app.layout.component.menu.left.builder.LeftSubMenuBuilder) DefaultNotificationHolder(com.github.appreciated.app.layout.addons.notification.DefaultNotificationHolder) FOOTER(com.github.appreciated.app.layout.entity.Section.FOOTER) DefaultBadgeHolder(com.github.appreciated.app.layout.entity.DefaultBadgeHolder) AppBarProfileButtonBuilder(com.github.appreciated.app.layout.addons.profile.builder.AppBarProfileButtonBuilder) TopNavigationItem(com.github.appreciated.app.layout.component.menu.top.item.TopNavigationItem) RadioButtonGroup(com.vaadin.flow.component.radiobutton.RadioButtonGroup) TopLayouts(com.github.appreciated.app.layout.component.applayout.TopLayouts) Theme(com.vaadin.flow.theme.Theme) NotificationButton(com.github.appreciated.app.layout.addons.notification.component.NotificationButton) MEDIUM(com.github.appreciated.app.layout.addons.notification.entity.Priority.MEDIUM) LeftClickableItem(com.github.appreciated.app.layout.component.menu.left.items.LeftClickableItem) AppBarImageProfileButtonBuilder(com.github.appreciated.app.layout.addons.profile.builder.AppBarImageProfileButtonBuilder) AppLayout(com.github.appreciated.app.layout.component.applayout.AppLayout) Item(com.github.appreciated.card.content.Item) SerializablePredicate(com.vaadin.flow.function.SerializablePredicate) AppBarBuilder(com.github.appreciated.app.layout.component.appbar.AppBarBuilder) TopClickableItem(com.github.appreciated.app.layout.component.menu.top.item.TopClickableItem) Notification(com.vaadin.flow.component.notification.Notification) LeftNavigationItem(com.github.appreciated.app.layout.component.menu.left.items.LeftNavigationItem) SearchOverlayButtonBuilder(com.github.appreciated.app.layout.addons.search.overlay.SearchOverlayButtonBuilder) Query(com.vaadin.flow.data.provider.Query) AppLayoutBuilder(com.github.appreciated.app.layout.component.builder.AppLayoutBuilder) VerticalLayout(com.vaadin.flow.component.orderedlayout.VerticalLayout) AppLayoutRouterLayout(com.github.appreciated.app.layout.component.router.AppLayoutRouterLayout) VaadinIcon(com.vaadin.flow.component.icon.VaadinIcon) HEADER(com.github.appreciated.app.layout.entity.Section.HEADER) Lumo(com.vaadin.flow.theme.lumo.Lumo) Consumer(java.util.function.Consumer) LeftHeaderItem(com.github.appreciated.app.layout.component.menu.left.items.LeftHeaderItem) RippleClickableCard(com.github.appreciated.card.RippleClickableCard) LeftAppMenuBuilder(com.github.appreciated.app.layout.component.menu.left.builder.LeftAppMenuBuilder) TestSearchResult(com.github.appreciated.app.layout.navigation.TestSearchResult) TopAppMenuBuilder(com.github.appreciated.app.layout.component.menu.top.builder.TopAppMenuBuilder) TextRenderer(com.vaadin.flow.data.renderer.TextRenderer) Dialog(com.vaadin.flow.component.dialog.Dialog) Viewport(com.vaadin.flow.component.page.Viewport) DefaultNotification(com.github.appreciated.app.layout.addons.notification.entity.DefaultNotification) LeftSectionItem(com.github.appreciated.app.layout.component.menu.left.items.LeftSectionItem) Push(com.vaadin.flow.component.page.Push) SearchOverlayButtonBuilder(com.github.appreciated.app.layout.addons.search.overlay.SearchOverlayButtonBuilder) TopClickableItem(com.github.appreciated.app.layout.component.menu.top.item.TopClickableItem) TestSearchResult(com.github.appreciated.app.layout.navigation.TestSearchResult) NotificationButton(com.github.appreciated.app.layout.addons.notification.component.NotificationButton) LeftClickableItem(com.github.appreciated.app.layout.component.menu.left.items.LeftClickableItem) LeftSectionItem(com.github.appreciated.app.layout.component.menu.left.items.LeftSectionItem) TopNavigationItem(com.github.appreciated.app.layout.component.menu.top.item.TopNavigationItem) LeftClickableItem(com.github.appreciated.app.layout.component.menu.left.items.LeftClickableItem) Item(com.github.appreciated.card.content.Item) TopClickableItem(com.github.appreciated.app.layout.component.menu.top.item.TopClickableItem) LeftNavigationItem(com.github.appreciated.app.layout.component.menu.left.items.LeftNavigationItem) LeftHeaderItem(com.github.appreciated.app.layout.component.menu.left.items.LeftHeaderItem) LeftSectionItem(com.github.appreciated.app.layout.component.menu.left.items.LeftSectionItem) TopNavigationItem(com.github.appreciated.app.layout.component.menu.top.item.TopNavigationItem) RippleClickableCard(com.github.appreciated.card.RippleClickableCard) AppLayout(com.github.appreciated.app.layout.component.applayout.AppLayout) SearchButton(com.github.appreciated.app.layout.addons.search.SearchButton) LeftHeaderItem(com.github.appreciated.app.layout.component.menu.left.items.LeftHeaderItem) LeftNavigationItem(com.github.appreciated.app.layout.component.menu.left.items.LeftNavigationItem)

Aggregations

DefaultNotificationHolder (com.github.appreciated.app.layout.addons.notification.DefaultNotificationHolder)1 NotificationButton (com.github.appreciated.app.layout.addons.notification.component.NotificationButton)1 DefaultNotification (com.github.appreciated.app.layout.addons.notification.entity.DefaultNotification)1 Priority (com.github.appreciated.app.layout.addons.notification.entity.Priority)1 MEDIUM (com.github.appreciated.app.layout.addons.notification.entity.Priority.MEDIUM)1 AppBarImageProfileButtonBuilder (com.github.appreciated.app.layout.addons.profile.builder.AppBarImageProfileButtonBuilder)1 AppBarProfileButtonBuilder (com.github.appreciated.app.layout.addons.profile.builder.AppBarProfileButtonBuilder)1 SearchButton (com.github.appreciated.app.layout.addons.search.SearchButton)1 SearchOverlayButton (com.github.appreciated.app.layout.addons.search.overlay.SearchOverlayButton)1 SearchOverlayButtonBuilder (com.github.appreciated.app.layout.addons.search.overlay.SearchOverlayButtonBuilder)1 AppBarBuilder (com.github.appreciated.app.layout.component.appbar.AppBarBuilder)1 AppLayout (com.github.appreciated.app.layout.component.applayout.AppLayout)1 LeftLayouts (com.github.appreciated.app.layout.component.applayout.LeftLayouts)1 TopLayouts (com.github.appreciated.app.layout.component.applayout.TopLayouts)1 AppLayoutBuilder (com.github.appreciated.app.layout.component.builder.AppLayoutBuilder)1 LeftAppMenuBuilder (com.github.appreciated.app.layout.component.menu.left.builder.LeftAppMenuBuilder)1 LeftSubMenuBuilder (com.github.appreciated.app.layout.component.menu.left.builder.LeftSubMenuBuilder)1 LeftClickableItem (com.github.appreciated.app.layout.component.menu.left.items.LeftClickableItem)1 LeftHeaderItem (com.github.appreciated.app.layout.component.menu.left.items.LeftHeaderItem)1 LeftNavigationItem (com.github.appreciated.app.layout.component.menu.left.items.LeftNavigationItem)1