Skip to content

AutoNamedView

AutoNamedView<T> is the internal wrapper that AutoCrud<T> and FilteredAutoCrud<Filters,T> use to turn an entity into a fully functional CRUD screen. It implements Named, CrudEditorForm<String>, CrudCreationForm<String>, EditableFieldsProvider, and StateSupplier — everything a CRUD screen needs.

new AutoNamedView<>(entityClass, entity, repository)
Constructor parameterPurpose
entityClassDetermines which fields to render (allEditableFields())
entityThe object serialised as state and used for id() and name()
repositoryCalled by save() and create() to persist the entity

MethodBehaviour
id()Returns entity.id()
name()Returns entity.toString(), or Named.name() if the entity implements Named
state(httpRequest)Returns the entity object — serialised as the form’s initial field values
allEditableFields()Reflects over entityClass to find all editable fields
save(httpRequest)Deserialises the submitted form state back into T, calls repository.save()
create(httpRequest)Same as save(), returns the new entity’s id

When you interact with AutoNamedView directly

Section titled “When you interact with AutoNamedView directly”

You only need to construct an AutoNamedView when overriding buildNamedView() or buildCreationForm() in your AutoCrud / FilteredAutoCrud subclass to pre-populate fields or add custom view logic:

@Override
public AutoNamedView<Order> buildCreationForm(HttpRequest httpRequest) {
var order = new Order();
order.setDate(LocalDate.now());
order.setStatus(OrderStatus.DRAFT);
return new AutoNamedView<>(Order.class, order, repository());
}

For fully custom view/editor/creation form types (different DTOs per screen), use CrudAdapter directly and return objects implementing CrudEditorForm / CrudCreationForm — no AutoNamedView needed.