package Ġch . fr ank el . blog . ren amer Ċ Ċ import Ġjava . io . File Ċ import Ġjava . util . regex . Pattern Syntax Exception Ċ import Ġjavax . swing . table . Abstract TableModel Ċ import Ġorg . green robot . event bus . Subscribe Ċ Ċ object ĠPath Model Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġpath : ĠString Ġ= ĠSystem . getProperty (" user . home ") ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġfun Ġon DirectoryPath Updated ( event : ĠDirectory Path Updated Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( path Ġ!= Ġevent . path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Bus . post ( Path Model Updated Event ( event . path )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= Ġevent . path ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġfun Ġon Directory Ch osen ( event : ĠDirectory Ch osen Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( path Ġ!= Ġevent . path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Bus . post ( Path Model Updated Event ( event . path )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= Ġevent . path ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠFile Model Ġ: ĠAbstract TableModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġroot : ĠFile ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġregex Ġ= Ġ"". to Regex () ĊĠĠĠ Ġprivate Ġvar Ġreplacement Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġfiles Ġ= ĠlistOf < File >() ĊĊĠĠĠ Ġoverride Ġfun Ġget RowCount () Ġ= Ġfiles . size ĊĠĠĠ Ġoverride Ġfun Ġget Column Count () Ġ= Ġ 2 ĊĊĠĠĠ Ġoverride Ġfun Ġget ColumnName ( column : ĠInt ) Ġ= Ġwhen Ġ( column ) Ġ{ ĊĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ" Name " ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Candidate Ġname " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetValue At ( row : ĠInt , Ġcolumn : ĠInt ): ĠString Ġ= Ġwhen Ġ( column ) Ġ{ ĊĠĠĠĠĠĠĠĠ 0 Ġ-> Ġfiles [ row ]. name ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġfiles [ row ]. name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( root Ġ!= Ġnull Ġ&& Ġregex . pattern . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregex . replace ( name , Ġreplacement ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġname ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġfun Ġon Path Model Updated ( event : ĠPath Model Updated Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġroot Ġ= ĠFile ( event . path ) ĊĠĠĠĠĠĠĠ Ġrefresh () ĊĠĠĠĠĠĠĠ Ġfire TableData Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġfun Ġon Pattern Updated ( event : ĠPattern Updated Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregex Ġ= Ġevent . pattern . to Regex () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire TableData Changed () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPattern Syntax Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNOT H ING ĠTO ĠDO ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġfun Ġon Replacement Updated ( event : ĠRe placement Updated Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreplacement Ġ= Ġevent . replacement ĊĠĠĠĠĠĠĠ Ġfire TableData Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġfun Ġon Rename d (@ Suppress (" UNUSED _ PARAMETER ") Ġevent : ĠRename d Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrefresh () ĊĠĠĠĠĠĠĠ Ġfire TableData Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġfiles Ġ= Ġroot ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. children () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . sorted By Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġempty List () ĊĠĠĠ Ġ} Ċ }