Search in sources :

Example 1 with LeftNavigationItem

use of com.github.appreciated.app.layout.component.menu.left.items.LeftNavigationItem 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 LeftNavigationItem

use of com.github.appreciated.app.layout.component.menu.left.items.LeftNavigationItem in project vaadin-app-layout by appreciated.

the class LeftMenuComponentWrapper method add.

@Override
public void add(Component... components) {
    Arrays.stream(components).forEach(component -> {
        if (component instanceof LeftNavigationItem || component instanceof LeftClickableItem || component instanceof LeftSubmenu) {
            Div div = new Div(component);
            div.getStyle().set("padding", "0 var(--app-layout-space-s)").set("flex-shrink", "0").set("box-sizing", "border-box");
            div.setWidth("100%");
            menu.add(div);
        } else {
            component.getElement().getStyle().set("flex-shrink", "0");
            menu.add(component);
        }
    });
}
Also used : Div(com.vaadin.flow.component.html.Div) LeftNavigationItem(com.github.appreciated.app.layout.component.menu.left.items.LeftNavigationItem) LeftClickableItem(com.github.appreciated.app.layout.component.menu.left.items.LeftClickableItem)

Aggregations

LeftClickableItem (com.github.appreciated.app.layout.component.menu.left.items.LeftClickableItem)2 LeftNavigationItem (com.github.appreciated.app.layout.component.menu.left.items.LeftNavigationItem)2 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 LeftHeaderItem (com.github.appreciated.app.layout.component.menu.left.items.LeftHeaderItem)1