-
Notifications
You must be signed in to change notification settings - Fork 710
/
Copy pathArchiveManager.kt
41 lines (34 loc) · 1.24 KB
/
ArchiveManager.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.util.Scanner
class ArchiveManager {
private val archives = mutableListOf<Archive>()
fun showArchiveMenu() {
val menuScreen = MenuScreen()
val options = mutableListOf<Pair<String, () -> Unit>>(
"Создать архив" to ::createArchive,
"Выход" to ::exitApp
)
archives.forEachIndexed { index, archive ->
options.add("${index + 2}. ${archive.name}" to { showNotesMenu(archive) })
}
menuScreen.showMenu("Список архивов:", options)
}
private fun createArchive() {
println("Введите название архива:")
val name = readLine().orEmpty().trim()
if (name.isNotEmpty()) {
val archive = Archive(name)
archives.add(archive)
println("Архив \"$name\" создан.")
} else {
println("Название архива не может быть пустым.")
}
showArchiveMenu()
}
private fun showNotesMenu(archive: Archive) {
val notesManager = NotesManager(this, archive)
notesManager.showNotesMenu()
}
private fun exitApp() {
println("Выход из приложения.")
}
}