diff --git a/.vscode/launch.json b/.vscode/launch.json index a766e5c..c2648b5 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -21,7 +21,7 @@ "request": "launch", "mainClass": "lodge.TestMainFx", "projectName": "reservationsystem", - "vmArgs": " --module-path .;${workspaceFolder}/libs;${workspaceFolder}/libs/win32 --add-modules ALL-MODULE-PATH --enable-native-access=javafx.web,javafx.controls,javafx.graphics -Dcom.sun.management.jmxremote=false -Djava.awt.headless=true -XX:+DisableAttachMechanism", + "vmArgs": " --module-path .:${workspaceFolder}/libs:${workspaceFolder}/libs/linux --add-modules ALL-MODULE-PATH --enable-native-access=javafx.web,javafx.controls,javafx.graphics -Dcom.sun.management.jmxremote=false -Djava.awt.headless=true -XX:+DisableAttachMechanism", "cwd": "${workspaceFolder}", "console": "integratedTerminal" }, diff --git a/src/main/java/lodge/TestMainFx.java b/src/main/java/lodge/TestMainFx.java index 0e88fb3..96e9da3 100644 --- a/src/main/java/lodge/TestMainFx.java +++ b/src/main/java/lodge/TestMainFx.java @@ -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(); } diff --git a/src/main/java/lodge/AccountDialog.java b/src/main/java/lodge/TestMainFxAccountDialog.java similarity index 83% rename from src/main/java/lodge/AccountDialog.java rename to src/main/java/lodge/TestMainFxAccountDialog.java index 59f3ecc..8a1f812 100644 --- a/src/main/java/lodge/AccountDialog.java +++ b/src/main/java/lodge/TestMainFxAccountDialog.java @@ -11,7 +11,7 @@ import lodge.datamodel.Account; import lodge.datamodel.Address; import lodge.datamodel.EmailAddress; -public class AccountDialog extends Dialog { +public class TestMainFxAccountDialog extends Dialog { private Address mailingAddress; private EmailAddress emailAddress; @@ -41,7 +41,7 @@ public class AccountDialog extends Dialog { 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 { private void setResultConverter() { System.out.println("setResultConverter called."); - Callback accountResultConverter = (buttonType) -> { - if (buttonType == ButtonType.OK) { + 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(accountResultConverter); + setResultConverter(aRC); } } diff --git a/src/main/java/lodge/TestMainFxCommandButtonEventController.java b/src/main/java/lodge/TestMainFxCommandButtonEventController.java index b89ec49..7989ec9 100644 --- a/src/main/java/lodge/TestMainFxCommandButtonEventController.java +++ b/src/main/java/lodge/TestMainFxCommandButtonEventController.java @@ -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
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 tcStreet = new TableColumn<>("Street"); + TableColumn tcCity = new TableColumn<>("City"); + TableColumn tcState = new TableColumn<>("State"); + TableColumn 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("street")); + tcCity.setCellValueFactory(new PropertyValueFactory("city")); + 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); + 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 } diff --git a/src/main/java/lodge/datamodel/Address.java b/src/main/java/lodge/datamodel/Address.java index 1bb622e..5168c38 100644 --- a/src/main/java/lodge/datamodel/Address.java +++ b/src/main/java/lodge/datamodel/Address.java @@ -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) { diff --git a/src/resources/media/main.fxml b/src/resources/media/main.fxml index fa2f22b..22a8c3b 100644 --- a/src/resources/media/main.fxml +++ b/src/resources/media/main.fxml @@ -36,8 +36,9 @@ - + + @@ -46,7 +47,7 @@ - + @@ -88,7 +89,14 @@ - + + + + + + + +