// ĠCopyright Ġ 2 0 0 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġcom . intellij . space . vcs . review . details . process Ċ Ċ import Ġcirc let . code . api . Reviewer State Ċ import Ġcirc let . platform . client . resolve Ċ import Ġcom . intellij . space . messages . Space Bundle Ċ import Ġcom . intellij . space . vcs . review . details . Participant State Control VM Ċ import Ġlibraries . coroutines . extra . Lifetime Ċ import Ġlibraries . coroutines . extra . launch Ċ import Ġorg . jetbrains . annotations . N ls Ċ import Ġruntime . Ui Ċ import Ġjava . awt . event . ActionEvent Ċ import Ġjavax . swing . Abstract Action Ċ Ċ internal Ġclass ĠSpace Review Actions Builder Ġconstructor ( private Ġval Ġstate Updater : ĠSpace Review State Updater ) Ġ{ ĊĠ Ġfun Ġcreate Resume Actions ( lifetime : ĠL ifetime , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontrol VM : ĠPart icipant State Control VM . Reviewer Resume Review Button ): ĠList < Space Review Action > Ġ{ ĊĠĠĠ Ġval Ġresume Action Ġ= ĠSpace Review Action ( Space Bundle . message (" review . actions . resume . review "), Ġlifetime , Ġstate Updater :: resume Review ) ĊĊĠĠĠ Ġval Ġaccept Action Ġ= Ġif Ġ( control VM . reviewer State Ġ!= ĠRe viewer State . Accepted ) Ġ{ ĊĠĠĠĠĠ ĠSpace Review Action ( Space Bundle . message (" review . actions . accept . changes "), Ġlifetime , Ġstate Updater :: accept Review ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġnull ĊĊĠĠĠ Ġreturn ĠlistOf NotNull ( resume Action , Ġaccept Action ) ĊĠ Ġ} ĊĊĠ Ġfun Ġcreate Accept Actions ( ĊĠĠĠ Ġlifetime : ĠL ifetime , ĊĠĠĠ Ġreviewer Dropdown : ĠPart icipant State Control VM . Reviewer Dropdown , ĊĠ Ġ): ĠList < Space Review Action > Ġ{ ĊĠĠĠ Ġval ĠwaitFor Response Name Ġ= ĠSpace Bundle . message (" review . actions . wait . for . response ") ĊĠĠĠ Ġval Ġaccept Name Ġ= ĠSpace Bundle . message (" review . actions . accept . changes ") ĊĊĠĠĠ Ġval Ġaccept Action Ġ= ĠSpace Review Action ( accept Name , Ġlifetime , Ġstate Updater :: accept Review ) ĊĊĠĠĠ Ġval ĠwaitFor Reply Action Ġ= Ġif Ġ( reviewer Dropdown . turn Based ) Ġ{ ĊĠĠĠĠĠ ĠSpace Review Action ( waitFor Response Name , Ġlifetime , Ġstate Updater :: wait Author Reply ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠ Ġif Ġ( reviewer Dropdown . pending Counter Ref . resolve (). count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSpace Review Action ( waitFor Response Name , Ġlifetime , Ġstate Updater :: submit Pending Messages ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠlistOf NotNull ( accept Action , ĠwaitFor Reply Action ) ĊĠ Ġ} ĊĊĠ Ġfun Ġcreate Author Resume Actions () Ġ{ ĊĊĠ Ġ} Ċ } ĊĊ Ċ internal Ġclass ĠSpace Review Action (@ N ls Ġaction Name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġlifetime : ĠL ifetime , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġrun : Ġsuspend Ġ() Ġ-> ĠUnit ) Ġ: ĠAbstract Action ( action Name ) Ġ{ ĊĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAction Event ?) Ġ{ ĊĠĠĠ Ġlaunch ( lifetime , ĠUi ) Ġ{ ĊĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġrun () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġtrue ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }