Jmix 2.3.3 plugin 2.3.3-233
Хотелось бы использовать собственный LocalizedTextField компонент в инлайн-едиторе
DataGridEditor<BuildingFloor> editor = dataGrid.getEditor();
editor.setColumnEditorComponent("description", context -> {
LocalizedTextField localizedTextField = new LocalizedTextField();
localizedTextField.setValueSource(context.getValueSourceProvider().getValueSource("description"));
localizedTextField.setWidthFull();
localizedTextField.setRequired(true);
localizedTextField.setStatusChangeHandler(((Consumer) context.getStatusHandler()));
return localizedTextField;
});
Но при выставлении значения возникает ошибка:
бин LocalizedConverter, используемый в компоненте не инициализирован, потому что не был вызван loader
localizedConverter is null
public class LocalizedTextField extends JmixValuePicker<String> {
private LocalizedConverter localizedConverter;
public void setLocalizedConverter(LocalizedConverter localizedConverter) {
this.localizedConverter = localizedConverter;
}
public class LocalizedTextFieldLoader extends ValuePickerLoader {
@Override
protected LocalizedTextField createComponent() {
LocalizedTextField localizedTextField = factory.create(LocalizedTextField.class);
localizedTextField.setLocalizedConverter(applicationContext.getBean(LocalizedConverter.class));
Можно ли как то вызвать loader в setColumnEditorComponent или другие способы решения?
Инициализация компонента очень обширная, не хотелось бы использовать весь код инициализации в текущем view.
При использовании компонента в xml проблем не возникает:
<app:localizedTextField id="titleField" property="title"/>