package Ġcom . har ley o conn or . git desk . ui . repository . changes Ċ Ċ import Ġcom . har ley o conn or . git desk . git . repository . Repository Ċ import Ġcom . har ley o conn or . git desk . ui . UI Resource Ċ import Ġcom . har ley o conn or . git desk . ui . node . SVG Icon Ċ import Ġcom . har ley o conn or . git desk . ui . style . SELECTED _ PSE UDO _ CLASS Ċ import Ġcom . har ley o conn or . git desk . ui . util . get Icon Ċ import Ġcom . har ley o conn or . git desk . ui . util . setOn Actions Ċ import Ġcom . har ley o conn or . git desk . ui . view . Resource View Loader Ċ import Ġcom . har ley o conn or . git desk . ui . view . ViewController Ċ import Ġcom . har ley o conn or . git desk . util . getUser Home Ċ import Ġcom . har ley o conn or . git desk . util . process . log Failure Ċ import Ġcom . har ley o conn or . git desk . util . system . System Manager Ċ import Ġjavafx . event . ActionEvent Ċ import Ġjavafx . event . Event Ċ import Ġjavafx . f xml . FXML Ċ import Ġjavafx . scene . control . CheckBox Ċ import Ġjavafx . scene . control . ContextMenu Ċ import Ġjavafx . scene . control . Label Ċ import Ġjavafx . scene . input . MouseButton Ċ import Ġjavafx . scene . input . MouseEvent Ċ import Ġjavafx . scene . layout . H Box Ċ import Ġorg . apache . logging . log 4 j . Log Manager Ċ Ċ /** Ċ Ġ* Ġ@ author ĠHar ley ĠO ' Conn or Ċ Ġ*/ Ċ class ĠFile Cell Controller Ġ: ĠView Controller < File Cell Controller . Context > Ġ{ ĊĊĠĠĠ Ġobject ĠLoader Ġ: ĠResource View Loader < Context , ĠFile Cell Controller , ĠH Box >( ĊĠĠĠĠĠĠĠ ĠUI Resource ("/ ui / layouts / repository / changes / File Cell . f xml ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġclass ĠContext ( val Ġrepository : ĠRepository , Ġval Ġfile : ĠRepository . Changed File , Ġval Ġlistener : ĠChanged File Listener ) Ġ: ĊĠĠĠĠĠĠĠ ĠView Controller . Context ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrepository : ĠRepository ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfile : ĠRepository . Changed File ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlistener : ĠChanged File Listener ĊĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext Menu : ĠContext Menu ĊĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcell : ĠH Box ĊĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġstage Checkbox : ĠCheckBox ĊĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġicon : ĠSVG Icon ĊĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġname Label : ĠLabel ĊĊĠĠĠ Ġoverride Ġfun Ġsetup ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . repository Ġ= Ġcontext . repository ĊĠĠĠĠĠĠĠ Ġthis . file Ġ= Ġcontext . file ĊĠĠĠĠĠĠĠ Ġthis . listener Ġ= Ġcontext . listener ĊĊĠĠĠĠĠĠĠ Ġthis . stage Checkbox . isSelected Ġ= Ġfile . st aged ĊĠĠĠĠĠĠĠ Ġthis . stage Checkbox . setOn Actions ( this :: addTo Stage , Ġthis :: remove From Stage ) ĊĠĠĠĠĠĠĠ Ġthis . icon . setup From Svg ( file . file . get Icon ()) ĊĠĠĠĠĠĠĠ Ġthis . name Label . text Ġ= Ġfile . file . name ĊĠĠĠĠĠĠĠ Ġthis . name Label . tooltip . text Ġ= Ġfile . file . absolute Path . replace ( getUser Home (), Ġ"~ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠaddTo Stage () Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository . addTo Stage ( file . file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. if Successful Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on File St aged () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. if Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Manager . getLogger (). error (" Failed Ġto Ġstage Ġfile Ġ`${ file . file }` Ġwith Ġerror Ġ`${ it . error }`. ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. begin () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove From Stage () Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository . remove From Stage ( file . file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. if Successful Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on File Un St aged () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. if Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Manager . getLogger () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error (" Failed Ġto Ġremove Ġfile Ġ`${ file . file }` Ġfrom Ġstage Ġwith Ġerror Ġ`${ it . error }`. ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. begin () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġfun Ġselect ( event : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event . button Ġ== ĠMouse Button . SECOND ARY Ġ|| Ġevent . is Control Down ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Menu . show ( cell , Ġevent . screen X , Ġevent . screen Y ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( cell . pseudo Class States . contains ( SELECTED _ PSE UDO _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen ( event ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcell . pseudo Class StateChanged ( SELECTED _ PSE UDO _ CLASS , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġde select () Ġ{ ĊĠĠĠĠĠĠĠ Ġcell . pseudo Class StateChanged ( SELECTED _ PSE UDO _ CLASS , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġfun Ġopen ( event : ĠEvent ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġfun Ġopen In Editor ( event : ĠAction Event ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġfun Ġopen In File Browser ( event : ĠAction Event ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSystem Manager . get (). open In File Browser ( file . file ). begin () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġfun Ġrollback ( event : ĠAction Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository . rollback ( file . file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. if Successful Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on File Reset () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. if Failure (:: log Failure ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. begin () ĊĠĠĠ Ġ} ĊĊ Ċ }