Coverage Summary for Class: FileChooser_jvmKt (ui.file)

Class Method, % Branch, % Line, % Instruction, %
FileChooser_jvmKt 0% (0/3) 0% (0/4) 0% (0/21) 0% (0/231)
FileChooser_jvmKt$FileDialog$1$1$1 0% (0/3) 0% (0/2) 0% (0/5) 0% (0/17)
Total 0% (0/6) 0% (0/6) 0% (0/26) 0% (0/248)


 package ui.file
 
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.window.AwtWindow
 import java.awt.FileDialog
 import java.awt.Frame
 import java.io.File
 import javax.swing.JFileChooser
 import javax.swing.UIManager
 import javax.swing.filechooser.FileNameExtensionFilter
 import javax.swing.filechooser.FileSystemView
 
 @Composable
 fun FileDialog(parent: Frame? = null, onClose: (result: List<File>) -> Unit) =
     AwtWindow(
         visible = true,
         create = {
           object : FileDialog(parent, "Choose a file", LOAD) {
             override fun isMultipleMode() = true
 
             override fun setVisible(visible: Boolean) {
               super.setVisible(visible)
               if (visible) {
                 onClose(files.toList())
               }
             }
           }
         },
         dispose = FileDialog::dispose)
 
 fun fileChooser(parent: Frame? = null, onClose: (result: List<File>) -> Unit) {
   UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())
   val chooser =
       JFileChooser(FileSystemView.getFileSystemView()).apply {
         currentDirectory = File(System.getProperty("user.dir"))
         fileSelectionMode = JFileChooser.FILES_AND_DIRECTORIES
         isMultiSelectionEnabled = true
         dialogTitle = "Select a folder"
         approveButtonText = "Select"
         approveButtonToolTipText = "Select current directory as save destination"
         fileFilter = FileNameExtensionFilter("JPG & GIF Images", "jpg", "gif")
       }
 
   val files = chooser.selectedFiles.toList()
   chooser.isVisible = false
   onClose(files)
 }