Замена стандартных компонентов
Вы можете заменить стандартный компонент Flow UI, зарегистрировав новый компонент и используя replaceComponent().
Ниже показана полная настройка, которая заменяет TypedDatePicker во всём приложении
на его предварительно настроенную версию, где определённые атрибуты заданы заранее. При этом сохраняются стандартный XML-элемент datePicker и загрузчик.
Расширенный компонент datePicker:
public class ExtendedDatePicker<V extends Comparable> extends TypedDatePicker<V> {
public static final String FAST_INPUT_DATE_FORMAT = "ddMMyyyy";
@Override
protected void initComponent() {
super.initComponent();
getThemeNames().set("align-left", true);
getI18n().setDateFormats(
messages.getMessage("dateFormat"),
FAST_INPUT_DATE_FORMAT
);
}
}
Конфигурация регистрации:
@Configuration
public class ComponentRegistrationConfiguration {
@Bean
public ComponentRegistration datePicker() {
return ComponentRegistrationBuilder.create(ExtendedDatePicker.class)
.withComponentLoader("datePicker", DatePickerLoader.class)
.replaceComponent(TypedDatePicker.class)
.build();
}
}
Такой подход позволяет глобально настраивать поведение, сохраняя совместимость с существующими экранами и XML-дескрипторами.