Meta builder
Work in progress
Basics
FieldMetaBuilder
Example
Meta extends FieldMetaBuilder
@Service
@RequiredArgsConstructor
public class InputBasicMeta extends FieldMetaBuilder<InputBasicDTO> {
private final DocumentConfig configuration;
@Override
public void buildRowDependentMeta(RowDependentFieldsMeta<InputBasicDTO> fields, InnerBcDescription bcDescription,
Long id, Long parentId) {
fields.setEnabled(
InputBasicDTO_.customField
);
}
@Override
public void buildIndependentMeta(FieldsMeta<InputBasicDTO> fields, InnerBcDescription bcDescription, Long parentId) {
if (configuration.getForceActiveEnabled()) {
fields.setForceActive(InputBasicDTO_.customField);
}
}
}
AnySourceFieldMetaBuilder
Example
Meta extends AnySourceFieldMetaBuilder
@SuppressWarnings("EmptyMethod")
@Service
public class MyExampleMeta extends AnySourceFieldMetaBuilder<MyExampleDTO> {
@Override
public void buildRowDependentMeta(RowDependentFieldsMeta<MyExampleDTO> fields, BcDescription bc,
String id, String parentId) {
fields.setEnabled(MyExampleDTO_.customField);
}
@Override
public void buildIndependentMeta(FieldsMeta<MyExampleDTO> fields, BcDescription bcDescription,
String parentId) {
fields.enableFilter(MyExampleDTO_.customField);
fields.enableSort(MyExampleDTO_.customField);
}
}
To customize properties in interfaces, you can use the following options:
-
buildRowDependentMeta
-
buildIndependentMeta
Overall, customizing properties in interfaces allows you to tailor the user experience and provide more functionality and flexibility in your application.
buildRowDependentMeta
buildRowDependentMeta builds meta for one record. It is called with the record id, so the field properties can depend on the record data.
Use RowDependentFieldsMeta to set field properties, for example setEnabled, setRequired, setHidden.