package Ġjavafx . utils Ċ Ċ import Ġjavafx . stage . Directory Chooser Ċ import Ġjavafx . stage . FileChooser Ċ import Ġjavafx . stage . Stage Ċ import Ġjava . io . File Ċ Ċ class ĠWindows Chooser ( var Ġstage : ĠStage ? Ġ= Ġnull , Ġvar Ġtitle : ĠString Ġ= Ġ" Select Ġfile ", Ġwindows Chooser : Ġ( windows Chooser : ĠWindows Chooser ) Ġ-> ĠUnit ) Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfile Chooser : ĠFile Chooser ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdirectory Chooser : ĠDirectory Chooser ĊĠĠĠ Ġinternal Ġvar Ġfile : ĠFile ? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġdirectory : ĠFile ? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġtypes : ĠArray < String > Ġ= ĠarrayOf () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġwindows Chooser ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġfile Select Dialog ( stage : ĠStage ? Ġ= Ġnull , Ġtitle : ĠString ? Ġ= Ġnull , Ġrun : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinitialise ( stage , Ġtitle ) ĊĠĠĠĠĠĠĠ Ġfile Ġ= Ġcreate FileChooser () ĊĠĠĠĠĠĠĠ Ġcheck (! has Been Cancelled ()) Ġ{ Ġ" No Ġfile Ġselected " Ġ} ĊĠĠĠĠĠĠĠ Ġcheck ( check MimeType ()) Ġ{ Ġ" Invalid Ġfile Ġtype " Ġ} ĊĠĠĠĠĠĠĠ Ġrun () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġdirectory Select Dialog ( stage : ĠStage ? Ġ= Ġnull , Ġtitle : ĠString ? Ġ= Ġnull , Ġrun : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdirectory Ġ= Ġcreate Directory Chooser () ĊĠĠĠĠĠĠĠ Ġinitialise ( stage , Ġtitle ) ĊĠĠĠĠĠĠĠ Ġrun () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhas Been Cancelled (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( file Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck MimeType (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( types . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtypes . forEach Ġ{ Ġtype Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( file ?. extension Ġ== Ġtype ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠToast . makeText ( stage !! , Ġ" Invalid Ġfile Ġtype !") ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Directory Chooser (): ĠFile ? Ġ{ ĊĠĠĠĠĠĠĠ Ġdirectory Chooser Ġ= ĠDirectory Chooser () ĊĠĠĠĠĠĠĠ Ġdirectory Chooser . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġreturn Ġdirectory Chooser . show Dialog ( stage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate FileChooser (): ĠFile ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfile Chooser Ġ= ĠFile Chooser () ĊĠĠĠĠĠĠĠ Ġfile Chooser . title Ġ= Ġthis . title ĊĠĠĠĠĠĠĠ Ġreturn Ġfile Chooser . show Open Dialog ( stage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialise ( stage : ĠStage ?, Ġtitle : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( stage Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . stage Ġ= Ġstage ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( title Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }