classafFormBean::SkinCtx
sys::Obj afFormBean::SkinCtx
Passed to InputSkins
to provide all the information they need to render a form field.
- bean
Obj? bean { internal set }
The bean instance being rendered.
- beanInvalid
Bool beanInvalid()
Returns
true
if the bean is invalid; that is, if any field is in error.- errMsg
Str? errMsg
Convenience for FormField.errMsg.
The error message associated with this field.
Setting this to a non-null value invalidate the form field.
- field
const Field field
The corresponding bean field.
- fieldInvalid
Bool fieldInvalid
Convenience for FormField.invalid.
Returns
true
if the form field is invalid. Note that just because the field is invalid, it does not mean it has an error message.Setting this to
false
also clears anyerrMsg
.- fieldValue
Obj? fieldValue()
Returns the field value.
- formBean
FormBean formBean { internal set }
The containing
FormBean
instance.- formField
FormField formField { internal set }
The
FormField
being rendered.- label
Str label()
Returns the preferred display label associated with the field.
- msg
Str? msg(Str key, Obj? arg1 := null, Obj? arg2 := null, Obj? arg3 := null)
Convenience for FormField.msg.
Returns a message for the given field. Messages are looked up in the following order:
<bean>.<field>.<key>
<field>.<key>
<key>
And the following substitutions are made:
${label} -> formField.label
${value} -> formField.formValue
${arg1} -> arg1.toStr
${arg2} -> arg2.toStr
${arg3} -> arg3.toStr
The form value is substituted for
${value}
because it is intended for use by validation msgs.Returns
null
if a msg could not be found.- name
Str name()
Convenience for
field.name
. Safe for use as an ID / CSS class name.- renderAttributes
Str renderAttributes([Str:Str]? extraAttributes := null)
Returns a rendered string of common attributes to be placed in the
<input>
HTML tag. This includesid
,name
and any validation attributes defined on theHtmlInput
facet.Note the string does not contain the
type
orvalue
attributes as these are dependent on the input type.The given
extraAttributes
are merged in, with any values of the same name being separated with a space. This allows you to pass in extra css class names.attrs := skinCtx.renderAttributes(["autocomplete" : "off", "css" : "funkStyle"])
Note that empty string values are rendered as HTML5 empty attributes. e.g.
["disabled":""]
would be rendered as justdisabled
.- toClient
Converts the given value to a string using the preferred
ValueEncoder
.- value
Str value()
Returns the preferred string value to be rendered in the
<input>
.