У меня есть представление в Vaadin 11, которое отображается по URL-адресу, например products/X
, где X
- это идентификатор продукта.
@Route(value = "products")
public class ProductView extends VerticalLayout implements HasUrlParameter<String> {
public ProductView() {
}
[...]
}
Я не могу отобразить какую-либо информацию на этой странице, не имея продукта, поэтому я добавляю все компоненты в метод setParameter
:
@Override
public void setParameter(final BeforeEvent beforeEvent,
final String param) {
final Product product = findProduct(param);
if (product == null) {
return;
}
final Text name = new Text(product.getName());
final Text interestRate = new Text(String.format("Ставка: %.2f",
product.getInterestRatePercentPerAnnum()));
final Text duration = new Text(String.format("Срок: %d - %d месяцев",
product.getDurationMonths().getStart(),
product.getDurationMonths().getEndInclusive()));
final Text provider = new Text(String.format("Организация: %s",
product.getProvider().getName()));
final Text description = new Text("<html>Hi there! <b>Bold</b> text</html>");
add(name);
add(interestRate);
add(duration);
add(description);
add(provider);
}
Но различные элементы данных отображаются в одной строке:
Это означает, что по какой-то причине VerticalLayout
размещает компоненты горизонтально.
Как я могу это исправить (убедитесь, что каждый добавленный компонент отображается в отдельной строке)?