Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
619 changes: 619 additions & 0 deletions .idea/caches/deviceStreaming.xml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions src/main/kotlin/Archive.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
class Archive(title: String) : Lst(title){
val notes: MutableList<Note> = mutableListOf()
}
23 changes: 23 additions & 0 deletions src/main/kotlin/ArchiveScreen.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import java.util.Scanner

class ArchiveScreen(val archives: MutableList<Archive>, var createArchiveScreen: CreateArchiveScreen? = null, var notesScreen: NotesScreen? =null): ScreenPrototype() {
override fun display() {
val size = archives.size
println("Список архивов:\n")
putMenu<Archive>(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()
}
}
}

}
15 changes: 15 additions & 0 deletions src/main/kotlin/CreateArchiveScreen.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
class CreateArchiveScreen(val archives: MutableList<Archive>, 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()
}
}
}
}
23 changes: 23 additions & 0 deletions src/main/kotlin/CreateNoteScreen.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import java.util.Scanner

class CreateNoteScreen(val notesScreen: NotesScreen): ScreenPrototype(){
var notes: MutableList<Note>? = 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()
}
}
}
}
2 changes: 2 additions & 0 deletions src/main/kotlin/Lst.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
open class Lst(val title: String) {
}
5 changes: 4 additions & 1 deletion src/main/kotlin/Main.kt
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import com.sun.source.tree.WhileLoopTree

fun main(args: Array<String>) {
println("Hello World!")
val screen: Screen = Screen()
screen.archiveScreen.display()
}
2 changes: 2 additions & 0 deletions src/main/kotlin/Note.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
class Note (title: String, val text: String): Lst(title){
}
20 changes: 20 additions & 0 deletions src/main/kotlin/NotesScreen.kt
Original file line number Diff line number Diff line change
@@ -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<Note>(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()
}
}
}
}
17 changes: 17 additions & 0 deletions src/main/kotlin/Screen.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
class Screen {
private val notes: MutableList<Note> = mutableListOf()
private val archives: MutableList<Archive> = 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<ArchiveScreen, CreateArchiveScreen> = PairScreens(archiveScreen,createArchiveScreen)
//val notePair: PairScreens<NotesScreen,CreateNoteScreen> = PairScreens(notesScreen,createNoteScreen)
}
11 changes: 11 additions & 0 deletions src/main/kotlin/ScreenOfNote.kt
Original file line number Diff line number Diff line change
@@ -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("Некорректный ввод")
}
}

}
3 changes: 3 additions & 0 deletions src/main/kotlin/ScreenPrototype.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
abstract class ScreenPrototype {
open fun display(){}
}
25 changes: 25 additions & 0 deletions src/main/kotlin/fun.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import java.util.Scanner

fun <T:Lst>putList(archives: MutableList<T>){
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 <T:Lst>putMenu(list: MutableList<T>){
println("1. Создать")
putList<T>(list)
println("${list.size+2}. Выход")
}
fun putExit(){
println("Выход")
}