Я новичок в vaadin. Мне нужно разработать PoC на vaadin. Сервисный слой уже написан с использованием Spring. В рамках Poc я должен разработать скрин ниже.
Когда запрос поступает в мой класс пользовательского интерфейса, он вызывает мой вид с помощью навигатора. Это представление состоит из одной вкладки, и каждая вкладка имеет свою собственную функциональность и также зависит от значений других вкладок. Первая вкладка — это вкладка поиска. Он отображает все записи, полученные из БД, в области содержимого вкладки (аддон Table/Grid. Я не знаю, что использовать). Каждая запись имеет доступ к двум другим вкладкам. На двух других вкладках есть поля для сопоставления свойств каждой записи. На данный момент я взял фиктивные данные для отображения.
Я написал мнение так. Но я запутался, правильный ли этот подход или нет.
@VaadinView(UserView.NAME)
public class UserView extends VerticalLayout implements View {
public static final String NAME = "user";
public UserView(){
// For Tabs
TabSheet tabs = new TabSheet();
// first tab component
VerticalLayout layout = new VerticalLayout();
// for search fields
HorizontalLayout searchArea = new HorizontalLayout();
FormLayout searchAreaName = new FormLayout();
TextField name = new TextField("name");
FormLayout searchAreaEmail = new FormLayout();
TextField email = new TextField("email");
searchAreaName.addComponent(name);
searchAreaEmail.addComponent(email);
searchArea.addComponent(searchAreaName);
searchArea.addComponent(searchAreaEmail);
// for search table
BeanContainer<String, test.User> users = new BeanContainer<String, User>(
User.class);
users.setBeanIdProperty("userId");
users.addBean(new User("sudheer", "[email protected]", "1"));
users.addBean(new User("sridhar", "[email protected]", "2"));
users.addBean(new User("ranga", "[email protected]", "3"));
Table table = new Table("", users);
table.setSizeFull();
table.setPageLength(6);
layout.addComponent(searchArea);
layout.addComponent(table);
Tab tabOne = tabs.addTab(layout, "User Search", null);
// second tab component
VerticalLayout userLayout = new VerticalLayout();
userLayout.addComponent(new TextField("user name"));
userLayout.addComponent(new TextField("email"));
tabs.addTab(userLayout, "main details", null);
// tab change event
addComponent(tabs);
tabs.setHeight("50%");
tabs.setWidth("50%");
setComponentAlignment(tabs, Alignment.MIDDLE_CENTER);
}
@Override
public void enter(ViewChangeEvent event) {
}
}
Я также не реализовал разбиение на страницы. Прежде чем двигаться вперед, я хотел бы узнать о других лучших подходах.
Любые предложения мне очень помогут. Заранее спасибо.
Кто-нибудь .. пожалуйста, помогите мне. Я иду вслепую со своим подходом