From 58335b163a4d354946f6f2c3fb793b893f0e152c Mon Sep 17 00:00:00 2001 From: Marcus Hellberg Date: Wed, 20 Mar 2024 16:17:06 -0700 Subject: [PATCH] Add example complex layout --- .../introduction/basics/ExampleLayout.java | 45 +++++++++++++++++++ .../introduction/basics/VaadinFlowBasics.java | 2 + 2 files changed, 47 insertions(+) create mode 100644 vaadin/src/main/java/com/baeldung/introduction/basics/ExampleLayout.java diff --git a/vaadin/src/main/java/com/baeldung/introduction/basics/ExampleLayout.java b/vaadin/src/main/java/com/baeldung/introduction/basics/ExampleLayout.java new file mode 100644 index 0000000000..6d6e2b2b7d --- /dev/null +++ b/vaadin/src/main/java/com/baeldung/introduction/basics/ExampleLayout.java @@ -0,0 +1,45 @@ +package com.baeldung.introduction.basics; + +import com.baeldung.data.Contact; +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.grid.Grid; +import com.vaadin.flow.component.orderedlayout.HorizontalLayout; +import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.component.splitlayout.SplitLayout; +import com.vaadin.flow.component.textfield.TextField; +import com.vaadin.flow.router.Route; + +import java.util.List; + +@Route("example-layout") +public class ExampleLayout extends SplitLayout { + + public ExampleLayout() { + var grid = new Grid<>(Contact.class); + grid.setColumns("name", "email", "phone"); + grid.setItems(List.of( + new Contact("John Doe", "john@doe.com", "123 456 789"), + new Contact("Jane Doe", "jane@doe.com", "987 654 321") + )); + + var form = new VerticalLayout(); + + var nameField = new TextField("Name"); + var emailField = new TextField("Email"); + var phoneField = new TextField("Phone"); + var saveButton = new Button("Save"); + var cancelButton = new Button("Cancel"); + + form.add( + nameField, + emailField, + phoneField, + new HorizontalLayout(saveButton, cancelButton) + ); + + setSizeFull(); + setSplitterPosition(70); + addToPrimary(grid); + addToSecondary(form); + } +} diff --git a/vaadin/src/main/java/com/baeldung/introduction/basics/VaadinFlowBasics.java b/vaadin/src/main/java/com/baeldung/introduction/basics/VaadinFlowBasics.java index cd028dcd1d..7a22eea0ab 100644 --- a/vaadin/src/main/java/com/baeldung/introduction/basics/VaadinFlowBasics.java +++ b/vaadin/src/main/java/com/baeldung/introduction/basics/VaadinFlowBasics.java @@ -45,6 +45,8 @@ public class VaadinFlowBasics extends VerticalLayout { ); add(nestedLayout); + add(new RouterLink("Example layout", ExampleLayout.class)); + // Use RouterLink to navigate to other views var link = new RouterLink("Hello world view", HelloWorldView.class); add(link);