package Ġnet . dont dr ink and root . wicket . bootstrap . component . form . form group Ċ Ċ import Ġnet . dont dr ink and root . wicket . model . localize Ċ import Ġnet . dont dr ink and root . wicket . model . write able Property Ċ import Ġorg . apache . wicket . bean . validation . Property Validator Ċ import Ġorg . apache . wicket . behavior . Attribute Appender Ċ import Ġorg . apache . wicket . markup . html . HTML 5 Attributes Ċ import Ġorg . apache . wicket . markup . html . form . TextArea Ċ import Ġorg . apache . wicket . markup . repe ater . Repe ating View Ċ import Ġorg . apache . wicket . model . I Model Ċ import Ġkotlin . reflect . K Mutable Property 1 Ċ Ċ /** Ċ Ġ* Ġ@ param Ġ< T > ĠType Ġof Ġthe Ġmodel Ġobject . Ċ Ġ*/ Ċ class ĠFormGroup TextArea < T >( id : ĠString , Ġmodel : ĠI Model < T >, Ġlabel Model : ĠI Model < String >) Ġ: ĊĠĠĠ ĠFormGroup Form Component < T , ĠT , ĠText Area < T >>( id , Ġmodel , Ġlabel Model ) Ġ{ ĊĊĠĠĠ Ġval Ġrows Ġ= Ġ 5 ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Form Component ( id : ĠString ): ĠText Area < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Area Ġ= ĠText Area ( id , Ġmodel ) ĊĠĠĠĠĠĠĠ Ġtext Area . add ( Attribute Appender (" rows ") Ġ{ Ġrows Ġ}) ĊĠĠĠĠĠĠĠ Ġtext Area . add ( HTML 5 Attributes ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġtext Area ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠP , ĠT Ġ: ĠString ?> ĠRe pe ating View . add TextArea ( ĊĠĠĠ Ġmodel : ĠI Model < P >, ĊĠĠĠ Ġproperty : ĠK Mutable Property 1 < P , ĠT >, ĊĠĠĠ Ġajax Validation : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġform Text : ĠString ? Ġ= Ġnull , Ċ ): ĠFormGroup TextArea < T > Ġ{ ĊĠĠĠ Ġval Ġresource Key Ġ= Ġ"${ P :: class . qualified Name }.${ property . name }" ĊĠĠĠ Ġval Ġform Group Ġ= ĊĠĠĠĠĠĠĠ ĠFormGroup TextArea ( new Child Id (), Ġmodel . write able Property ( property ), Ġlocal ize ( resource Key )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ajax Validation ) Ġadd Ajax Validation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġform Text ?. let Ġ{ Ġset Form Text ( form Text ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Validator ( Property Validator ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġadd ( form Group ) ĊĠĠĠ Ġreturn Ġform Group Ċ }