Class FieldHintBuilder<O,T>
EntityConfigBuilder.field(String)
inside a lambda passed to SectionBuilder.catalog/document/register.
Chain field-level setters; call field(String) to switch to another
field on the same entity. Anything not set falls through to the scanner default.
-
Method Summary
Modifier and TypeMethodDescriptionSwitch to configuring another field on the same entity.<V> FieldHintBuilder<O, Object> Continue with a compiler-checked field on the same entity.How this field's value is displayed in tables (list) and the detail surface.Optional help text for this field, surfaced in the UI as a hoverable?icon next to the field's label (on the edit form, list column header, and read-only detail view).Override this field's display label — the text shown next to the input on the edit form, in the list column header, and on the read-only detail view.order(int order) placeholder(String placeholder) Placeholder text shown in this field's empty input on the edit form.For aReffield: narrow the picker's options with a predicate over the ref's target entity, in the same smallfield op value AND …grammar a dashboard widget'sconfig("filter", …)uses.refOptions(Class<? extends RefOptionDecorator> decoratorType) Decorate this reference picker's options using the given application-provided Spring bean.refSecondary(String targetFieldName) For aReffield: show a secondary attribute of the picked record beneath its name in the ref picker, to disambiguate same-named records (e.g.<V> FieldHintBuilder<O, T> refSecondary(Field<T, V> targetField) Compiler-checked counterpart ofrefSecondary(String).For a reference column in a tabular section, disable values already selected in sibling rows.visibleInDetail(boolean v) visibleInForm(boolean v) visibleInList(boolean v) Override the control used to edit this field.
-
Method Details
-
order
-
group
-
width
-
widget
Override the control used to edit this field. Built-in hints include"switch"/"toggle"(boolean),"textarea","color"(a visual picker plus#RRGGBBinput),"geojson"(the geometry editor — draw points, paths, and areas, stored as GeoJSON), and the media widgets"image","avatar"(small round),"images"/"gallery"(several), and"file"(any type). The map widgets render on a theme-aware MapLibre basemap; the media widgets stream the chosen file toPOST /api/mediaand store only the returned reference URL, so a plain String attribute holds it — seesu.onno.ui.media. -
placeholder
Placeholder text shown in this field's empty input on the edit form. -
format
How this field's value is displayed in tables (list) and the detail surface. The hint is interpreted by value type:- Dates / date-times — a date pattern, e.g.
"dd-MM-yy","dd/MM/yyyy HH:mm"(uppercaseD/Yare accepted as day/year). - Numbers —
"integer","decimal","percent", an explicit ISO currency such as"currency:EUR", or a decimal pattern like"#,##0.00".
widget(String)for that). - Dates / date-times — a date pattern, e.g.
-
hint
Optional help text for this field, surfaced in the UI as a hoverable?icon next to the field's label (on the edit form, list column header, and read-only detail view). Keep it short — a sentence explaining what the field means or how to fill it in. Blank (default) shows no icon. -
label
Override this field's display label — the text shown next to the input on the edit form, in the list column header, and on the read-only detail view. Works for both custom attributes (overriding@Attribute(displayName=...)) and the built-in system columns (code/descriptionon catalogs;number/date/postedon documents), which otherwise have no DSL path to a label. The primary use is localization, e.g.f.field("code").label("Код")orf.field("posted").label("Статус").This is the form/detail counterpart to
ListSpec.label(String, String)(which only relabels the list header); aListSpec.label(...)on the same field still wins for the list column specifically. Blank/unset falls through to the descriptor's display name. -
hideInList
-
hideInForm
-
hideInDetail
-
visibleInList
-
visibleInForm
-
visibleInDetail
-
refSecondary
For aReffield: show a secondary attribute of the picked record beneath its name in the ref picker, to disambiguate same-named records (e.g. a customer's phone). Names a field on the ref's target entity; the data already rides along in the picker payload, so this only tells the client which extra value to render. No effect on a non-ref field.Independent of search: the typeahead already matches every text column of the target, so a record is findable by this attribute whether or not it's shown. See issue #184.
-
refSecondary
Compiler-checked counterpart ofrefSecondary(String). -
refFilter
For aReffield: narrow the picker's options with a predicate over the ref's target entity, in the same smallfield op value AND …grammar a dashboard widget'sconfig("filter", …)uses. A${field}placeholder substitutes the form's current value of another field, making pickers cascade:f.field("employee").refFilter("department = ${department}"); // header field → header field f.field("lines.book").refFilter("supplier = ${supplier}"); // line cell ← header fieldWhile a referenced field is still empty the filter is skipped (the picker shows everything); once it's set, options narrow and a later change clears the dependent field. Static predicates work too (no placeholder), e.g.
"active = true". Left-hand names are fields of the target entity; parsing is the injection-safeWidgetFilter(known-column allowlist, bound values), so an unknown name degrades to "no filter", never an error. No effect on a non-ref field. -
refOptions
Decorate this reference picker's options using the given application-provided Spring bean. The decorator receives live parent-form and tabular-row context and can add a status badge, disable an option, and explain a conflict. Resolution is batched across the current search page.f.field("participants.employee") .refOptions(EmployeeAvailability.class) .uniqueWithinSection(); -
uniqueWithinSection
For a reference column in a tabular section, disable values already selected in sibling rows. The current row's own value remains selectable. This is immediate UI guidance; domain validation remains the authoritative safeguard on write. -
field
Switch to configuring another field on the same entity. -
field
Continue with a compiler-checked field on the same entity.
-