// Path: src/Controller/AccountController.java
// public class AccountController implements Initializable
// {
//     @FXML private TextField account_no;
//     @FXML private TextField salutation;
//     @FXML private TextField full_name;
//     @FXML private TextField email;
//     @FXML private CheckBox fam_last;
//     @FXML private Button submit;
//     @FXML private GridPane pane;
// 
//     private Account account;
//     private boolean success = false;
// 
//     public Account getAccount()
//     {
//         return account;
//     }
// 
//     public boolean isSuccess()
//     {
//         return success;
//     }
// 
//     /**
//      * Handle changes to the text fields
//      */
//     public void handleChange()
//     {
//         if (Person.validSalutation(this.salutation.getText().trim()) &&
//                 Person.validName(this.full_name.getText().trim()) &&
//                 (this.email.getText().trim().isEmpty() || Person.validEmail(this.email.getText().trim())) &&
//                 !account_no.getText().trim().isEmpty())
// 
//             this.submit.setDisable(false);
//     }
// 
//     /**
//      * Validate data in the Salutation field
//      */
//     public void validateSalutation()
//     {
//         if (!Person.validSalutation(this.salutation.getText().trim()))
//         {
//             this.salutation.setStyle("-fx-text-box-border:red;");
//             this.submit.setDisable(true);
//         } else
//         {
//             this.salutation.setStyle("");
//             this.handleChange();
//         }
//     }
// 
//     /**
//      * Validate data in the Name field
//      */
//     public void validateName()
//     {
//         if (!Person.validName(this.full_name.getText().trim()))
//         {
//             this.full_name.setStyle("-fx-text-box-border:red;");
//             this.submit.setDisable(true);
//         } else
//         {
//             this.full_name.setStyle("");
//             this.handleChange();
//         }
//     }
// 
//     /**
//      * Validate data in the Email field
//      */
//     public void validateEmail()
//     {
//         if (this.email.getText().trim().isEmpty() || Person.validEmail(this.email.getText().trim()))
//         {
//             this.email.setStyle("");
//             this.handleChange();
//         } else
//         {
//             this.email.setStyle("-fx-text-box-border:red;");
//             this.submit.setDisable(true);
//         }
//     }
// 
//     /**
//      * Validate data in the Account Number field
//      */
//     public void validateNumber()
//     {
//         if (account_no.getText().trim().isEmpty())
//             this.submit.setDisable(true);
//         else
//             this.handleChange();
//     }
// 
//     /**
//      * Submit the form and create a new Account
//      */
//     public void handleSubmit()
//     {
//         Person p = new Person(this.salutation.getText().trim(), this.full_name.getText().trim(),
//                 this.fam_last.isSelected());
// 
//         if (!this.email.getText().trim().isEmpty())
//             p.setEmail(this.email.getText().trim());
// 
//         this.account = new Account(p, this.account_no.getText().trim());
//         this.success = true;
//         Stage stage = (Stage) this.submit.getScene().getWindow();
//         stage.close();
//     }
// 
//     /**
//      * Handle Quit button
//      */
//     public void handleQuit()
//     {
//         Stage stage = (Stage) this.submit.getScene().getWindow();
//         stage.close();
//     }
// 
//     @Override
//     public void initialize(URL location, ResourceBundle resources)
//     {
//         Platform.runLater(() -> this.pane.requestFocus());
//     }
// }


import Controller.AccountController;
import javafx.application.Platform;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.input.MouseButton;
import javafx.stage.Stage;
import org.junit.After;
import org.testfx.api.FxToolkit;
import org.testfx.framework.junit.ApplicationTest;
import java.util.concurrent.TimeoutException;
package View;





/**
 * PearPlanner
 * Created by Team BRONZE on 08/05/2017
 */
public abstract class FXBase extends ApplicationTest {



    @Override
    public void start(Stage stage) throws Exception
    {

        AccountController accountControl = new AccountController();
        FXMLLoader loader = new FXMLLoader(getClass().getResource("CreateAccount.fxml"));
        loader.setController(accountControl);
        Parent root = loader.load();

        stage.setOnCloseRequest(e -> {
            Platform.exit();
            System.exit(0);
        });

        Scene scene = new Scene(root, 550, 232);

        stage.setScene(scene);

        stage.show();
    }

