Замена стандартных компонентов

Вы можете заменить стандартный компонент 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-дескрипторами.