diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml new file mode 100644 index 00000000..22baa420 --- /dev/null +++ b/.idea/caches/deviceStreaming.xml @@ -0,0 +1,619 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 9c8e7400..1945ce5f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/src/main/kotlin/Archive.kt b/src/main/kotlin/Archive.kt new file mode 100644 index 00000000..7ae3d5c5 --- /dev/null +++ b/src/main/kotlin/Archive.kt @@ -0,0 +1,3 @@ +class Archive(title: String) : Lst(title){ + val notes: MutableList = mutableListOf() +} \ No newline at end of file diff --git a/src/main/kotlin/ArchiveScreen.kt b/src/main/kotlin/ArchiveScreen.kt new file mode 100644 index 00000000..ee269f35 --- /dev/null +++ b/src/main/kotlin/ArchiveScreen.kt @@ -0,0 +1,23 @@ +import java.util.Scanner + +class ArchiveScreen(val archives: MutableList, var createArchiveScreen: CreateArchiveScreen? = null, var notesScreen: NotesScreen? =null): ScreenPrototype() { + override fun display() { + val size = archives.size + println("Список архивов:\n") + putMenu(archives) + val choise = Scanner(System.`in`).nextLine() + when(choise?.toIntOrNull()){ + 1->createArchiveScreen?.display() + in 2..archives.size+1-> { + notesScreen!!.archive = archives[choise!!.toIntOrNull()!!-2] + notesScreen?.display() + } + archives.size+2-> return + else -> { + println("Некорректный ввод") + this.display() + } + } + } + +} diff --git a/src/main/kotlin/CreateArchiveScreen.kt b/src/main/kotlin/CreateArchiveScreen.kt new file mode 100644 index 00000000..7f10d73e --- /dev/null +++ b/src/main/kotlin/CreateArchiveScreen.kt @@ -0,0 +1,15 @@ +class CreateArchiveScreen(val archives: MutableList, val archiveScreen: ArchiveScreen): ScreenPrototype() { + override fun display() { + println("\nВведите название архива:") + putExit() + val title = getText() + when (title.toIntOrNull()) { + 1 -> archiveScreen.display() + else -> { + if (archives.add(Archive(title))) println("Архив $title успешно добавлен") + else println("Что то пошло не так") + archiveScreen.display() + } + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/CreateNoteScreen.kt b/src/main/kotlin/CreateNoteScreen.kt new file mode 100644 index 00000000..fd28d081 --- /dev/null +++ b/src/main/kotlin/CreateNoteScreen.kt @@ -0,0 +1,23 @@ +import java.util.Scanner + +class CreateNoteScreen(val notesScreen: NotesScreen): ScreenPrototype(){ + var notes: MutableList? = null + set(value){ + field = value + } + override fun display() { + println("\nВведите имя заметки") + putExit() + var title = getText() + when(title.toIntOrNull()){ + 1->notesScreen.display() + else -> { + println("Введите текст для заметки") + var text = getText() + if(notes!!.add(Note(title,text))) println("Заметка $title успешно добавлен") + else println("Что то пошло не так") + notesScreen.display() + } + } + } +} diff --git a/src/main/kotlin/Lst.kt b/src/main/kotlin/Lst.kt new file mode 100644 index 00000000..d51d3427 --- /dev/null +++ b/src/main/kotlin/Lst.kt @@ -0,0 +1,2 @@ +open class Lst(val title: String) { +} \ No newline at end of file diff --git a/src/main/kotlin/Main.kt b/src/main/kotlin/Main.kt index aade54c5..ccafc74a 100644 --- a/src/main/kotlin/Main.kt +++ b/src/main/kotlin/Main.kt @@ -1,3 +1,6 @@ +import com.sun.source.tree.WhileLoopTree + fun main(args: Array) { - println("Hello World!") + val screen: Screen = Screen() + screen.archiveScreen.display() } \ No newline at end of file diff --git a/src/main/kotlin/Note.kt b/src/main/kotlin/Note.kt new file mode 100644 index 00000000..6c649a32 --- /dev/null +++ b/src/main/kotlin/Note.kt @@ -0,0 +1,2 @@ +class Note (title: String, val text: String): Lst(title){ +} \ No newline at end of file diff --git a/src/main/kotlin/NotesScreen.kt b/src/main/kotlin/NotesScreen.kt new file mode 100644 index 00000000..8f0b5b17 --- /dev/null +++ b/src/main/kotlin/NotesScreen.kt @@ -0,0 +1,20 @@ +class NotesScreen(private val archiveScreen: ArchiveScreen,var createNoteScreen: CreateNoteScreen? =null,var note: ScreenOfNote? =null): ScreenPrototype(){ + var archive: Archive? = null + override fun display() { + val notes = archive!!.notes + createNoteScreen!!.notes = notes + val size = notes.size + println("\nЗаметки архива ${archive!!.title}:\n") + putMenu(notes) + val choise = readLine() + when(choise?.toIntOrNull()){ + 1->createNoteScreen?.display() + in 2..size+1-> note?.display(notes[choise?.toIntOrNull()!!-2]) + size+2-> archiveScreen.display() + else -> { + println("Некорректный ввод") + this.display() + } + } + } +} diff --git a/src/main/kotlin/Screen.kt b/src/main/kotlin/Screen.kt new file mode 100644 index 00000000..5a8cc898 --- /dev/null +++ b/src/main/kotlin/Screen.kt @@ -0,0 +1,17 @@ +class Screen { + private val notes: MutableList = mutableListOf() + private val archives: MutableList = mutableListOf() + val archiveScreen: ArchiveScreen = ArchiveScreen(archives) + val createArchiveScreen: CreateArchiveScreen = CreateArchiveScreen(archives,archiveScreen) + val notesScreen: NotesScreen = NotesScreen(archiveScreen) + val createNoteScreen: CreateNoteScreen = CreateNoteScreen(notesScreen) + val note: ScreenOfNote = ScreenOfNote(notesScreen) + init { + archiveScreen.createArchiveScreen = createArchiveScreen + archiveScreen.notesScreen = notesScreen + notesScreen.createNoteScreen = createNoteScreen + notesScreen.note = note + } + //val archivePair: PairScreens = PairScreens(archiveScreen,createArchiveScreen) + //val notePair: PairScreens = PairScreens(notesScreen,createNoteScreen) +} \ No newline at end of file diff --git a/src/main/kotlin/ScreenOfNote.kt b/src/main/kotlin/ScreenOfNote.kt new file mode 100644 index 00000000..cdc96a16 --- /dev/null +++ b/src/main/kotlin/ScreenOfNote.kt @@ -0,0 +1,11 @@ +class ScreenOfNote(private val notesScreen: NotesScreen) : ScreenPrototype(){ + fun display(note: Note) { + println("\n${note.title}\n${note.text}") + println("\n1. Выход") + when(readLine()?.toIntOrNull()){ + 1->notesScreen.display() + else -> println("Некорректный ввод") + } + } + +} diff --git a/src/main/kotlin/ScreenPrototype.kt b/src/main/kotlin/ScreenPrototype.kt new file mode 100644 index 00000000..984b7050 --- /dev/null +++ b/src/main/kotlin/ScreenPrototype.kt @@ -0,0 +1,3 @@ +abstract class ScreenPrototype { + open fun display(){} +} diff --git a/src/main/kotlin/fun.kt b/src/main/kotlin/fun.kt new file mode 100644 index 00000000..d81c73ef --- /dev/null +++ b/src/main/kotlin/fun.kt @@ -0,0 +1,25 @@ +import java.util.Scanner + +fun putList(archives: MutableList){ + val size = archives.size + for (i in 2 until size+2){ + println("$i. ${archives[i-2].title}") + } +} +fun getText(): String{ + var title = Scanner(System.`in`).nextLine() + while (title.isBlank()) { + println("Данное поле не может быть пустым") + title = Scanner(System.`in`).nextLine() + } + return title +} + +fun putMenu(list: MutableList){ + println("1. Создать") + putList(list) + println("${list.size+2}. Выход") +} +fun putExit(){ + println("Выход") +} \ No newline at end of file