// Ġ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 Ġgit 4 idea . index . actions Ċ Ċ import Ġcom . intellij . icons . All Icons Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . util . N ls Actions Ċ import Ġcom . intellij . openapi . util . N ls Contexts Ċ import Ġcom . intellij . openapi . vcs . V cs Bundle Ċ import Ġcom . intellij . openapi . vcs . V cs Exception Ċ import Ġcom . intellij . openapi . vcs . update . FilePath Change Ċ import Ġcom . intellij . openapi . vcs . update . Refresh V Fs S ynchronously Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġgit 4 idea . i 1 8 n . Git Bundle Ċ import Ġgit 4 idea . index . Content Version Ċ import Ġgit 4 idea . index . path Ċ import Ġgit 4 idea . index . ui . Git File Status Node Ċ import Ġgit 4 idea . index . ui . Node Kind Ċ import Ġgit 4 idea . util . Git FileUtils Ċ import Ġjava . util . function . Supplier Ċ import Ġjavax . swing . Icon Ċ Ċ interface ĠSt aging Area Operation Ġ{ ĊĠ Ġval Ġaction Text : ĠSupplier < @ N ls Actions . Action Text ĠString > ĊĠ Ġval Ġprogress Title : Ġ@ N ls Contexts . Progress Title ĠString ĊĠ Ġval Ġicon : ĠIcon ? ĊĠ Ġval ĠerrorMessage : Ġ@ N ls Contexts . Notification Content ĠString ĊĊĠ Ġfun Ġmatches ( status Node : ĠGit File Status Node ): ĠBoolean ĊĊĠ Ġ@ Throws ( V cs Exception :: class ) ĊĠ Ġfun Ġprocess Paths ( project : ĠProject , Ġroot : ĠVirtual File , Ġnodes : ĠList < Git File Status Node >) Ċ } Ċ Ċ object ĠGit Add Operation Ġ: ĠSt aging Area Operation Ġ{ ĊĠ Ġoverride Ġval Ġaction Text Ġget () Ġ= ĠGit Bundle . message Pointer (" stage . add . action . text ") ĊĠ Ġoverride Ġval Ġprogress Title Ġget () Ġ= ĠGit Bundle . message (" stage . add . process ") ĊĠ Ġoverride Ġval Ġicon Ġ= ĠAll Icons . General . Add ĊĠ Ġoverride Ġval ĠerrorMessage : ĠString Ġget () Ġ= ĠGit Bundle . message (" stage . add . error . title ") ĊĊĠ Ġoverride Ġfun Ġmatches ( status Node : ĠGit File Status Node ) Ġ= Ġstatus Node . kind Ġ== ĠNode Kind . UN ST AG ED Ġ|| Ġstatus Node . kind Ġ== ĠNode Kind . UN TRACK ED ĊĊĠ Ġoverride Ġfun Ġprocess Paths ( project : ĠProject , Ġroot : ĠVirtual File , Ġnodes : ĠList < Git File Status Node >) Ġ{ ĊĠĠĠ ĠGit FileUtils . add Paths ( project , Ġroot , Ġnodes . map Ġ{ Ġit . filePath Ġ}, Ġfalse ) ĊĠ Ġ} Ċ } Ċ Ċ object ĠGit Reset Operation Ġ: ĠSt aging Area Operation Ġ{ ĊĠ Ġoverride Ġval Ġaction Text Ġget () Ġ= ĠGit Bundle . message Pointer (" stage . reset . action . text ") ĊĠ Ġoverride Ġval Ġprogress Title Ġget () Ġ= ĠGit Bundle . message (" stage . reset . process ") ĊĠ Ġoverride Ġval Ġicon Ġ= ĠAll Icons . General . Remove ĊĠ Ġoverride Ġval ĠerrorMessage : ĠString Ġget () Ġ= ĠGit Bundle . message (" stage . reset . error . title ") ĊĊĠ Ġoverride Ġfun Ġmatches ( status Node : ĠGit File Status Node ) Ġ= Ġstatus Node . kind Ġ== ĠNode Kind . ST AG ED ĊĊĠ Ġoverride Ġfun Ġprocess Paths ( project : ĠProject , Ġroot : ĠVirtual File , Ġnodes : ĠList < Git File Status Node >) Ġ{ ĊĠĠĠ ĠGit FileUtils . reset Paths ( project , Ġroot , Ġnodes . map Ġ{ Ġit . filePath Ġ}) ĊĠ Ġ} Ċ } Ċ Ċ object ĠGit Re vert Operation Ġ: ĠSt aging Area Operation Ġ{ ĊĠ Ġoverride Ġval Ġaction Text Ġget () Ġ= ĠGit Bundle . message Pointer (" stage . revert . action . text ") ĊĠ Ġoverride Ġval Ġprogress Title Ġget () Ġ= ĠGit Bundle . message (" stage . revert . process ") ĊĠ Ġoverride Ġval Ġicon Ġ= ĠAll Icons . Actions . Rollback ĊĠ Ġoverride Ġval ĠerrorMessage : ĠString Ġget () Ġ= ĠGit Bundle . message (" stage . revert . error . title ") ĊĊĠ Ġoverride Ġfun Ġmatches ( status Node : ĠGit File Status Node ) Ġ= Ġstatus Node . kind Ġ== ĠNode Kind . UN ST AG ED ĊĊĠ Ġoverride Ġfun Ġprocess Paths ( project : ĠProject , Ġroot : ĠVirtual File , Ġnodes : ĠList < Git File Status Node >) Ġ{ ĊĠĠĠ ĠGit FileUtils . revert Un st aged Paths ( project , Ġroot , Ġnodes . map Ġ{ Ġit . filePath Ġ}) ĊĠĠĠ ĠRefresh V Fs S ynchronously . refresh ( nodes . map Ġ{ Ġcreate Change ( it ) Ġ}, Ġis Rollback Ġ= Ġtrue ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġcreate Change ( node : ĠGit File Status Node ): ĠFilePath Change Ġ= ĊĠĠĠ ĠFilePath Change . Simple ( node . status . path ( Content Version . ST AG ED ), Ġnode . status . path ( Content Version . LOCAL )) Ċ }