Closed
Closed
@lbispham

Description

Description

I have form fields that are reused across multiple forms. I want to put them into a base class and have the individual forms inherit some of their fields from their parent class.

Steps to Reproduce

Simplified example:

public class GeneralSettings implements Serializable {

@Tab(title = "General Settings", index = 0)
@CheckBox(title = "Enabled")
private boolean enabled;

public boolean getEnabled() {
    return enabled;
}

}

public class MoreSettings extends GeneralSettings {

@Tab(title = "More Settings", index = 1)
private int maximum;

public int getMaximum() {
    return maximum;
}

}

To run:
UiForm uiForm = UiFormSchemaGenerator.get().generate(MoreSettings.class);

Expected behavior: [What you expect to happen]

I expect the schema to contain two properties and the form to contain two nodes: enabled and maximum

Actual behavior: [What actually happens]

The generated schema contains both fields, but the form contains only the field declared in MoreSettings, not the field declared in its parent.

Versions

1.0.0

Additional Information

I see a call to getDeclaredFields() inside UiFormSchemaGenerator.generate() so maybe this behavior is intentional. Please let me know.

Thanks!