Вопросы по работе с экранами/представлениями в 2.0

Добрый день.

Решил познакомиться с версией 2.0 и реализовать небольшой тестовый проект в связи с чем у меня появилось несколько вопросов.
Немного описания:

  1. броуз-экран (ныне list-view) с переопределенным load-delegate, которые читают dto-сущности с помощью реста
  2. эдит-экран (ныне detail-view), который отображает подробную информацию о начитанных сущностях, но содержит несколько табов, которые лениво подгружают дополнительную информацию из реста

Возникшие вопросы в процессе разработки:

  1. Интерфейс теперь не имеет табов. Это новая концепция или в процессе развития платформы можно ожидать возвращения табов? Дабл-клик для открытия detail-view тоже перестал существовать в этой концепции?
  2. Открываю detail-view из list-view, нажимаю кнопку cancel, возвращаюсь в list-view, который уже пуст. Возможно ли вернуться в list-view, сохранив его состояние, т.е. загруженные данные (данные неперсистентные, начитанные из рест)?
  3. В detail-view (в ленивых табах) зачитаны связанные объекты того же класса, что и detail-view. Хочу открыть detail-view для другого связанного объекта. При этом в основной контейнер экрана перечитываются данные (т.е. результат вроде бы есть), но я остаюсь в том же табе и данные ранее зачитанные в другие контейнеры остаются в них (т.е. новый инстанс экрана не создается).
    При этом отсутствуют “хлебные крошки”, url не изменяется (поскольку данные неперсистентные), т.е. отсутствует понимание где мы находимся. Также как и отсутствует возможность вернуться к предыдущей сущности.

Допускаю, что я мог многое упустить, т.е. “не умею их готовить” :sweat_smile: Поэтому прошу помощи.

Добрый день.

На данный момент это новая концепция, обусловленная тем, как работает роутинг в Vaadin Flow. В Classic UI, платформа полностью управляет созданием экранов и роутингом, другими словами, сперва создается и показывается экран, а потом уже меняется URL браузера. Сейчас, в зависимости от URL, Vaadin создает соответствующий экран, мы можем только чуть чуть пост обработать его, чтобы кинуть наши события жизненного цикла.

Есть задача поддержать режим кладок, но пока что выглядит, что компромиссом будет отказ от роутинга. В любом случаю, исследование возможности мы произведем.

Он перестал существовать потому что второй клик сбрасывает выделение строки + это не очень удобно на мобильных устройствах, а т.к., в отличии от классики, Flow UI сразу дружелюбен к мобилкам, мы не можем про них забывать. Есть задача поддержать “быстрый” переход на экран редактирования, скорей всего без дабл клика.

К сожалению нет. Как, я писал выше, при изменении URL, т.е. при навигации, Vaadin создает экран заново. Для некоторых вещей, можно использовать URL Query Parameters, например так делает компонент пагинации (используя специальный фасет) или ComboBox выбора сущности в экране Entity Inspector (кастомный код). Но хранить так целый набор данных не получится.

Хлебных крошек сейчас нет, чтобы не давать пользователям надежду, что они работают так же как в классике, т.е. при возвращении на предыдущий экран мы получим то же состояние, что было и до перехода, но это сейчас не возможно (см. п.1), т.к. экран будет создан заново. Но задача на крошки есть.

Глеб

2 симпатии