This commit is contained in:
2025-10-03 01:00:03 -04:00
parent 1e078ef500
commit d18e1acc24
6 changed files with 63 additions and 18 deletions

View File

@@ -15,6 +15,7 @@ public class TestMainFx extends Application {
Scene scene = new Scene(root, 800, 600);
primaryStage.setScene(scene);
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}

View File

@@ -11,7 +11,7 @@ import lodge.datamodel.Account;
import lodge.datamodel.Address;
import lodge.datamodel.EmailAddress;
public class AccountDialog extends Dialog<Account> {
public class TestMainFxAccountDialog extends Dialog<Account> {
private Address mailingAddress;
private EmailAddress emailAddress;
@@ -41,7 +41,7 @@ public class AccountDialog extends Dialog<Account> {
this.phoneNumber = phoneNumber;
}
public AccountDialog() {
public TestMainFxAccountDialog() {
super();
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getClassLoader().getResource("accountdialog.fxml"));
@@ -65,12 +65,12 @@ public class AccountDialog extends Dialog<Account> {
private void setResultConverter() {
System.out.println("setResultConverter called.");
Callback<ButtonType, Account> accountResultConverter = (buttonType) -> {
if (buttonType == ButtonType.OK) {
Callback<ButtonType, Account> aRC = (buttonType) -> {
if (buttonType == ButtonType.OK && mailingAddress != null && getEmailAddress().getEmail_address().trim().length() > 0 && getPhoneNumber().trim().length() > 0) {
return new Account(phoneNumber, mailingAddress, emailAddress);
}
return null;
};
setResultConverter(accountResultConverter);
setResultConverter(aRC);
}
}

View File

@@ -1,29 +1,65 @@
package lodge;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import javafx.application.Platform;
import javafx.beans.property.SimpleObjectProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.control.Button;
import lodge.datamodel.Account;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import lodge.datamodel.Address;
public class TestMainFxCommandButtonEventController {
@FXML
private Button btnAdd;
@FXML
private TableView tvInventory;
private final ObservableList<Address> rows = FXCollections.observableArrayList();
@FXML
private void initialize() {
rows.add(new Address("10 wilco ave", "wilco", "WY", "82801"));
rows.add(new Address("30 Amstadam ave", "New York", "NY", "12010"));
rows.add(new Address("400 hotel ave", "Maryland City", "MD", "20723"));
TableColumn<Address, String> tcStreet = new TableColumn<>("Street");
TableColumn<Address, String> tcCity = new TableColumn<>("City");
TableColumn<Address, String> tcState = new TableColumn<>("State");
TableColumn<Address, String> tcZip = new TableColumn<>("Zip");
tcStreet.setPrefWidth( 100.0d );
tcStreet.setMinWidth(100.0d);
tcCity.setPrefWidth( 100.0d );
tcState.setPrefWidth( 100.0d );
tcZip.setPrefWidth( 100.0d );
tcStreet.setCellValueFactory(new PropertyValueFactory<Address, String>("street"));
tcCity.setCellValueFactory(new PropertyValueFactory<Address, String>("city"));
tcState.setCellValueFactory(new PropertyValueFactory<Address, String>("state"));
tcZip.setCellValueFactory(new PropertyValueFactory<Address, String>("zip"));
tvInventory.itemsProperty().bind( new SimpleObjectProperty<>(rows) );
tvInventory.getColumns().clear();
tvInventory.getColumns().addAll(tcStreet, tcCity, tcState, tcZip);
btnAdd.setOnAction((ev) -> {
AccountDialog accomodationDialog= new AccountDialog();
TestMainFxAccountDialog accomodationDialog = new TestMainFxAccountDialog();
Optional result = accomodationDialog.showAndWait();
if( result.isPresent()){
if (result.isPresent()) {
System.out.println("result is present.");
// add to storage
// bind to model
}

View File

@@ -14,8 +14,8 @@ public final class Address{
/** not used
*
*/
@SuppressWarnings("unused")
private Address() {
public Address() {
}
public Address(String street, String city, String state, String zip) {