package Ġme . nick cr uz . dam . view model Ċ Ċ import Ġjavafx . collections . FX Collections . observable ArrayList Ċ import Ġjavafx . collections . Observable List Ċ import Ġme . nick cr uz . dam . image . Image Finder Ċ import Ġt orn ad of x . FX . Companion . log Ċ import Ġt orn ad of x . getProperty Ċ import Ġt orn ad of x . onChange Ċ import Ġt orn ad of x . property Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠEx poses Ġall Ġimages Ġin Ġa Ġgiven Ġroot Ġdirectory , Ġrecursively . Ċ Ġ*/ Ċ class ĠImage Explorer ViewModel Ġ{ ĊĊĠĠĠ Ġvar Ġroot Directory : ĠFile Ġby Ġproperty () ĊĠĠĠ Ġval Ġimages : ĠObservable List < File > Ġ= Ġobservable ArrayList < File >() ĊĠĠĠ Ġprivate Ġval Ġimage Finder Ġ= ĠImage Finder () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġon Root Directory Changed Ġ{ Ġupdate Image Paths () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Root Directory Changed ( op : Ġ( File ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠgetProperty ( Image Explorer ViewModel :: root Directory ). onChange Ġ{ Ġit ?. let ( op ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Image Paths () Ġ{ ĊĠĠĠĠĠĠĠ Ġimage Finder . find Images ( root Directory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Descending Ġ{ Ġit . lastModified () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimages . set All ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" Number Ġof Ġimages Ġfound : Ġ$ size ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