parent
19600bf86f
commit
b00a50d2b8
@ -0,0 +1,128 @@
|
||||
package controllers;
|
||||
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.Alert;
|
||||
import javafx.scene.control.ComboBox;
|
||||
import javafx.scene.control.DatePicker;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.image.Image;
|
||||
import model.Driver;
|
||||
import model.SceneCode;
|
||||
import model.Session;
|
||||
|
||||
import java.net.URL;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
/**
|
||||
* Created by Gondr on 1/06/2017.
|
||||
*/
|
||||
public class RegisterDriverController extends Controller {
|
||||
|
||||
private Image photoStored;
|
||||
private int studentNumber;
|
||||
private String email;
|
||||
private String password;
|
||||
private String address;
|
||||
private String homephone;
|
||||
private String mobilephone;
|
||||
private String accountType;
|
||||
@FXML
|
||||
private ComboBox<String> licenseType;
|
||||
@FXML
|
||||
private TextField number;
|
||||
@FXML
|
||||
private DatePicker issue;
|
||||
@FXML
|
||||
private DatePicker expiry;
|
||||
|
||||
public void setUserInformation(int studentNumber, String email, String password, String address, String homephone, String mobilephone, String accountType, Image photoStored){
|
||||
this.studentNumber = studentNumber;
|
||||
this.email = email;
|
||||
this.password = password;
|
||||
this.address = address;
|
||||
this.homephone = homephone;
|
||||
this.mobilephone = mobilephone;
|
||||
this.accountType = accountType;
|
||||
this.photoStored = photoStored;
|
||||
}
|
||||
|
||||
public static String validateLicense(String ln){
|
||||
String failure = "";
|
||||
if (ln.length() < 6){
|
||||
failure += "Your License must be at least 6 letters long.\n";
|
||||
}
|
||||
return failure;
|
||||
}
|
||||
|
||||
public static String validateIssue(LocalDate d){
|
||||
String failure = "";
|
||||
if (d == null){
|
||||
failure += "You must set a date of issue.\n";
|
||||
}else {
|
||||
if (LocalDate.now().isBefore(d)) {
|
||||
failure += "You cannot have a issue date earlier than today.\n";
|
||||
}
|
||||
}
|
||||
return failure;
|
||||
}
|
||||
|
||||
public static String validateExpire(LocalDate e, LocalDate i){
|
||||
String failure = "";
|
||||
if (e == null){
|
||||
failure += "You must set a date of expiry.\n";
|
||||
} else {
|
||||
if (i != null) {
|
||||
if (e.isBefore(i)) {
|
||||
failure += "You cannot have your expiry date before your date of issue.\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
return failure;
|
||||
}
|
||||
|
||||
public boolean validate(){
|
||||
String failure = "";
|
||||
failure += validateLicense(number.getText());
|
||||
failure += validateIssue(issue.getValue());
|
||||
failure += validateExpire(expiry.getValue(), issue.getValue());
|
||||
if (failure.equals("")){
|
||||
return true;
|
||||
}else{
|
||||
popUp(Alert.AlertType.WARNING, "Error!", "Your details are not valid for the following reasons.", failure);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void createAccount(){
|
||||
if (validate()){
|
||||
Driver.LicenseType lc = Driver.LicenseType.getValueOf(licenseType.getValue());
|
||||
Driver driver = new Driver(studentNumber, email, password, address,homephone, mobilephone, photoStored, lc, number.getText(), issue.getValue(), expiry.getValue());
|
||||
if (Session.session.getDataManager().addDriver(driver)){
|
||||
popUp(Alert.AlertType.CONFIRMATION, "Success!", "Your Account has been made.", "You can now log in and will be redirected the the title screen after.");
|
||||
try {
|
||||
changeScene(SceneCode.MAIN);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}else {
|
||||
popUp(Alert.AlertType.WARNING, "Error!", "There is already an passenger with this id.", "You will be redirected to the homescreen to log in.");
|
||||
try {
|
||||
changeScene(SceneCode.MAIN);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(URL location, ResourceBundle resources) {
|
||||
ObservableList<String> licenseTypes = FXCollections.observableArrayList();
|
||||
licenseTypes.addAll(Driver.LicenseType.RESTRICTED.name, Driver.LicenseType.FULL.name, Driver.LicenseType.FULL2YEARS.name);
|
||||
licenseType.setItems(licenseTypes);
|
||||
licenseType.getSelectionModel().select(0);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import java.lang.*?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<?import javafx.scene.text.*?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.layout.ColumnConstraints?>
|
||||
<?import javafx.scene.layout.GridPane?>
|
||||
<?import javafx.scene.layout.RowConstraints?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<AnchorPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="controllers.RegisterDriverController">
|
||||
<children>
|
||||
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="0.0" prefWidth="75.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="0.0" prefWidth="75.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="60.0" minHeight="10.0" prefHeight="60.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="300.0" minHeight="10.0" prefHeight="300.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Register for UC Ride Sharing System" GridPane.columnSpan="3" GridPane.halignment="CENTER" GridPane.rowIndex="1">
|
||||
<font>
|
||||
<Font size="22.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="2">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="10.0" prefWidth="120.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="10.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="License Type:" />
|
||||
<ComboBox fx:id="licenseType" prefWidth="150.0" GridPane.columnIndex="1" />
|
||||
<Label text="License Number:" GridPane.rowIndex="1" />
|
||||
<TextField fx:id="number" GridPane.columnIndex="1" GridPane.rowIndex="1" />
|
||||
<Label text="Issue Date:" GridPane.rowIndex="2" />
|
||||
<Label text="Expiry Date:" GridPane.rowIndex="3" />
|
||||
<Button mnemonicParsing="false" onAction="#createAccount" text="Finish" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="4" />
|
||||
<DatePicker fx:id="issue" GridPane.columnIndex="1" GridPane.rowIndex="2" />
|
||||
<DatePicker fx:id="expiry" GridPane.columnIndex="1" GridPane.rowIndex="3" />
|
||||
</children>
|
||||
</GridPane>
|
||||
</children>
|
||||
</GridPane>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import java.lang.*?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<?import javafx.scene.text.*?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.layout.ColumnConstraints?>
|
||||
<?import javafx.scene.layout.GridPane?>
|
||||
<?import javafx.scene.layout.RowConstraints?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<AnchorPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="controllers.RegisterDriverController">
|
||||
<children>
|
||||
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="0.0" prefWidth="75.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="0.0" prefWidth="75.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="60.0" minHeight="10.0" prefHeight="60.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="300.0" minHeight="10.0" prefHeight="300.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Register for UC Ride Sharing System" GridPane.columnSpan="3" GridPane.halignment="CENTER" GridPane.rowIndex="1">
|
||||
<font>
|
||||
<Font size="22.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="2">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="10.0" prefWidth="120.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="10.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="License Type:" />
|
||||
<ComboBox fx:id="licenseType" prefWidth="150.0" GridPane.columnIndex="1" />
|
||||
<Label text="License Number:" GridPane.rowIndex="1" />
|
||||
<TextField fx:id="number" GridPane.columnIndex="1" GridPane.rowIndex="1" />
|
||||
<Label text="Issue Date:" GridPane.rowIndex="2" />
|
||||
<Label text="Expiry Date:" GridPane.rowIndex="3" />
|
||||
<Button mnemonicParsing="false" onAction="#createAccount" text="Finish" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="4" />
|
||||
<DatePicker fx:id="issue" GridPane.columnIndex="1" GridPane.rowIndex="2" />
|
||||
<DatePicker fx:id="expiry" GridPane.columnIndex="1" GridPane.rowIndex="3" />
|
||||
</children>
|
||||
</GridPane>
|
||||
</children>
|
||||
</GridPane>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue