From 9bebe024b56701e44ff282e35ae0e3071b5a6925 Mon Sep 17 00:00:00 2001 From: Sherwin Price Date: Fri, 3 Oct 2025 15:00:27 -0400 Subject: [PATCH] changes --- README.md | 4 + src/main/java/lodge/TestMainFx.java | 2 +- .../java/lodge/TestMainFxAccountDialog.java | 76 ------------------- .../java/lodge/TestMainFxCommandDialog.java | 75 ++++++++++++++++++ ...entController.java => TestMainFxView.java} | 23 ++++-- ...tdialog.fxml => dialogCommandAddress.fxml} | 22 +++--- .../media/{main.fxml => mainViewModel.fxml} | 10 ++- 7 files changed, 114 insertions(+), 98 deletions(-) delete mode 100644 src/main/java/lodge/TestMainFxAccountDialog.java create mode 100644 src/main/java/lodge/TestMainFxCommandDialog.java rename src/main/java/lodge/{TestMainFxCommandButtonEventController.java => TestMainFxView.java} (75%) rename src/resources/media/{accountdialog.fxml => dialogCommandAddress.fxml} (75%) rename src/resources/media/{main.fxml => mainViewModel.fxml} (94%) diff --git a/README.md b/README.md index b1594d9..dc06cc0 100644 --- a/README.md +++ b/README.md @@ -28,3 +28,7 @@ Install Graphviz in your OS dot -Tsvg classdiagram.dot -o classdiagram.svg +### build a list of accomodations + +https://earth.google.com/web : to find building address +https://www.unitedstateszipcodes.org/ : to check zipcodes \ No newline at end of file diff --git a/src/main/java/lodge/TestMainFx.java b/src/main/java/lodge/TestMainFx.java index 96e9da3..24170e1 100644 --- a/src/main/java/lodge/TestMainFx.java +++ b/src/main/java/lodge/TestMainFx.java @@ -11,7 +11,7 @@ public class TestMainFx extends Application { public void start(Stage primaryStage) { try { primaryStage.setTitle("Lodge ReservationSystem"); - Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("main.fxml")); + Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("mainViewModel.fxml")); Scene scene = new Scene(root, 800, 600); primaryStage.setScene(scene); primaryStage.show(); diff --git a/src/main/java/lodge/TestMainFxAccountDialog.java b/src/main/java/lodge/TestMainFxAccountDialog.java deleted file mode 100644 index 8a1f812..0000000 --- a/src/main/java/lodge/TestMainFxAccountDialog.java +++ /dev/null @@ -1,76 +0,0 @@ -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 TestMainFxAccountDialog 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 TestMainFxAccountDialog() { - 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 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(aRC); - } -} diff --git a/src/main/java/lodge/TestMainFxCommandDialog.java b/src/main/java/lodge/TestMainFxCommandDialog.java new file mode 100644 index 0000000..f7bdb60 --- /dev/null +++ b/src/main/java/lodge/TestMainFxCommandDialog.java @@ -0,0 +1,75 @@ +package lodge; + +import java.io.IOException; + +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.control.ButtonType; +import javafx.scene.control.Dialog; +import javafx.scene.control.TextField; +import javafx.util.Callback; +import lodge.datamodel.Address; + +public class TestMainFxCommandDialog extends Dialog
{ + + @FXML + private TextField tfStreet; + @FXML + private TextField tfCity; + @FXML + private TextField tfState; + @FXML + private TextField tfZip; + + public TestMainFxCommandDialog() { + super(); + + FXMLLoader fxmlLoader = new FXMLLoader(getClass().getClassLoader().getResource("dialogCommandAddress.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("AccomodationAddress Dialog"); + setHeaderText("Enter Inventory Details"); + setPropertyBindings(); + setResultConverter(); + } + + private void setPropertyBindings() { + System.out.println("setPropertyBindings called."); + } + + private void setResultConverter() { + System.out.println("setResultConverter called."); + Callback aRC = (buttonType) -> { + if (buttonType == ButtonType.OK) { + if(getStreet().isEmpty() || getCity().isEmpty() || getState().isEmpty() || getZip().isEmpty()) { + return null; + } + return new Address(getStreet(), getCity(), getState(), getZip()); + } + return null; + }; + setResultConverter(aRC); + } + + private String getZip() { + return tfZip.getText(); + } + + private String getState() { + return tfState.getText(); + } + + private String getCity() { + return tfCity.getText(); + } + + private String getStreet() { + return tfStreet.getText(); + } +} diff --git a/src/main/java/lodge/TestMainFxCommandButtonEventController.java b/src/main/java/lodge/TestMainFxView.java similarity index 75% rename from src/main/java/lodge/TestMainFxCommandButtonEventController.java rename to src/main/java/lodge/TestMainFxView.java index 7989ec9..15def00 100644 --- a/src/main/java/lodge/TestMainFxCommandButtonEventController.java +++ b/src/main/java/lodge/TestMainFxView.java @@ -14,15 +14,15 @@ import javafx.scene.control.TableView; import javafx.scene.control.cell.PropertyValueFactory; import lodge.datamodel.Address; -public class TestMainFxCommandButtonEventController { +public class TestMainFxView { @FXML private Button btnAdd; @FXML - private TableView tvInventory; + private TableView
tvInventory; - private final ObservableList
rows = FXCollections.observableArrayList(); + private final ObservableList
rows = FXCollections.observableArrayList(); @FXML private void initialize() { @@ -30,12 +30,16 @@ public class TestMainFxCommandButtonEventController { 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")); + rows.add(new Address("160 Canal Road", "South Bethany", "Delaware", "19930")); TableColumn tcStreet = new TableColumn<>("Street"); TableColumn tcCity = new TableColumn<>("City"); TableColumn tcState = new TableColumn<>("State"); TableColumn tcZip = new TableColumn<>("Zip"); + List> columns = new ArrayList<>(); + + tcStreet.setPrefWidth( 100.0d ); tcStreet.setMinWidth(100.0d); tcCity.setPrefWidth( 100.0d ); @@ -47,21 +51,28 @@ public class TestMainFxCommandButtonEventController { tcState.setCellValueFactory(new PropertyValueFactory("state")); tcZip.setCellValueFactory(new PropertyValueFactory("zip")); - tvInventory.itemsProperty().bind( new SimpleObjectProperty<>(rows) ); tvInventory.getColumns().clear(); - tvInventory.getColumns().addAll(tcStreet, tcCity, tcState, tcZip); + columns.add(tcStreet); + columns.add(tcCity); + columns.add(tcState); + columns.add(tcZip); + + tvInventory.getColumns().addAll(columns); + tvInventory.itemsProperty().bind( new SimpleObjectProperty<>(rows) ); btnAdd.setOnAction((ev) -> { - TestMainFxAccountDialog accomodationDialog = new TestMainFxAccountDialog(); + TestMainFxCommandDialog accomodationDialog = new TestMainFxCommandDialog(); Optional result = accomodationDialog.showAndWait(); if (result.isPresent()) { System.out.println("result is present."); // add to storage + rows.add((Address) result.get()); // bind to model + tvInventory.refresh(); } }); diff --git a/src/resources/media/accountdialog.fxml b/src/resources/media/dialogCommandAddress.fxml similarity index 75% rename from src/resources/media/accountdialog.fxml rename to src/resources/media/dialogCommandAddress.fxml index 0c51ed1..3c0c7ca 100644 --- a/src/resources/media/accountdialog.fxml +++ b/src/resources/media/dialogCommandAddress.fxml @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ - +