/** Ċ Ġ* ĠCopyright ĠÂ© Ġair back Ċ Ġ* Ċ Ġ* ĠThis Ġprogram Ġis Ġfree Ġsoftware : Ġyou Ġcan Ġredistribute Ġit Ġand / or Ġmodify Ċ Ġ* Ġit Ġunder Ġthe Ġterms Ġof Ġthe ĠGNU ĠAffero ĠGeneral ĠPublic ĠLicense Ġas Ġpublished Ġby Ċ Ġ* Ġthe ĠFree ĠSoftware ĠFoundation , Ġeither Ġversion Ġ 3 Ġof Ġthe ĠLicense , Ġor Ċ Ġ* Ġ( at Ġyour Ġoption ) Ġany Ġlater Ġversion . Ċ Ġ* Ċ Ġ* ĠThis Ġprogram Ġis Ġdistributed Ġin Ġthe Ġhope Ġthat Ġit Ġwill Ġbe Ġuseful , Ċ Ġ* Ġbut ĠWITHOUT ĠANY ĠWARRANTY ; Ġwithout Ġeven Ġthe Ġimplied Ġwarranty Ġof Ċ Ġ* ĠMERCHANTABILITY Ġor ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE . Ġ ĠSee Ġthe Ċ Ġ* ĠGNU ĠAffero ĠGeneral ĠPublic ĠLicense Ġfor Ġmore Ġdetails . Ċ Ġ* Ċ Ġ* ĠYou Ġshould Ġhave Ġreceived Ġa Ġcopy Ġof Ġthe ĠGNU ĠAffero ĠGeneral ĠPublic ĠLicense Ċ Ġ* Ġalong Ġwith Ġthis Ġprogram . Ġ ĠIf Ġnot , Ġsee Ġ< http :// www . gnu . org / licenses />. Ċ Ġ*/ Ċ package Ġcom . air back . module . project . view Ċ Ċ import Ġcom . google . common . event bus . Subscribe Ċ import Ġcom . air back . common . domain . Simple Client Ċ import Ġcom . air back . common . service . Client Service Ċ import Ġcom . air back . module . project . event .* Ċ import Ġcom . air back . module . project . view . parameters . Client Screen Data Ċ import Ġcom . air back . module . project . view . parameters . Project Screen Data Ċ import Ġcom . air back . module . project . view . parameters . Report Screen Data Ċ import Ġcom . air back . module . project . view . parameters . Stand up Screen Data Ċ import Ġcom . air back . spring . AppContext Util Ċ import Ġcom . air back . vaadin . App UI Ċ import Ġcom . air back . vaadin . Application EventListener Ċ import Ġcom . air back . vaadin . mvp . Abstract Controller Ċ import Ġcom . air back . vaadin . mvp . Page Action Chain Ċ import Ġcom . air back . vaadin . mvp . Presenter Resolver Ċ import Ġjava . time . LocalDate Ċ Ċ /** Ċ Ġ* Ġ@ author Ġair back ĠLtd Ċ Ġ* Ġ@ since Ġ 6 . 0 . 0 Ċ Ġ*/ Ċ class ĠProject Module Controller ( val Ġcontainer : ĠProject Module ) Ġ: ĠAbstract Controller () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Project Event . G oto My Project > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠProject Event . G oto My Project ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Project View Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . handle Chain ( container , Ġevent . data Ġas ĠPage Action Chain ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Project Event . G oto User Dashboard > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠProject Event . G oto User Dashboard ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Board Container Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Project Event . G oto List > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠProject Event . G oto List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Board Container Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , ĠProject Screen Data . G oto List ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Favorite Event . G oto List > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠF avorite Event . G oto List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Board Container Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , ĠProject Screen Data . G oto List ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Client Event . G oto List > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠClient Event . G oto List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Board Container Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , ĠClient Screen Data . Search ( null )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Client Event . G oto Add > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠClient Event . G oto Add ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Board Container Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠSimple Client (). with S account id ( App UI . accountId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , ĠClient Screen Data . Add ( client )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Client Event . G oto Edit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠClient Event . G oto Edit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Board Container Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event . data Ġis ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Service Ġ= ĠApp Context Util . get Spring Bean ( Client Service :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Ġ= Ġclient Service . findById ( event . data , ĠApp UI . accountId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( client Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , ĠClient Screen Data . Edit ( client )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( event . data Ġis ĠSimple Client ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , ĠClient Screen Data . Edit ( event . data )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Client Event . G oto Read > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠClient Event . G oto Read ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Board Container Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠclientId Ġ= Ġevent . data Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , ĠClient Screen Data . Read ( clientId )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Report Event . G oto Console > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠReport Event . G oto Console ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Board Container Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , ĠReport Screen Data . G oto Console ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Report Event . G oto Time sheet Report > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠReport Event . G oto Time sheet Report ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Board Container Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , ĠReport Screen Data . G oto Time sheet ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Report Event . G oto Week ly Timing Report > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠReport Event . G oto Week ly Timing Report ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Board Container Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , ĠReport Screen Data . G oto Week ly Timing ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Report Event . G oto User Workload Report > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠReport Event . G oto User Workload Report ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Board Container Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , ĠReport Screen Data . G oto User Workload ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġthis . register ( object Ġ: ĠApplication EventListener < Stand Up Event . G oto List > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Subscribe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠStand Up Event . G oto List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter Resolver . get Presenter ( Board Container Presenter :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . go ( container , ĠStand up Screen Data . Search ( LocalDate . now ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }