Skip to content

Meta builder

Work in progress

Basics

FieldMetaBuilder

Live Sample ·

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

Live Sample ·

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.

    @Override
    public void buildRowDependentMeta(RowDependentFieldsMeta<InputBasicDTO> fields, InnerBcDescription bcDescription,
                                      Long id, Long parentId) {
        fields.setEnabled(
                InputBasicDTO_.customField
        );
    }