У меня есть страница профиля, на которой можно редактировать имя + изображение профиля.
У меня есть основной макет (как и в базовом примере vaadin), который отображает эти два (классы Text, Image) на основе профиля пользователя. .
Когда на странице профиля (в профиле пользователя) вносятся изменения, как я могу запустить обновление в основном макете?
Я не делаю этого. нужны какие-либо события на основе компонентов, такие как щелчок, или источник событий, мне просто нужно указать классу MainLayout, чтобы он обновлялся на основе UserProfile.
Я пробовал события SpringBoot (они не работают) )
Я пробовал использовать события Vaadin на основе документации, но после прочтения больше не вижу связи с моей проблемой.
Код: MainLayout.java
private Footer createFooter() {
Footer layout = new Footer();
Optional maybeUser = authenticatedUserHolder.getProfileUser();
if (maybeUser.isPresent()) {
Models.UserProfile userProfile = maybeUser.get();
//this needs to update when the UserProfile changes in the other component
avatar = new Avatar(userProfile.getName());
Util.setImageFromProfile(userProfile, avatar);
...
MenuBar userMenu = new MenuBar();
//this needs to update too when the UserProfile changes
userNameText = new Text(userProfile.getName());
footerDiv.add(userNameText);
UserProfilePage.java
TextField name = new TextField("Your name");
name.setValue(profile.getName()!=null ? profile.getName() : "");
...
name.addBlurListener(e -> {
log.info("Name: {}", name.getValue());
profile.setName(name.getValue());
userService.update(profile);
// AND HERE I NEED TO DO SOMETHING? SO THAT THE MainLayout fields change, thank you
});
Подробнее здесь: https://stackoverflow.com/questions/779 ... -component