package Ġde . j ot be p unkt . black book . login Ċ Ċ import Ġcom . vaadin . data . Binder Ċ import Ġcom . vaadin . event . Shortcut Action Ċ import Ġcom . vaadin . navigator . View Ċ import Ġcom . vaadin . navigator . View ChangeListener Ċ import Ġcom . vaadin . spring . annotation . Spring View Ċ import Ġcom . vaadin . spring . annotation . UIS cope Ċ import Ġcom . vaadin . ui .* Ċ import Ġde . j ot be p unkt . black book . service . UserService Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Component Ċ Ċ @ UIS cope Ċ @ Spring View ( name Ġ= Ġ" login ") Ċ class ĠLogin View ( controller : ĠLogin Controller ) Ġ: ĠHorizontal Layout (), ĠView Ġ{ ĊĊĊĠĠĠ Ġval Ġname Ġ= ĠTextField (" name ") ĊĠĠĠ Ġval Ġpassword Ġ= ĠPassword Field (" password ") ĊĠĠĠ Ġval Ġlogin Button Ġ= ĠButton (" login ") ĊĊĠĠĠ Ġprivate Ġval Ġform Ġ= ĠForm Layout ( name , Ġpassword , Ġlogin Button ) ĊĊĠĠĠ Ġval Ġbinder Ġ= ĠB inder ( Login Model :: class . java ) ĊĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcontroller . view Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġbinder . bind ( name , ĠLogin Model :: username . name ) ĊĠĠĠĠĠĠĠ Ġbinder . bind ( password , ĠLogin Model :: password . name ) ĊĊĠĠĠĠĠĠĠ Ġlogin Button . add ClickListener Ġ{ Ġcontroller . do Login () Ġ} ĊĠĠĠĠĠĠĠ Ġlogin Button . set Click Shortcut ( Shortcut Action . KeyCode . ENTER ) ĊĠĠĠĠĠĠĠ Ġlogin Button . add Style Name (" default ") ĊĊĊĠĠĠĠĠĠĠ Ġval Ġsp acer 1 Ġ= ĠLabel () ĊĠĠĠĠĠĠĠ Ġval Ġsp acer 2 Ġ= ĠLabel () ĊĠĠĠĠĠĠĠ Ġadd Component ( spacer 1 ) ĊĠĠĠĠĠĠĠ Ġadd Component ( form ) ĊĠĠĠĠĠĠĠ Ġform . setWidth (" 2 7 0 px ") ĊĠĠĠĠĠĠĠ Ġadd Component ( spacer 2 ) ĊĊĠĠĠĠĠĠĠ Ġset Component Alignment ( form , ĠAlignment . MIDDLE _ CENTER ) ĊĠĠĠĠĠĠĠ Ġset Expand Ratio ( spacer 1 , Ġ 1 f ) ĊĠĠĠĠĠĠĠ Ġset Expand Ratio ( spacer 2 , Ġ 1 f ) ĊĊĠĠĠĠĠĠĠ Ġset Size Full () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġenter ( event : ĠView ChangeListener . View ChangeEvent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinder . bean Ġ= ĠLogin Model () ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Component Ċ @ UIS cope Ċ class ĠLogin Controller Ġ{ ĊĊĠĠĠ Ġ@ Autowired Ġlateinit Ġvar ĠuserService : ĠUserService ĊĠĠĠ Ġlateinit Ġvar Ġview : ĠLogin View ĊĊĠĠĠ Ġfun Ġdo Login () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogin Model Ġ= Ġview . binder . bean ĊĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠuserService . findBy Username ( login Model . username ) ĊĠĠĠĠĠĠĠ Ġif Ġ( user Ġ!= Ġnull Ġ&& Ġuser . matches ( login Model . password )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUI . getCurrent (). navigator . navigate To ("/ main / calendar ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification . show (" Username Ġor Ġpassword Ġwrong ", ĠNotification . Type . ERROR _ MESSAGE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠLogin Model Ġ{ ĊĠĠĠ Ġvar Ġusername : ĠString Ġ= Ġ"" ĊĠĠĠ Ġvar Ġpassword : ĠString Ġ= Ġ"" Ċ } ĊĊ