    @After
    public void afterEachTest() throws TimeoutException
    {
       FxToolkit.hideStage();
// Path: src/Controller/AccountController.java
// public class AccountController implements Initializable
// {
//     @FXML private TextField account_no;
//     @FXML private TextField salutation;
//     @FXML private TextField full_name;
//     @FXML private TextField email;
//     @FXML private CheckBox fam_last;
//     @FXML private Button submit;
//     @FXML private GridPane pane;
// 
//     private Account account;
//     private boolean success = false;
// 
//     public Account getAccount()
//     {
//         return account;
//     }
// 
//     public boolean isSuccess()
//     {
//         return success;
//     }
// 
//     /**
//      * Handle changes to the text fields
//      */
//     public void handleChange()
//     {
//         if (Person.validSalutation(this.salutation.getText().trim()) &&
//                 Person.validName(this.full_name.getText().trim()) &&
//                 (this.email.getText().trim().isEmpty() || Person.validEmail(this.email.getText().trim())) &&
//                 !account_no.getText().trim().isEmpty())
// 
//             this.submit.setDisable(false);
//     }
// 
//     /**
//      * Validate data in the Salutation field
//      */
//     public void validateSalutation()
//     {
//         if (!Person.validSalutation(this.salutation.getText().trim()))
//         {
//             this.salutation.setStyle("-fx-text-box-border:red;");
//             this.submit.setDisable(true);
//         } else
//         {
//             this.salutation.setStyle("");
//             this.handleChange();
//         }
//     }
// 
//     /**
//      * Validate data in the Name field
//      */
//     public void validateName()
//     {
//         if (!Person.validName(this.full_name.getText().trim()))
//         {
//             this.full_name.setStyle("-fx-text-box-border:red;");
//             this.submit.setDisable(true);
//         } else
//         {
//             this.full_name.setStyle("");
//             this.handleChange();
//         }
//     }
// 
//     /**
//      * Validate data in the Email field
//      */
//     public void validateEmail()
//     {
//         if (this.email.getText().trim().isEmpty() || Person.validEmail(this.email.getText().trim()))
//         {
//             this.email.setStyle("");
//             this.handleChange();
//         } else
//         {
//             this.email.setStyle("-fx-text-box-border:red;");
//             this.submit.setDisable(true);
//         }
//     }
// 
//     /**
//      * Validate data in the Account Number field
//      */
//     public void validateNumber()
//     {
//         if (account_no.getText().trim().isEmpty())
//             this.submit.setDisable(true);
//         else
//             this.handleChange();
//     }
// 
//     /**
//      * Submit the form and create a new Account
//      */
//     public void handleSubmit()
//     {
//         Person p = new Person(this.salutation.getText().trim(), this.full_name.getText().trim(),
//                 this.fam_last.isSelected());
// 
//         if (!this.email.getText().trim().isEmpty())
//             p.setEmail(this.email.getText().trim());
// 
//         this.account = new Account(p, this.account_no.getText().trim());
//         this.success = true;
//         Stage stage = (Stage) this.submit.getScene().getWindow();
//         stage.close();
//     }
// 
//     /**
//      * Handle Quit button
//      */
//     public void handleQuit()
//     {
//         Stage stage = (Stage) this.submit.getScene().getWindow();
//         stage.close();
//     }
// 
//     @Override
//     public void initialize(URL location, ResourceBundle resources)
//     {
//         Platform.runLater(() -> this.pane.requestFocus());
//     }
// }


// Path: Test/View/FXBase.java
import Controller.AccountController;
import javafx.application.Platform;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.input.MouseButton;
import javafx.stage.Stage;
import org.junit.After;
import org.testfx.api.FxToolkit;
import org.testfx.framework.junit.ApplicationTest;
import java.util.concurrent.TimeoutException;

package View;





/**
 * PearPlanner
 * Created by Team BRONZE on 08/05/2017
 */
public abstract class FXBase extends ApplicationTest {



    @Override
    public void start(Stage stage) throws Exception
    {

        AccountController accountControl = new AccountController();
        FXMLLoader loader = new FXMLLoader(getClass().getResource("CreateAccount.fxml"));
        loader.setController(accountControl);
        Parent root = loader.load();

        stage.setOnCloseRequest(e -> {
            Platform.exit();
            System.exit(0);
        });

        Scene scene = new Scene(root, 550, 232);

        stage.setScene(scene);

        stage.show();
    }

    @After
    public void afterEachTest() throws TimeoutException
    {
       FxToolkit.hideStage();
       release(new KeyCode[]{});