About the MVP for Flow category

MVP for Flow: An addon that provides a predefined class structure to make the development of UIs using the Model-View-Presenter Pattern more comfortable under Vaadin flow.

View

public class TestView extends VerticalLayout {
    private final Button button1;
    private final Button button2;
    private final Button button3;
    private final Button button4;

    public TestView() {
        button1 = new Button();
        button2 = new Button();
        button3 = new Button();
        button4 = new Button();
        add(button1, button2, button3, button4);
    }
    //... getters and setters
}

Presenter

@Route("")
public class TestPresenter extends Presenter<TestModel, TestView> {

    public TestPresenter() {
        String[] descriptions = getModel().getDescriptions();
        getContent().getButton1().setText(descriptions[0]);
        getContent().getButton2().setText(descriptions[1]);
        getContent().getButton3().setText(descriptions[2]);
        getContent().getButton4().setText(descriptions[3]);
    }
}

Model

public class TestModel implements Model<TestModel> {
    public String[] getDescriptions() {
        return new String[]{"Button1", "Button2", "Button3", "Button4"};
    }
}