Skip to content
Snippets Groups Projects
Commit 870201a7 authored by Simon Wang's avatar Simon Wang
Browse files

Adding login manager popup

parent bd80ef43
No related branches found
No related tags found
4 merge requests!50Unit tests backend,!49Tabs,!44Login,!43Adding login manager popup
Pipeline #91412 passed
package net.codebot.application
import javafx.event.EventHandler
import javafx.geometry.Insets
import javafx.geometry.Pos
import javafx.scene.Scene
import javafx.scene.control.Button
import javafx.scene.control.Label
import javafx.scene.control.PasswordField
import javafx.scene.control.TextField
import javafx.scene.layout.GridPane
import javafx.scene.layout.HBox
import javafx.scene.layout.StackPane
import javafx.scene.paint.Color
import javafx.scene.text.Text
import javafx.stage.Stage
class LoginManager {
fun build(self: Stage, markdown: Stage): StackPane {
val grid = GridPane()
grid.alignment = Pos.CENTER
grid.hgap = 10.0
grid.vgap = 10.0
grid.padding = Insets(25.0, 25.0, 25.0, 25.0)
val gridTitle = Text("User Login")
grid.add(gridTitle, 0, 0, 2, 1)
val userName = Label("User Name:")
grid.add(userName, 0, 1)
val userTextField = TextField()
grid.add(userTextField, 1, 1)
val pw = Label("Password:")
grid.add(pw, 0, 2)
val pwBox = PasswordField()
grid.add(pwBox, 1, 2)
// Defining sign in buttons and their placement
val guestBtn = Button("Sign in as Guest")
val userBtn = Button("Sign in")
val hbBtn = HBox(10.0)
hbBtn.alignment = Pos.BOTTOM_RIGHT
hbBtn.children.addAll(guestBtn, userBtn)
grid.add(hbBtn, 1, 4)
val actiontarget = Text()
grid.add(actiontarget, 1, 6)
guestBtn.onAction = EventHandler {
markdown.show()
self.hide()
}
userBtn.onAction = EventHandler {
actiontarget.setFill(Color.FIREBRICK)
val user = userTextField.text
val password = pwBox.text
if (user == "") {
actiontarget.setText("Enter a user name.")
} else if (password == "") {
actiontarget.setText("Enter a password.")
} else {
actiontarget.setText("Username: " + user + " Password: " + password)
}
}
return StackPane(grid)
}
}
\ No newline at end of file
......@@ -11,13 +11,17 @@ import com.vladsch.flexmark.util.data.MutableDataSet
import com.vladsch.flexmark.util.misc.Extension
import javafx.application.Application
import javafx.event.EventHandler
import javafx.geometry.Insets
import javafx.geometry.Pos
import javafx.scene.Scene
import javafx.scene.control.*
import javafx.scene.input.*
import javafx.scene.layout.BorderPane
import javafx.scene.layout.GridPane
import javafx.scene.layout.HBox
import javafx.scene.layout.VBox
import javafx.scene.text.Font
import javafx.scene.text.Text
import javafx.scene.web.WebView
import javafx.stage.FileChooser
import javafx.stage.Stage
......@@ -34,7 +38,8 @@ class Main : Application() {
var userConfig = initConfig()
// variables to know on startup? maybe user preferences etc.
var cur_theme = "darkMode.css"
// stage for login window
val loginStage = Stage()
var cur_file: FolderView.cur_File = FolderView.cur_File()
val bold = Button("B")
......@@ -195,8 +200,9 @@ class Main : Application() {
val new = MenuItem("New")
val saveAsFile = MenuItem("Save As")
val saveFile = MenuItem("Save")
val signOut = MenuItem("Sign Out")
val exitApp = MenuItem("Exit")
file.items.addAll(openFile, new, saveFile, saveAsFile, exitApp)
file.items.addAll(openFile, new, saveFile, saveAsFile, signOut,exitApp)
val edit = Menu("Edit")
val undo = MenuItem("Undo")
......@@ -345,7 +351,12 @@ class Main : Application() {
}
}
signOut.onAction = EventHandler {
stage.hide()
loginStage.show()
loginStage.scene = Scene(LoginManager().build(loginStage, stage))
// reset stage as well
}
// Undo, Redo
undo.isDisable = true
......@@ -445,7 +456,12 @@ class Main : Application() {
stage.height = 450.0
stage.title = "Markdown Editor"
stage.scene = scene
stage.show()
}
stage.hide()
// authentication box
val loginScene = Scene(LoginManager().build(loginStage, stage))
loginStage.scene = loginScene
loginStage.title = "User Login"
loginStage.show()
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment