Вопрос. Когда вы устанавливаете видимость макета, он либо добавляется в дерево DOM, либо удаляется из него. Что vaadin делает с удаленной частью? Кэширует ли он его или создается заново, когда вы снова устанавливаете видимость? И если он воссоздается, все его подкомпоненты также повторно присоединяются?
Причина, по которой я спрашиваю, заключается в том, что, когда у меня был VerticalLayout с формой в нем, и форма, в которой он сам использовал приведенный ниже код, я не мог видеть свои текстовые поля, размер которых был установлен на 100%, когда я перешел из layout.setVisible(true) - > false -> и показать еще раз.
private Form getAttachedForm() {
return new Form(){
private static final long serialVersionUID = 1L;
@Override
protected void attachField(Object propertyId, Field field){
if(field instanceof TextField){
TextField tf = (TextField)field;
tf.setWidth("100%");
}else if(field instanceof DateField){
DateField df = (DateField)field;
df.setResolution(DateField.RESOLUTION_DAY);
df.setDateFormat("yyyy-MM-dd");
}
super.attachField(propertyId, field);
}
};
}