add dialog

This commit is contained in:
2025-10-02 08:48:05 -04:00
parent f924528596
commit 980c1dc049
3 changed files with 150 additions and 1 deletions

View File

@@ -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<Account> {
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<ButtonType, Account> accountResultConverter = (buttonType) -> {
if (buttonType == ButtonType.OK) {
return new Account(phoneNumber, mailingAddress, emailAddress);
}
return null;
};
setResultConverter(accountResultConverter);
}
}

View File

@@ -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
}
});
}