diff --git a/.gradle/9.3.1/checksums/checksums.lock b/.gradle/9.3.1/checksums/checksums.lock index f257aad..ef411d9 100755 Binary files a/.gradle/9.3.1/checksums/checksums.lock and b/.gradle/9.3.1/checksums/checksums.lock differ diff --git a/.gradle/9.3.1/checksums/sha1-checksums.bin b/.gradle/9.3.1/checksums/sha1-checksums.bin index 65ead6a..3dc6aae 100755 Binary files a/.gradle/9.3.1/checksums/sha1-checksums.bin and b/.gradle/9.3.1/checksums/sha1-checksums.bin differ diff --git a/.gradle/9.3.1/executionHistory/executionHistory.bin b/.gradle/9.3.1/executionHistory/executionHistory.bin index a38f978..2828a91 100755 Binary files a/.gradle/9.3.1/executionHistory/executionHistory.bin and b/.gradle/9.3.1/executionHistory/executionHistory.bin differ diff --git a/.gradle/9.3.1/executionHistory/executionHistory.lock b/.gradle/9.3.1/executionHistory/executionHistory.lock index e6f37f4..acffcc0 100755 Binary files a/.gradle/9.3.1/executionHistory/executionHistory.lock and b/.gradle/9.3.1/executionHistory/executionHistory.lock differ diff --git a/.gradle/9.3.1/fileHashes/fileHashes.bin b/.gradle/9.3.1/fileHashes/fileHashes.bin index c7cbe9b..bbb97af 100755 Binary files a/.gradle/9.3.1/fileHashes/fileHashes.bin and b/.gradle/9.3.1/fileHashes/fileHashes.bin differ diff --git a/.gradle/9.3.1/fileHashes/fileHashes.lock b/.gradle/9.3.1/fileHashes/fileHashes.lock index 53ee383..61d6fee 100755 Binary files a/.gradle/9.3.1/fileHashes/fileHashes.lock and b/.gradle/9.3.1/fileHashes/fileHashes.lock differ diff --git a/.gradle/9.3.1/fileHashes/resourceHashesCache.bin b/.gradle/9.3.1/fileHashes/resourceHashesCache.bin index 2517f8b..96cd4c2 100755 Binary files a/.gradle/9.3.1/fileHashes/resourceHashesCache.bin and b/.gradle/9.3.1/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 33ff32a..902cb81 100755 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index a66d22f..00232f6 100755 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/.settings/org.eclipse.buildship.core.prefs b/.settings/org.eclipse.buildship.core.prefs index 978c16a..e479558 100644 --- a/.settings/org.eclipse.buildship.core.prefs +++ b/.settings/org.eclipse.buildship.core.prefs @@ -1,13 +1,13 @@ -arguments=--init-script C\:\\Users\\sherw\\AppData\\Roaming\\VSCodium\\User\\globalStorage\\redhat.java\\1.52.0\\config_win\\org.eclipse.osgi\\58\\0\\.cp\\gradle\\init\\init.gradle --init-script C\:\\Users\\sherw\\AppData\\Roaming\\VSCodium\\User\\globalStorage\\redhat.java\\1.52.0\\config_win\\org.eclipse.osgi\\58\\0\\.cp\\gradle\\protobuf\\init.gradle -auto.sync=true +arguments= +auto.sync=false build.scans.enabled=false connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) connection.project.dir= eclipse.preferences.version=1 gradle.user.home= -java.home=C\:/Program Files/jdk-26 +java.home= jvm.arguments= offline.mode=false -override.workspace.settings=true -show.console.view=true -show.executions.view=true +override.workspace.settings=false +show.console.view=false +show.executions.view=false diff --git a/src/main/java/edu/bookocontacts/ControlDDXDialog.java b/src/main/java/edu/bookocontacts/ControlDDXDialog.java index 38cb2d6..aa7262e 100644 --- a/src/main/java/edu/bookocontacts/ControlDDXDialog.java +++ b/src/main/java/edu/bookocontacts/ControlDDXDialog.java @@ -64,7 +64,7 @@ public class ControlDDXDialog extends Dialog { Callback aRC = (buttonType) -> { if (buttonType == ButtonType.OK) { - if (getFirstName().isBlank() && (getEmail().isBlank() || getPhoneNumber().isBlank())) { + if (getFirstName().isBlank() && (getEmail().isBlank() || getPhoneNo().isBlank())) { return null; } if (getFirstName().isBlank() || getStreet().isEmpty() || getCity().isEmpty() || getState().isEmpty() @@ -72,8 +72,8 @@ public class ControlDDXDialog extends Dialog { return null; } - return new Contact(getFirstName(), getLastName(), new PhoneNumber(getPhoneNumber()), - new EmailAddress(getEmail()), new Address(getStreet(), getCity(), getState(), getZip())); + return new Contact(getFirstName(), getLastName(), new EmailAddress(getEmail()), + new PhoneNumber(getPhoneNo()), new Address(getStreet(), getCity(), getState(), getZip())); } return null; }; @@ -88,7 +88,7 @@ public class ControlDDXDialog extends Dialog { return ""; } - private String getPhoneNumber() { + private String getPhoneNo() { return ""; } diff --git a/src/main/java/edu/bookocontacts/ViewController.java b/src/main/java/edu/bookocontacts/ViewController.java index bdaa22e..81eb11e 100755 --- a/src/main/java/edu/bookocontacts/ViewController.java +++ b/src/main/java/edu/bookocontacts/ViewController.java @@ -10,6 +10,7 @@ import java.util.logging.Logger; import edu.bookocontacts.model.Factory; import edu.bookocontacts.model.Person; import edu.bookocontacts.model.Address; +import edu.bookocontacts.model.PhoneNumber; import edu.bookocontacts.model.Contact; import java.net.URL; @@ -42,29 +43,24 @@ public class ViewController implements Initializable { Logger logger = Logger.getLogger(getClass().getName()); @FXML - private TableView personView = new TableView<>(); + private TableView personView = new TableView<>(); @FXML - private TableColumn personViewIdCol; + private TableColumn personViewIdCol; @FXML - private TableColumn personViewNameCol; + private TableColumn personViewNameCol; @FXML - private TableColumn personViewAgeCol; + private TableColumn personViewPhoneNoCol; @FXML Pagination pagination; @FXML private Button save; - @FXML - private TextField idTxt; - @FXML - private TextField nameTxt; - @FXML - private TextField ageTxt; + private Button id = new Button("ID"); private ImageView upImg = new ImageView(new Image("/media/up.png")); private ImageView downImg = new ImageView(new Image("/media/down.png")); - private ObservableList persons = null; + private ObservableList contacts = null; private int pageCount = 5; private int itemsPerPage = 4; @@ -72,7 +68,7 @@ public class ViewController implements Initializable { private boolean order = true; private void log(String message) { - logger.log(Level.FINE, message); + logger.log(Level.INFO, message); } /** @@ -80,12 +76,12 @@ public class ViewController implements Initializable { */ public void initialize(URL location, ResourceBundle resources) { log("initialize"); - persons = FXCollections.observableArrayList(Factory.getAll(new Person())); - log(String.format("Person size: %d", persons.size())); + contacts = FXCollections.observableArrayList(Factory.getAll(new Contact())); + log(String.format("Person size: %d", contacts.size())); sort(); initializeTable(); - pageCount = getPageCount(persons.size(), itemsPerPage); + pageCount = getPageCount(contacts.size(), itemsPerPage); log("pageCount=" + pageCount); pagination.setPageCount(pageCount); @@ -108,9 +104,9 @@ public class ViewController implements Initializable { Optional result = dialog.showAndWait(); if (result.isPresent()) { - System.out.println("result is present."); + log("result is present."); // add to storage - // persons.add((Address) result.get()); + // contacts.add((Address) result.get()); // bind to model // tvInventory.refresh(); // @@ -126,9 +122,9 @@ public class ViewController implements Initializable { public void handle(javafx.event.ActionEvent t) { sort(); if (order) { - Collections.reverse(persons); + Collections.reverse(contacts); } - log(" order = " + order + "; data = " + persons); + log(" order = " + order + "; data = " + contacts); order = !order; id.setGraphic((order) ? upImg : downImg); updatePersonView(); @@ -138,9 +134,9 @@ public class ViewController implements Initializable { } private void sort() { - Collections.sort(persons, new Comparator() { + Collections.sort(contacts, new Comparator() { @Override - public int compare(Person t, Person t1) { + public int compare(Contact t, Contact t1) { log(" comparator called"); return t.getId().compareTo(t1.getId()); } @@ -148,20 +144,20 @@ public class ViewController implements Initializable { } public void updatePersonView() { - log("updatePersonView"); + log("update View"); personView.getItems() - .setAll(persons.subList(currentPageIndex * itemsPerPage, - ((currentPageIndex * itemsPerPage + itemsPerPage <= persons.size()) + .setAll(contacts.subList(currentPageIndex * itemsPerPage, + ((currentPageIndex * itemsPerPage + itemsPerPage <= contacts.size()) ? currentPageIndex * itemsPerPage + itemsPerPage - : persons.size()))); + : contacts.size()))); } private void initializeTable() { - personViewIdCol.setCellValueFactory(new PropertyValueFactory("Id")); + personViewIdCol.setCellValueFactory(new PropertyValueFactory("Id")); id.setGraphic(upImg); personViewIdCol.setGraphic(id); personViewIdCol.setSortable(false); - personViewNameCol.setCellValueFactory(new PropertyValueFactory("Name")); + personViewNameCol.setCellValueFactory(new PropertyValueFactory("Name")); personViewNameCol.sortTypeProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue paramObservableValue, SortType paramT1, @@ -170,10 +166,10 @@ public class ViewController implements Initializable { id.setGraphic(null); } }); - personViewAgeCol.setCellValueFactory(new PropertyValueFactory("Age")); - personViewAgeCol.setText("AGE"); - personViewAgeCol.setSortable(false); - personView.getItems().setAll(persons.subList(0, itemsPerPage)); + personViewPhoneNoCol.setCellValueFactory(new PropertyValueFactory("PhoneNo")); + personViewPhoneNoCol.setText("PhoneNo"); + personViewPhoneNoCol.setSortable(false); + personView.getItems().setAll(contacts.subList(0, itemsPerPage)); } public int getItemsPerPage() { diff --git a/src/main/java/edu/bookocontacts/model/Contact.java b/src/main/java/edu/bookocontacts/model/Contact.java index ea66ab5..2d858d8 100644 --- a/src/main/java/edu/bookocontacts/model/Contact.java +++ b/src/main/java/edu/bookocontacts/model/Contact.java @@ -23,7 +23,7 @@ public class Contact { this.last_name = last_name; } - public Contact(String first_name, String last_name, PhoneNumber phone_number, EmailAddress email_address, + public Contact(String first_name, String last_name, EmailAddress email_address, PhoneNumber phone_number, Address mailing_address) throws IllegalArgumentException { this.phone_number = phone_number; @@ -33,14 +33,8 @@ public class Contact { this.first_name = first_name; this.last_name = last_name; - if (phone_number == null) { - throw new IllegalArgumentException(String.format("%s %s", "Contact: requires phone number")); - } - if (mailing_address == null) { - throw new IllegalArgumentException(String.format("%s %s", "Contact: requires mailing address")); - } - if (email_address == null) { - throw new IllegalArgumentException(String.format("%s %s", "Contact: requires email address")); + if (this.first_name==null && (email_address.isBlank() || phone_number.isBlank())){ + throw new IllegalArgumentException(String.format("%s %s", "Contact: requires Phone Number or Email Address")); } this.phone_number = phone_number; @@ -122,7 +116,7 @@ public class Contact { this.last_name = last_name; } - public PhoneNumber getPhone_number() { + public PhoneNumber getPhoneNo() { return phone_number; } @@ -138,11 +132,11 @@ public class Contact { this.mailing_address = mailing_address; } - public EmailAddress getEmail_address() { + public EmailAddress getEmail() { return email_address; } - public void setEmail_address(EmailAddress email_address) { + public void setEmail(EmailAddress email_address) { this.email_address = email_address; } @@ -188,7 +182,7 @@ public class Contact { } public void update(Contact ct) { - this.setEmail_address(ct.email_address); + this.setEmail(ct.email_address); this.setPhone_number(ct.phone_number); this.setMailing_address(ct.mailing_address); } diff --git a/src/main/java/edu/bookocontacts/model/EmailAddress.java b/src/main/java/edu/bookocontacts/model/EmailAddress.java index 1c8cc16..95705ac 100644 --- a/src/main/java/edu/bookocontacts/model/EmailAddress.java +++ b/src/main/java/edu/bookocontacts/model/EmailAddress.java @@ -48,5 +48,10 @@ public class EmailAddress{ sb.append("}}"); return sb.toString(); } + + public boolean isBlank() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'isBlank'"); + } } diff --git a/src/main/java/edu/bookocontacts/model/Factory.java b/src/main/java/edu/bookocontacts/model/Factory.java index 60855f9..2d35951 100755 --- a/src/main/java/edu/bookocontacts/model/Factory.java +++ b/src/main/java/edu/bookocontacts/model/Factory.java @@ -46,11 +46,20 @@ public class Factory { public static List getAllContacts() { ArrayList list = new ArrayList<>(); + list.add(createContact(1, "Jose", "Cezone", "cezon50@yahoo.com", "410-456-9876")); + list.add(createContact(2,"Jack", "Bolt", "jbolt100@hotmail.com", "443-266-9776")); + list.add(createContact(3,"David", "Rossi", null, "210-356-9876")); + list.add(createContact(4, "Sheila", "Philster", null, "410-356-5876")); + list.add(createContact(5, "Adam", "Zhaine", null, "410-456-1876")); + list.add(createContact(6, "Amanda", "Kelstone", null, "410-456-2876")); + return list; } - static Person createContact(String _name, int _age) { - return new Person(Integer.toString(id++),_name, _age); + static Contact createContact(Integer id, String first_name, String last_name, String email, String phone_number) { + Contact c = new Contact(first_name, last_name, new EmailAddress(email), new PhoneNumber(phone_number), (Address)null); + c.setId(id); + return c; } } diff --git a/src/main/java/edu/bookocontacts/model/PhoneNumber.java b/src/main/java/edu/bookocontacts/model/PhoneNumber.java index 4e846b4..cba6466 100644 --- a/src/main/java/edu/bookocontacts/model/PhoneNumber.java +++ b/src/main/java/edu/bookocontacts/model/PhoneNumber.java @@ -5,6 +5,9 @@ public class PhoneNumber { public PhoneNumber(String phone_number) { this.phone_number = phone_number; + if( phone_number == null ){ + phone_number = ""; + } } public String getphone_number() { @@ -42,10 +45,10 @@ public class PhoneNumber { @Override public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("{ \"PhoneNumber\":{"); - sb.append("\"phone\": \"" + phone_number + "\""); - sb.append("}}"); - return sb.toString(); + return String.format("%s", phone_number); + } + + public boolean isBlank() { + return this.phone_number == null || this.phone_number.isBlank(); } } diff --git a/src/main/resources/media/TableView.fxml b/src/main/resources/media/TableView.fxml index f4c4d12..7185c3a 100755 --- a/src/main/resources/media/TableView.fxml +++ b/src/main/resources/media/TableView.fxml @@ -16,7 +16,7 @@ - +