diff --git a/src/main/java/lodge/AccountDialog.java b/src/main/java/lodge/AccountDialog.java new file mode 100644 index 0000000..59f3ecc --- /dev/null +++ b/src/main/java/lodge/AccountDialog.java @@ -0,0 +1,76 @@ +package lodge; + +import java.io.IOException; + +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.control.ButtonType; +import javafx.scene.control.Dialog; +import javafx.util.Callback; +import lodge.datamodel.Account; +import lodge.datamodel.Address; +import lodge.datamodel.EmailAddress; + +public class AccountDialog extends Dialog { + + private Address mailingAddress; + private EmailAddress emailAddress; + private String phoneNumber; + + public Address getMailingAddress() { + return mailingAddress; + } + + public void setMailingAddress(Address mailingAddress) { + this.mailingAddress = mailingAddress; + } + + public EmailAddress getEmailAddress() { + return emailAddress; + } + + public void setEmailAddress(EmailAddress emailAddress) { + this.emailAddress = emailAddress; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public AccountDialog() { + super(); + + FXMLLoader fxmlLoader = new FXMLLoader(getClass().getClassLoader().getResource("accountdialog.fxml")); + fxmlLoader.setController(this); + try { + fxmlLoader.load(); + } catch (IOException exception) { + throw new RuntimeException(exception); + } + getDialogPane().setContent(fxmlLoader.getRoot()); + getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL); + setTitle("Account Dialog"); + setHeaderText("Enter Account Details"); + setPropertyBindings(); + setResultConverter(); + } + + private void setPropertyBindings() { + System.out.println("setPropertyBindings called."); + } + + private void setResultConverter() { + System.out.println("setResultConverter called."); + Callback accountResultConverter = (buttonType) -> { + if (buttonType == ButtonType.OK) { + return new Account(phoneNumber, mailingAddress, emailAddress); + } + return null; + }; + setResultConverter(accountResultConverter); + } +} diff --git a/src/main/java/lodge/TestMainFxCommandButtonEventController.java b/src/main/java/lodge/TestMainFxCommandButtonEventController.java index af55a37..b89ec49 100644 --- a/src/main/java/lodge/TestMainFxCommandButtonEventController.java +++ b/src/main/java/lodge/TestMainFxCommandButtonEventController.java @@ -1,8 +1,13 @@ package lodge; +import java.io.IOException; +import java.util.Optional; + import javafx.application.Platform; import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; import javafx.scene.control.Button; +import lodge.datamodel.Account; public class TestMainFxCommandButtonEventController { @@ -13,7 +18,16 @@ public class TestMainFxCommandButtonEventController { private void initialize() { btnAdd.setOnAction((ev) -> { - Platform.exit(); + + AccountDialog accomodationDialog= new AccountDialog(); + + Optional result = accomodationDialog.showAndWait(); + + if( result.isPresent()){ + // add to storage + // bind to model + } + }); } diff --git a/src/resources/media/accountdialog.fxml b/src/resources/media/accountdialog.fxml new file mode 100644 index 0000000..0c51ed1 --- /dev/null +++ b/src/resources/media/accountdialog.fxml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + +