feat: show directory picker
This commit is contained in:
parent
62731eb74d
commit
b77de56091
3 changed files with 33 additions and 7 deletions
|
@ -4,7 +4,7 @@ import androidx.compose.ui.awt.ComposeWindow
|
|||
import java.io.File
|
||||
import javax.swing.JFileChooser
|
||||
|
||||
fun createFileChooser(
|
||||
fun showFilePicker(
|
||||
onResult: (file: File) -> Unit,
|
||||
onNoResult: () -> Unit
|
||||
) {
|
||||
|
@ -16,4 +16,18 @@ fun createFileChooser(
|
|||
}
|
||||
filePicker.showOpenDialog(ComposeWindow())
|
||||
if (filePicker.selectedFile != null) onResult.invoke(filePicker.selectedFile) else onNoResult.invoke()
|
||||
}
|
||||
|
||||
fun showDirectoryPicker(
|
||||
onResult: (file: File) -> Unit,
|
||||
onNoResult: () -> Unit
|
||||
) {
|
||||
val filePicker = JFileChooser(System.getProperty("user.home")).apply {
|
||||
fileSelectionMode = JFileChooser.DIRECTORIES_ONLY
|
||||
dialogTitle = "Select a directory"
|
||||
approveButtonText = "Confirm"
|
||||
approveButtonToolTipText = "Select source file"
|
||||
}
|
||||
filePicker.showOpenDialog(ComposeWindow())
|
||||
if (filePicker.selectedFile != null) onResult.invoke(filePicker.selectedFile) else onNoResult.invoke()
|
||||
}
|
|
@ -19,7 +19,7 @@ fun AddButton(
|
|||
) {
|
||||
FloatingActionButton(
|
||||
{
|
||||
createFileChooser({
|
||||
showFilePicker({
|
||||
Logger.info("Path: ${it.absolutePath}")
|
||||
watcherManager.addFile(it)
|
||||
}, {
|
||||
|
|
|
@ -14,9 +14,12 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.RectangleShape
|
||||
import androidx.compose.ui.unit.dp
|
||||
import xyz.atnrch.wrench.components.center.showDirectoryPicker
|
||||
import xyz.atnrch.wrench.logger.Logger
|
||||
import xyz.atnrch.wrench.ui.UIColors
|
||||
import xyz.atnrch.wrench.watcher.WatcherEntry
|
||||
import xyz.atnrch.wrench.watcher.WatcherManager
|
||||
import kotlin.io.path.pathString
|
||||
|
||||
@Composable
|
||||
fun OutputEntries(
|
||||
|
@ -41,17 +44,26 @@ fun OutputEntries(
|
|||
Box(
|
||||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Column (
|
||||
Column(
|
||||
verticalArrangement = Arrangement.SpaceEvenly,
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
Text("No output")
|
||||
Spacer(Modifier.height(28.dp))
|
||||
Text("CURRENT SELECTED FILE IS: ${entry.file.absolutePath}")
|
||||
if (entry.map.isEmpty()) {
|
||||
Text("No output")
|
||||
} else {
|
||||
entry.map.forEach {
|
||||
Text(it.pathString)
|
||||
}
|
||||
}
|
||||
Spacer(Modifier.height(28.dp))
|
||||
Button(
|
||||
onClick = {
|
||||
println("test")
|
||||
showDirectoryPicker({
|
||||
Logger.info("Path: ${it.absolutePath}")
|
||||
entry.map.add(it.toPath())
|
||||
}, {
|
||||
Logger.info("No file selected.")
|
||||
})
|
||||
}
|
||||
) {
|
||||
Icon(
|
||||
|
|
Reference in a new issue