package Ġcom . sec L end Model . gui . views . cord apps . se cur ities L ending Ċ Ċ import Ġcom . sec L end Model . contract . Security Loan Ċ import Ġcom . sec L end Model . flow . se cur ities L ending . Loan Termination Flow Ċ import Ġcom . sec L end Model . flow . se cur ities L ending . Loan Partial Termination Flow Termination Flow Ċ import Ġcom . sec L end Model . flow . se cur ities L ending . Loan Update Flow Ċ import Ġcom . sec L end Model . gui . format ters . Party Name Formatter Ċ import Ġcom . sec L end Model . gui . model . Issuer Model Ċ import Ġcom . sec L end Model . gui . model . Loan Transactions Ċ import Ġcom . sec L end Model . gui . model . Reporting Currency Model Ċ import Ġcom . sec L end Model . gui . model . Sec ur ities L ending Model Ċ import Ġcom . sec L end Model . gui . views . string Converter Ċ import Ġjavafx . beans . binding . Bindings Ċ import Ġjavafx . beans . binding . Boolean Binding Ċ import Ġjavafx . beans . property . Simple ObjectProperty Ċ import Ġjavafx . geometry . Insets Ċ import Ġjavafx . scene . control .* Ċ import Ġjavafx . scene . text . Font Ċ import Ġjavafx . scene . text . Font Weight Ċ import Ġjavafx . stage . Window Ċ import Ġnet . cord a . client . j fx . model .* Ċ import Ġnet . cord a . client . j fx . utils . isNotNull Ċ import Ġnet . cord a . client . j fx . utils . map Ċ import Ġnet . cord a . core . contracts . State And Ref Ċ import Ġnet . cord a . core . flows . Flow Exception Ċ import Ġnet . cord a . core . messaging . Flow Handle Ċ import Ġnet . cord a . core . messaging . start Flow Ċ import Ġnet . cord a . core . serialization . Opaque Bytes Ċ import Ġorg . controls fx . dialog . Exception Dialog Ċ import Ġt orn ad of x .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġray mon dm Ġon Ġ 2 1 / 0 8 / 2 0 1 7 . Ċ Ġ*/ Ċ Ċ class ĠTermin ate Loan View Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġroot Ġby Ġf xml < Dialog Pane >() ĊĠĠĠ Ġ// ĠComponents ĊĠĠĠ Ġprivate Ġval Ġtransaction Type CB Ġby Ġfx id < Choice Box < Loan Transactions >>() ĊĠĠĠ Ġ// private Ġval Ġparty AT ext Field Ġby Ġfx id < TextField >() ĊĠĠĠ Ġ// private Ġval Ġparty AL abel Ġby Ġfx id < Label >() ĊĠĠĠ Ġprivate Ġval Ġsec Loan CB Ġby Ġfx id < Choice Box < State And Ref < Security Loan . State >> >() ĊĠĠĠ Ġprivate Ġval Ġsec Loan Label Ġby Ġfx id < Label >() ĊĠĠĠ Ġ// private Ġval Ġissuer Label Ġby Ġfx id < Label >() ĊĠĠĠ Ġ// private Ġval Ġissuer TextField Ġby Ġfx id < TextField >() ĊĠĠĠ Ġ// private Ġval Ġissuer Choice Box Ġby Ġfx id < Choice Box < Party >>() ĊĠĠĠ Ġ// private Ġval Ġissue Ref Label Ġby Ġfx id < Label >() ĊĠĠĠ Ġ// private Ġval Ġissue Ref TextField Ġby Ġfx id < TextField >() ĊĠĠĠ Ġ// private Ġval Ġcurrency Label Ġby Ġfx id < Label >() ĊĠĠĠ Ġ// private Ġval Ġcurrency Choice Box Ġby Ġfx id < Choice Box < Currency >>() ĊĠĠĠ Ġ// private Ġval Ġavailable Amount Ġby Ġfx id < Label >() ĊĠĠĠ Ġprivate Ġval Ġamount Label Ġby Ġfx id < Label >() ĊĠĠĠ Ġprivate Ġval Ġamount TextField Ġby Ġfx id < TextField >() ĊĠĠĠ Ġ// private Ġval Ġamount Ġ= ĠSimple ObjectProperty < BigDecimal >() ĊĠĠĠ Ġprivate Ġval Ġissue Ref Ġ= ĠSimple ObjectProperty < Byte >() ĊĠĠĠ Ġ// ĠInject Ġdata ĊĠĠĠ Ġprivate Ġval Ġparties Ġby Ġobservable List ( Network Identity Model :: part ies ) ĊĠĠĠ Ġprivate Ġval Ġloan States Ġby Ġobservable List ( Sec ur ities L ending Model :: loan States ) ĊĠĠĠ Ġprivate Ġval Ġiss u ers Ġby Ġobservable List ( Issuer Model :: iss u ers ) ĊĠĠĠ Ġprivate Ġval Ġrpc Proxy Ġby Ġobservable Value ( Node Monitor Model :: proxy Observable ) ĊĠĠĠ Ġprivate Ġval Ġmy Identity Ġby Ġobservable Value ( Network Identity Model :: my Identity ) ĊĠĠĠ Ġprivate Ġval Ġnot aries Ġby Ġobservable List ( Network Identity Model :: not aries ) ĊĠĠĠ Ġprivate Ġval Ġcash Ġby Ġobservable List ( Contract State Model :: cash ) ĊĠĠĠ Ġprivate Ġval Ġexecute Button Ġ= ĠButton Type (" Execute ", ĠButton Bar . Button Data . AP PLY ) ĊĠĠĠ Ġprivate Ġval Ġcurrency Types Ġby Ġobservable List ( Issuer Model :: currency Types ) ĊĠĠĠ Ġprivate Ġval Ġsupported C urrencies Ġby Ġobservable List ( Reporting Currency Model :: supported C urrencies ) ĊĠĠĠ Ġprivate Ġval Ġloan Types Ġby Ġobservable List ( Issuer Model :: loan Type ) ĊĊĠĠĠ Ġ/** ĠThis Ġsection Ġhandles Ġthe Ġpopup Ġwindow Ġwhen Ġthe Ġtransaction Ġis Ġstarted Ġ*/ ĊĠĠĠ Ġfun Ġshow ( window : ĠWindow ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Transaction Dialog ( window ). show And Wait (). if Present Ġ{ Ġcommand : ĠUnit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠAlert ( Alert . Alert Type . INFORMATION ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Text Ġ= Ġ" Transaction ĠStarted ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Pane . is Disable Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Owner ( window ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Async Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. ui Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġwhen Ġ( command Ġis ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġ" Transaction ĠFinished " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġ" Transact ino ĠStarted " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . alert Type Ġ= ĠAlert . Alert Type . INFORMATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dialog Pane . is Disable Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dialog Pane . content Ġ= Ġgrid pane Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpadding Ġ= ĠIn sets ( 1 0 . 0 , Ġ 4 0 . 0 , Ġ 1 0 . 0 , Ġ 2 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv gap Ġ= Ġ 1 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh gap Ġ= Ġ 1 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Ġ{ Ġlabel ( type ) Ġ{ Ġfont Ġ= ĠFont . font ( font . family , ĠFontWeight . EXTRA _ BOLD , Ġfont . size Ġ+ Ġ 2 ) Ġ} Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dialog Pane . scene . window . size To Scene () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. setOn Failed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġex Ġ= Ġit . source . exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( ex ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFlow Exception Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . alert Type Ġ= ĠAlert . Alert Type . ERROR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . content Text Ġ= Ġex . message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠException Dialog ( ex ). apply Ġ{ Ġinit Owner ( window ) Ġ}. show And Wait () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġnew Transaction Dialog ( window : ĠWindow ) Ġ= ĠDialog < Unit >(). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Pane Ġ= Ġroot ĊĠĠĠĠĠĠĠ Ġinit Owner ( window ) ĊĠĠĠĠĠĠĠ Ġset Result Converter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdefault Ref Ġ= ĠO pa que Bytes . of ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġissue Ref Ġ= Ġif Ġ( issue Ref . value Ġ!= Ġnull ) ĠO pa que Bytes . of ( issue Ref . value ) Ġelse Ġdefault Ref ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// When Ġthe Ġuser Ġhas Ġselected Ġterminate Ġand Ġa Ġloan , Ġwe Ġcan Ġbegin Ġthe Ġtermination Ġflow ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Button Ġ-> Ġwhen Ġ( transaction Type CB . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLo an Transactions . Terminate Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrpc Proxy . value ?. start Flow ( Loan Termination Flow :: Termin ator , Ġsec Loan CB . value . state . data . linear Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLo an Transactions . Partial Terminate Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrpc Proxy . value ?. start Flow ( Loan Partial Termination Flow Termination Flow :: Part Termin ator , Ġsec Loan CB . value . state . data . linear Id , Ġamount TextField . characters . toString (). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠDisable Ġeverything Ġwhen Ġnot Ġconnected Ġto Ġnode . ĊĠĠĠĠĠĠĠ Ġval Ġnot aries NotNull Binding Ġ= ĠBind ings . create Boolean Binding ({ Ġnot aries . isNotEmpty () Ġ}, ĠarrayOf ( not aries )) ĊĠĠĠĠĠĠĠ Ġval Ġenable Property Ġ= Ġmy Identity . isNotNull (). and ( rpc Proxy . isNotNull ()). and ( not aries NotNull Binding ) ĊĠĠĠĠĠĠĠ Ġroot . disable Property (). bind ( enable Property . not ()) ĊĠĠĠĠĠĠĠ Ġ// refresh Ġloan Ġstates ĊĊĠĠĠĠĠĠĠ Ġ// ĠTransaction ĠTypes ĠChoice ĠBox ĊĠĠĠĠĠĠĠ Ġtransaction Type CB . items Ġ= ĠlistOf ( Loan Transactions . Terminate , ĠLo an Transactions . Partial Terminate ). observable () ĊĊĊĠĠĠĠĠĠĠ Ġ// ĠLo an ĠSelection ĊĠĠĠĠĠĠĠ Ġsec Loan CB . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsec Loan Label . text Property (). bind ( transaction Type CB . value Property (). map Ġ{ Ġit ?. party Name B ?. let Ġ{ Ġ"$ it Ġ: Ġ" Ġ} Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems Ġ= Ġloan States ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Ġ= Ġstring Converter Ġ{ Ġ" Instrument : Ġ" Ġ+ Ġit . state . data . code . toString () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ĠSh ares : Ġ"+ Ġit . state . data . quantity Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ĠL ender : Ġ" Ġ+ ĠParty Name Formatter . short . format ( it . state . data . l ender . name ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ĠB orrow er : Ġ" Ġ+ ĠParty Name Formatter . short . format ( it . state . data . borrow er . name ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ĠMargin : Ġ" Ġ+ Ġit . state . data . terms . margin Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ĠCurrent ĠSP : Ġ" Ġ+ Ġit . state . data . current Stock Price . quantity } ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Amount Ġinput Ġif Ġrequired ĊĠĠĠĠĠĠĠ Ġamount Label . text Ġ= Ġ" Amount Ġto ĠTermin ate " ĊĠĠĠĠĠĠĠ Ġ// ĠValidate Ġinputs . ĊĠĠĠĠĠĠĠ Ġval Ġform Valid Condition Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// my Identity . isNotNull (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction Type CB . value Property (). isNotNull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsec Loan CB . visible Property (). not (). or ( sec Loan CB . value Property (). isNotNull ) ĊĊĠĠĠĠĠĠĠ Ġ). reduce ( Boolean Binding :: and ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠEnable Ġexecute Ġbutton Ġwhen Ġform Ġis Ġvalid . ĊĠĠĠĠĠĠĠ Ġroot . button Types . add ( execute Button ) ĊĠĠĠĠĠĠĠ Ġroot . lookup Button ( execute Button ). disable Property (). bind ( form Valid Condition . not ()) ĊĊĊĠĠĠ Ġ} Ċ } Ċ