diff --git a/console/test.db b/console/test.db index 9f2636cb42690853c06a9c00dc8639184e2ef377..915738e5d417d4f312b9e1d3f431af3bcab946c2 100644 Binary files a/console/test.db and b/console/test.db differ diff --git a/utilities/src/main/kotlin/notes/multi/utilities/NoteTextWindow.kt b/utilities/src/main/kotlin/notes/multi/utilities/NoteTextWindow.kt index 07f1c8a51eee0bf9099d0092fc38efa831593cff..a1589bfb0c7b2344f87f1b4da2f8ab6c5916df72 100644 --- a/utilities/src/main/kotlin/notes/multi/utilities/NoteTextWindow.kt +++ b/utilities/src/main/kotlin/notes/multi/utilities/NoteTextWindow.kt @@ -3,14 +3,11 @@ package notes.multi.utilities import javafx.application.Application import javafx.stage.Stage import javafx.scene.Scene -import javafx.scene.control.ScrollPane -import javafx.scene.control.TextArea import javafx.scene.layout.VBox import javafx.scene.layout.AnchorPane import javafx.application.Platform import javafx.scene.Node -import javafx.scene.control.Alert -import javafx.scene.control.ButtonType +import javafx.scene.control.* import javafx.scene.input.KeyCode import javafx.scene.input.MouseDragEvent import javafx.scene.input.MouseEvent @@ -76,7 +73,93 @@ class TextWindow(): Application() { * Responsive Design and scroll properties */ scroll.content = textarea - val box = VBox(anchor) + + + /** + * MenuBar Design and implementation + */ + + val menubar = MenuBar() + val filemenu = Menu("File") + val modechange = Menu("Mode") + + // File menu items + val open = MenuItem("Open") + val save = MenuItem("Save") + val delete = MenuItem("Delete") + + // Modechange menu items + val dark = MenuItem("Dark") + val light = MenuItem("Light") + + save.setOnAction { + val warning = Alert(Alert.AlertType.CONFIRMATION) + warning.title = "SAVE" + warning.contentText = "Do you want to save this file?" + val result = warning.showAndWait() + if (result.isPresent) { + when (result.get()) { + ButtonType.OK -> { + // filecontroller.writeFile(textarea.htmlText) + + + Database.connect("jdbc:sqlite:test.db") + transaction { + SchemaUtils.create(DatabaseOperations.Notes) + var newNote = Note(paramsMap["title"], StringBuffer(textarea.htmlText), + LocalDate.now().toString(), LocalDateTime.now().toString()) + var updateId = paramsMap["id"]?.toInt() + if (updateId !== null && updateId != -1) { + DatabaseOperations.updateNote(updateId, newNote) + } else { + DatabaseOperations.addNote(newNote) + } + } + + // + // Database.connect("jdbc:sqlite:test.db") + // transaction { + // SchemaUtils.create(DatabaseOperations.Notes) + // var newNote = Note(paramsMap["title"], StringBuffer(textarea.htmlText), + // LocalDate.now().toString(), LocalDateTime.now().toString()) + // DatabaseOperations.addNote(newNote) + // } + + } + } + } + } + + delete.setOnAction { + val warning = Alert(Alert.AlertType.CONFIRMATION) + warning.title = "DELETE" + warning.contentText = "Do you delete this file?" + val result = warning.showAndWait() + if (result.isPresent) { + when (result.get()) { + ButtonType.OK -> { + // filecontroller.deleteFile() + + Database.connect("jdbc:sqlite:test.db") + transaction { + SchemaUtils.create(DatabaseOperations.Notes) + var deleteId = paramsMap["id"]?.toInt() + if (deleteId !== null && deleteId != -1) { + DatabaseOperations.deleteNote(deleteId) + } + } + + Platform.exit() + } + } + } + } + + filemenu.items.addAll(open, save, delete) + modechange.items.addAll(dark, light) + menubar.menus.addAll(filemenu, modechange) + + val box = VBox(menubar, anchor) VBox.setVgrow(anchor, Priority.ALWAYS) stage.scene = Scene(box, 300.0, 300.0)