У меня есть представление, содержащее FormLayout
.
Я хочу, чтобы этот макет содержал 2 столбца: один с заголовками, а второй - с полями ввода.
Все мои поля помечены как обязательные, поэтому на всех заголовках справа есть маленький красный индикатор (а в полях ввода нет индикатора).
Моя проблема в том, что одним из моих входных данных является дата и время. Я должен отобразить эти 2 поля в одной строке с одним заголовком.
Я могу легко установить 2 компонента рядом с надписью, поместив их в горизонтальный макет и установив заголовок на макете. Но при этом требуемый индикатор устанавливается не на заголовке, а на каждом поле ввода.
FormLayout form = new FormLayout();
HorizontalLayout blocDateTime = new HorizontalLayout();
PopupDateField dateField = new PopupDateField();
TextField timeField = new TextField();
dateField.setRequired(true);
timeField.setRequired(true);
blocDateTime.addComponent(dateField);
blocDateTime.addComponent(timeField);
blocDateTime.setCaption("caption.dateTime");
form.addComponent(blocDateTime);
Вот изображение того, что я получаю (A), против того, что я хочу (B):
Я мог бы получить то, что хотел, установив пользовательский валидатор для этих полей, проверив, является ли их значение пустым, и установив стиль для заголовка, но мне интересно, есть ли более «стандартный» способ сделать это.