From 787f83a68887a073aa3f3de422e47c88b4d01f4f Mon Sep 17 00:00:00 2001 From: Sherwin Price Date: Fri, 20 Feb 2026 10:40:36 -0500 Subject: [PATCH] update project. --- .../executionHistory/executionHistory.bin | Bin 126274 -> 126274 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/9.3.1/fileHashes/fileHashes.bin | Bin 28497 -> 28497 bytes .gradle/9.3.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes .settings/org.eclipse.buildship.core.prefs | 4 +- db/sample.db | Bin 12288 -> 12288 bytes readme.txt | 20 ++------ .../java/edu/bookocontacts/AppSceneView.java | 2 +- .../edu/bookocontacts/ControlDDXDialog.java | 6 +-- .../edu/bookocontacts/ViewController.java | 32 ++++++------- .../java/edu/bookocontacts/model/DATASET.java | 4 +- .../edu/bookocontacts/model/MailAddress.java | 43 ++++++++++++------ src/main/resources/media/TableView.fxml | 31 +++++++------ 15 files changed, 69 insertions(+), 73 deletions(-) diff --git a/.gradle/9.3.1/executionHistory/executionHistory.bin b/.gradle/9.3.1/executionHistory/executionHistory.bin index 7128eacfdbcad9aef5f1280e620ba31c777ba56e..871c4c5c06dc9e45f08e644b2f864f7527bd1f2e 100755 GIT binary patch delta 1094 zcmX?fi~Z0o_6;Vxbt;QYQ*+Z(%!-myl8tjJ%kz_RbE}F=3iC_^-n2} z`jhnoG#K?K1&UA34-mtvX8MFPjBeYT`Wg4IF>+5<_&s;~g?dI_w#k7X1E$yBV$1;r zru$@>$Gp=w%w=So?tGikeEQqDjB!GhQ~W;oN5;&_HvQUMvGvSM#uby-JyxFHFpn`& zVB!0PKc3eLC3rA)$?Q`p`ZoRJJjP}Lt2r(%uT?+ocsXk)?m%w$K^hpmG&8Po+&KM)aFjLK*$2e$nf3xXSuQHWJ z#$}TWUn@*o%*Z<3ZZV^|z_+W<_{ww_@Ale&Bb!K|wOGY{I-Z?=(nZN5MUkF>@|Li)mKuURiLWR4qO)|u}2icyW_?%Y#nrdPaT)L?lAV&y+(6qVTMc$sPIr)9C< z{!faVQI)#xG1#Jy{L?Rj%)7KKW{!KW>O24BX2YYGtm6B@Zv3J){ogA_Rq2OdwGVli z83d;62%Pml?UPKua*55?5BvX2w|mVfAra6he4fwcw2jpLyBBizZCrT_tl^{Z^t{)M zQX=0n*PL^>`bkCJ$17VQtylFi$QyHBGs;bGeZnZf^$2X&0ujdPlP4S&o4)l4qYw*7 z$+S0&aw31DJy);2^y1T{50}nl*2`W2DW3lK38PG4*0Jj=^-iwd^rhAP`7W7UW{{TS z#?6k*3#wZz(ARCC27&E!>pv+{8cV?3d z!=ypNtYG2E2e!#hKKG7~@zi9-3@MN}Ou52)oyn2gZD8C9@BJpfgmb4e3NuPfcTi+B zVmyzb@qoqjVs1wD$pPy)C-d**f|@YhK#5U}iE-ED#%-39e;zQIykn>B4{Zf4T<|06{bsGU=*Hw;l{M- zM=mf5Gv1wi@rK*veK*6WD^G!Q&s~WWJUr1nEuY`he_3#`{+x`^V@#7T+;E>HIW z^-GMxlOJE5KKX30AS3tW!h*S*A58Ei(cu!)_sw7wCe`(Zn=jl5VP@PvdE-&L={2_) zYoSR~eDa%h;?o^&GkQ%fpAJf^5P^%g8O4SA4sck`y7WEa^2Lj`;@W=O8COi-f16Q# zQU)lUg4L1z0Fy5e0_U2G7$rcb-e7=Y|nn7HvhMjvEb zVB%-)F}fj(Ye3BLP0Y-3Oi3w9EiQ(-KzM%Ra+?nV^HeVVmE1XZ*6itx_ZfANb;3-P zf6nNKEIz&e0izd+fWkvYQ6XRJzN@=l`1UW#_-oGVs*=dKY;xgig=vc!S(zBOPHx<0 zAPNdEfi~GRfz=u=dy9)!M-~-}|C@f}1)~<&w1OitlN~a7raQl6v|`zKtLOOi#+Qt8 z;_3khTFY+e>^>Lj;2)tlb=C7*J;#q5&zwH-5u>DdYIiL6jn&`GX1tlyBGlqO=MPwN z#`J@a7}Z7Oba&_fpH*k#X0_q3{`T)BGjI1CpRV|dQB>S;M{3^;A49uavo<}A-(B}> z#%++9&!_voVpM0D4^md~icy1QF^ENknT|gyN+Qn-5l*o@a9Sxg4zFBmeY^ zuNXxoI?WZ?k45}5V@bDe`L28_eivBwvdZ*-uNYOO_k(#4d6*dl9>0rLXiw(#UfuR- zR+olA@13D&vng&=QlyF`6xU+?=_>8$hXWj=NztnQjz!Z z%2r70Rh@sQ=lJwFuNmd0Pkq8Dz_s8GNbv#@#_5wM92T2?^a-O7%c46y$EUqvloRn5 zKk|ZS;)93E{@ssV*L^+)QaqjaDWgo_nR)x4AI_eUmh`Do9~Ah5GU z>z|5va`d%pdh6{ENzP?v5STObuEW0Dd$vB(`qo@*X;jb5ARv8-W%|luz3W+NPu*Cj je-fG$r^)yLTm}~$5t-b)S!i-eoH>({#dh9jjHc`Wd(XwM diff --git a/.gradle/9.3.1/executionHistory/executionHistory.lock b/.gradle/9.3.1/executionHistory/executionHistory.lock index 0c5718c1a0292bb77e43c3d7df8d47f511a6121b..3211043539715956317831178f812cb819ce91c6 100755 GIT binary patch literal 17 UcmZSXH>umx74fHr0Sp+e05xC)mH+?% literal 17 UcmZSXH>umx74fHr0Sp+;05x0$k^lez diff --git a/.gradle/9.3.1/fileHashes/fileHashes.bin b/.gradle/9.3.1/fileHashes/fileHashes.bin index b99c6a5dfdab499dbf3a6866d92fda275fcd9d9d..7046df881fccf061051638b700772b8a5c46f285 100755 GIT binary patch delta 683 zcmcb3kMZI?#toZeSSly=FPK~yt_NYn20 z@L=qc*{4$Uje&u2PGukG5(Y4kj-R|XzD$8(rkXvEanR=eX49!&Wh#xRiX?w7c1~bc zsGQ>W!9Ox)PPXaS=8COnW}+(M7ucMf9K;B5-Odyrg)bjY1RV*tP2JG3TW=@ttovxn z-%M6bEmN?X2^i z=~5CK9WOI&{j@Ch+y6;%GpbV8f%Q-7dptQXS1RaFZ{o|G^DWvMN!)AJix66%WzT&kxZdTrzomx*Eti&nC;~ zN=fYB*gB1OW3S$p-}2JBJ7rEmRkKaz&XDpttm1YgO0w8gcRgo!&$8P)V3H7{#DXy` zf5bdFXYQ9CUu;0TpKkL}_m3k*vZ~D^e{(P5AE;G~!s1AkZ$-J2$&-EuyuFaF0Y@8|Cv&oOOqWKA$ILd@tG`~Ey}#@wdrK-Y^llSsVS4avqZU9|M?5n%pkaV z^6u1kEEPxCA}6m+(*rRIC*OxK$|eh@OHH=S6=gocRz5i}S8B3-jwtsLwibw1X^F{^ zx$4|U*d{{wLcx>Qr>lWXm^xWLS88%$4oKsQ$=n%IlNUqTyK|%_-_8b!@0pyRAvKv7 zY~W>x0TPmv-{-2^9%1_j;j`akU|`TQW?*2@WME)W1YvBw`$;yH@P-XYO--2$f|#nz4N3bI%L=qmrYumY*tq%I(w_0KTPN3^?6d0 N?>zW%|7%3`@roS$o`;E`ICs^C(jqY#vzoL!cglamUz-4Fxo=$il$DpgXZpQ;v)OB?CAAHWvQ({J;6X@^9mR%zu~vI{yj& zi~M`|4{cUdn8EMG%FM{f#RnqAxk01^7l;()Wnf?cF~oR4Bp*A7{FnI~dH?aP;sW}7X<|)LvtfDdk%I+kZNak zka7*&%8d*yEX}Q1*%`&fRTrlx$)8Du6pN^n}Uf$e2*p1e;^RUY9gu%j3l7^0=cEuc;_ z1v||chtm`yIN2G+MOF0^*_;!Ta#Dlxi;GQ6jCD`$a$xr0eW@Kj+msC|{m@FZu zBEiM~l7Wr?IwSvk{@?sx`5*J&<-ZPsn-vwN@=t6~(Pw35WMt<6k$mhRl9vrc@~|>6 VFtBp5fY@xDAd-`bg_)6)0|2t}UN8Uv diff --git a/readme.txt b/readme.txt index dc5e6ac..e0b75f6 100644 --- a/readme.txt +++ b/readme.txt @@ -49,22 +49,8 @@ last_name TEXT, email TEXT, phone_no TEXT, street TEXT, -fk_CITY NUMBER, -fk_STATE NUMBER, -fk_ZIP NUMBER +city TEXT, +state TEXT, +zip TEXT ); -CREATE TABLE CITY ( -ID NUMBER, -CITY TEXT -) - -CREATE TABLE STATE ( -ID NUMBER, -state TEXT -) - -CREATE TABLE ZIP ( -ID NUMBER, -zip TEXT -) diff --git a/src/main/java/edu/bookocontacts/AppSceneView.java b/src/main/java/edu/bookocontacts/AppSceneView.java index 3baeb05..cdfcc56 100755 --- a/src/main/java/edu/bookocontacts/AppSceneView.java +++ b/src/main/java/edu/bookocontacts/AppSceneView.java @@ -24,7 +24,7 @@ public class AppSceneView extends Application { stage = primaryStage; stage.setTitle("Contacts View"); Parent root = createView(); - Scene scene = new Scene(root, 600, 400); + Scene scene = new Scene(root, 500, 360); stage.setScene(scene); stage.sizeToScene(); diff --git a/src/main/java/edu/bookocontacts/ControlDDXDialog.java b/src/main/java/edu/bookocontacts/ControlDDXDialog.java index 70855f8..9218a44 100644 --- a/src/main/java/edu/bookocontacts/ControlDDXDialog.java +++ b/src/main/java/edu/bookocontacts/ControlDDXDialog.java @@ -46,7 +46,7 @@ public class ControlDDXDialog extends Dialog { FXMLLoader fxmlLoader = new FXMLLoader(getClass().getClassLoader().getResource(fxml)); fxmlLoader.setController(this); fxmlLoader.setLocation(getClass().getResource(fxml)); - + try { fxmlLoader.load(); } catch (IOException exception) { @@ -65,7 +65,7 @@ public class ControlDDXDialog extends Dialog { private void setPropertyBindings(Contact ct) { Logger.getLogger(getClass().getName()).log(Level.INFO, "setPropertyBindings called."); if (ct == null) { - return; + return; } tfFirstName.setText(ct.getFirst_name()); tfLastName.setText(ct.getLast_name()); @@ -95,7 +95,7 @@ public class ControlDDXDialog extends Dialog { } private String getFirstName() { - return String.format( "%s", tfFirstName.getText()); + return String.format("%s", tfFirstName.getText()); } private String getLastName() { diff --git a/src/main/java/edu/bookocontacts/ViewController.java b/src/main/java/edu/bookocontacts/ViewController.java index a704977..24832ff 100755 --- a/src/main/java/edu/bookocontacts/ViewController.java +++ b/src/main/java/edu/bookocontacts/ViewController.java @@ -27,8 +27,6 @@ import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextField; import javafx.scene.control.cell.PropertyValueFactory; -import javafx.scene.input.MouseEvent; -import javafx.scene.input.PickResult; /** * FXML Controller class @@ -64,7 +62,7 @@ public class ViewController implements Initializable { private int currentPageIndex = 0; private void log(String message) { - logger.log(Level.INFO, message); + logger.log(Level.FINE, message); } /** @@ -142,23 +140,23 @@ public class ViewController implements Initializable { contactView.setOnMouseClicked(e -> { - PickResult p = e.getPickResult(); Contact ct = contactView.getSelectionModel().getSelectedItem(); - ControlDDXDialog dialog = new ControlDDXDialog(ct); - Optional result = dialog.showAndWait(); - if (result.isPresent()) { - log("result is present."); - // add to storage - Contact updatedContact = (Contact) result.get(); - try { - updatedContact.setId(ct.getId()); - ct.save(); - } catch (Exception ex) { - log(ex.getMessage()); + if (ct != null) { + ControlDDXDialog dialog = new ControlDDXDialog(ct); + Optional result = dialog.showAndWait(); + if (result.isPresent()) { + log("result is present."); + // add to storage + Contact updatedContact = (Contact) result.get(); + try { + updatedContact.setId(ct.getId()); + ct.save(); + } catch (Exception ex) { + log(ex.getMessage()); + } + updatecontactView(); } - updatecontactView(); } - }); } diff --git a/src/main/java/edu/bookocontacts/model/DATASET.java b/src/main/java/edu/bookocontacts/model/DATASET.java index 0770778..89cc35c 100644 --- a/src/main/java/edu/bookocontacts/model/DATASET.java +++ b/src/main/java/edu/bookocontacts/model/DATASET.java @@ -17,14 +17,12 @@ import org.sqlite.SQLiteDataSource; public final class DATASET { private static Connection connection = null; - public static synchronized Connection getConnection() throws IOException, SQLException { + private final static synchronized Connection getConnection() throws IOException, SQLException { if (connection == null) { File rootDir = new File(String.format("%s", DataRepositoryConfig.getPath())); Files.createDirectories(rootDir.toPath()); - SQLiteDataSource dataSource = new SQLiteDataSource(); dataSource.setUrl(String.format("jdbc:sqlite:%ssample.db", DataRepositoryConfig.getPath())); - connection = dataSource.getConnection(); } return connection; diff --git a/src/main/java/edu/bookocontacts/model/MailAddress.java b/src/main/java/edu/bookocontacts/model/MailAddress.java index d9a84d0..4b747f2 100644 --- a/src/main/java/edu/bookocontacts/model/MailAddress.java +++ b/src/main/java/edu/bookocontacts/model/MailAddress.java @@ -2,6 +2,8 @@ package edu.bookocontacts.model; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public final class MailAddress { @@ -19,25 +21,36 @@ public final class MailAddress { public MailAddress(String addressline) { this("", "", "", ""); if (addressline != null) { - try { + addressline = addressline.trim(); + if (!addressline.isBlank()) { + try { - String[] csz = addressline.split(",", 4); - street = csz[0]; - city = csz[1]; - String[] csz2; - if (csz.length < 3) { - csz2 = csz[1].trim().split(" "); + Pattern pattern = Pattern.compile("([0-9A-Za-z][^,]+)"); + Matcher matcher = pattern.matcher(addressline); + if (matcher.find()) { + street = matcher.group(); + matcher.find(); + city = matcher.group(); + matcher.find(); + state = matcher.group(); + if (matcher.find()) { + zip = matcher.group(); + return; + } + } - city = csz2[0]; - state = csz2[1]; - zip = csz2[2]; + pattern = Pattern.compile("(\\w+)\\b"); + matcher = pattern.matcher(state); + if (matcher.find()) { + state = matcher.group(); + if (matcher.find()) { + zip = matcher.group(); + } + } + } catch (Exception e) { + logger.log(Level.INFO, e.getMessage()); } - logger.log(Level.INFO, this.toString()); - - } catch (Exception e) { - logger.log(Level.INFO, e.getMessage()); } - } } diff --git a/src/main/resources/media/TableView.fxml b/src/main/resources/media/TableView.fxml index 7bce109..fb651f0 100755 --- a/src/main/resources/media/TableView.fxml +++ b/src/main/resources/media/TableView.fxml @@ -12,25 +12,26 @@ - - - - - - - - - - - -