Компоненты, добавленные в отключенный div, не все наследуют отключенный атрибут.
Для части нашего пользовательского интерфейса основной элемент div отключен, а затем добавляются дополнительные компоненты на основе загруженных данных. Однако, если основной элемент div отключен перед добавлением дополнительных компонентов, то только некоторые из добавленных дополнительных компонентов имеют установленный атрибут disabled.
Пробовали Vaadin 23.0.10 и 23.1.0rc1 с Java 17.
Пример кода:
VerticalLayout vlMain = new VerticalLayout();
vlMain.setSizeFull();
HorizontalLayout hlOne = new HorizontalLayout(FontAwesome.Solid.BUG.create(), new Button("Testing"));
HorizontalLayout hlTwo = new HorizontalLayout();
hlOne.setEnabled(false);
hlTwo.setEnabled(false);
Button add = new Button("Add");
add.addClickListener(buttonClickEvent -> {
if(buttonClickEvent.isFromClient())
{
hlTwo.add(FontAwesome.Solid.BUG.create());
hlTwo.add(new Button("Testing"));
}
});
vlMain.add(hlOne, hlTwo, add);
Когда вышеописанное выполняется, hlOne содержит 2 отключенных элемента управления. При нажатии на кнопку добавляются дополнительные компоненты, однако значок не наследует отключенный атрибут, а кнопка. Вызов hlTwo.setEnabled(false) снова устанавливает все правильно. Это можно проверить с помощью инспектора браузера.
Хотя есть обходной путь, было бы неплохо знать, каким должно быть ожидаемое поведение.
Спасибо.