diff --git a/src/com/masterhash/gui/NewLogin.java b/src/com/masterhash/gui/NewLogin.java index d1ec55c..aef1e6e 100644 --- a/src/com/masterhash/gui/NewLogin.java +++ b/src/com/masterhash/gui/NewLogin.java @@ -1,9 +1,12 @@ package com.masterhash.gui; +import java.util.Random; + import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; @@ -34,22 +37,70 @@ public static void display() { TextField userNameTextField = new TextField(); userNameTextField.setPromptText("Username"); - PasswordField passwordField = new PasswordField(); + TextField passtextfield = new TextField(); // Used for displaying password when Check box is checked + passtextfield.setPromptText("Password"); + passtextfield.setManaged(false); + passtextfield.setVisible(false); + + PasswordField passwordField = new PasswordField(); // Actual password field passwordField.setPromptText("Password"); - Button generateButton = new Button("Generate"); + CheckBox checkBox = new CheckBox("Show/Hide password");// To toggle + Button generateButton = new Button("Generate"); + // Interchanging between Password Field when password is hidden and Text Field when its not + passtextfield.managedProperty().bind(checkBox.selectedProperty()); + passtextfield.visibleProperty().bind(checkBox.selectedProperty()); + passwordField.managedProperty().bind(checkBox.selectedProperty().not()); + passwordField.visibleProperty().bind(checkBox.selectedProperty().not()); + passtextfield.textProperty().bindBidirectional(passwordField.textProperty()); + generateButton.setOnAction(e ->{ + + passwordField.setText(GeneratePassword()); + + }); + + + HBox generatePasswordArea = new HBox(); - generatePasswordArea.getChildren().addAll(passwordField, generateButton); + generatePasswordArea.getChildren().addAll(passwordField,passtextfield, generateButton); Button submitButton = new Button("Submit"); VBox layout = new VBox(10); layout.setPadding(new Insets(0, 20, 0, 20)); layout.setAlignment(Pos.CENTER_LEFT); - layout.getChildren().addAll(headingLabel, nameTextField, userNameTextField, generatePasswordArea, submitButton); + layout.getChildren().addAll(headingLabel, nameTextField, userNameTextField, generatePasswordArea,checkBox, submitButton); Scene scene = new Scene(layout, 300, 400); window.setScene(scene); window.showAndWait(); } + + public static String GeneratePassword() + { + int len=10; //length of password hard coded + + String capital_letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + String small_letters = "abcdefghijklmnopqrstuvwxyz"; + String numbers = "0123456789"; + String symbols = "!@#$%^&*_=+-/.?<>)"; + + String chars=capital_letters+small_letters+numbers+symbols; + + Random random = new Random(); + + char[] password = new char[len]; + + for (int i = 0; i < len; i++) + { + password[i] = chars.charAt(random.nextInt(chars.length())); + + } + String pass=new String(password); + + return pass; + } + + + } diff --git a/src/com/masterhash/gui/Welcome.java b/src/com/masterhash/gui/Welcome.java index 6188f52..3e8139b 100644 --- a/src/com/masterhash/gui/Welcome.java +++ b/src/com/masterhash/gui/Welcome.java @@ -48,7 +48,7 @@ public void start(Stage primaryStage) throws Exception { VBox fileBox = setupFileBox(); HBox signUpAndSubmitButtons = setupSignUpAndSubmitButtons(); - // Adding componenets to main layout box + // Adding components to main layout box vBox.getChildren().addAll(masterHashTitle, usernameAndPasswordBox, fileBox, signUpAndSubmitButtons); vBox.setAlignment(Pos.TOP_CENTER); @@ -116,7 +116,7 @@ private static HBox setupSignUpAndSubmitButtons() { window.close(); }); signUpButton.setOnAction(e -> { - Home.display(); + NewLogin.display(); window.close(); });