Search in sources :

Example 1 with NotificationButton

use of com.github.appreciated.app.layout.addons.notification.component.NotificationButton 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)

Example 2 with NotificationButton

use of com.github.appreciated.app.layout.addons.notification.component.NotificationButton in project vaadin-app-layout by appreciated.

the class NotificationView method furtherConfiguration.

@Override
public void furtherConfiguration(AppLayoutBuilder builder) {
    DefaultNotificationHolder notificationHolder = new DefaultNotificationHolder(newStatus -> {
    /*Do something with it*/
    });
    NotificationButton<DefaultNotification> button = new NotificationButton<>(VaadinIcon.BELL, notificationHolder);
    button.getWrappedComponent().setId("it-test-notification-button");
    button.setId("it-test-notification-button-wrapper");
    notificationHolder.add(new DefaultNotification("Header 1", "Description 1"), new DefaultNotification("Header 2", "Description 2"), new DefaultNotification("Header 3", "Description 3"), new DefaultNotification("Header 4", "Description 4"), new DefaultNotification("Header 5", "Description 5"));
    getAppBar().add(button);
}
Also used : DefaultNotificationHolder(com.github.appreciated.app.layout.addons.notification.DefaultNotificationHolder) NotificationButton(com.github.appreciated.app.layout.addons.notification.component.NotificationButton) DefaultNotification(com.github.appreciated.app.layout.addons.notification.entity.DefaultNotification)

Aggregations

DefaultNotificationHolder (com.github.appreciated.app.layout.addons.notification.DefaultNotificationHolder)2 NotificationButton (com.github.appreciated.app.layout.addons.notification.component.NotificationButton)2 DefaultNotification (com.github.appreciated.app.layout.addons.notification.entity.DefaultNotification)2 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