From a460c751cf9b533eadf0a478f572e66da88c455e Mon Sep 17 00:00:00 2001 From: hendrik Date: Thu, 29 Mar 2018 19:51:34 +0200 Subject: [PATCH] test commit --- bin/application/DBController$1.class | Bin 1035 -> 1035 bytes bin/application/DBController.class | Bin 9149 -> 9333 bytes bin/application/Main.class | Bin 3411 -> 3431 bytes bin/application/MainWindowController$1.class | Bin 1931 -> 1939 bytes bin/application/MainWindowController.class | Bin 10437 -> 10497 bytes bin/application/tableData.class | Bin 1830 -> 1830 bytes src/application/DBController.java | 538 +++++++++++-------- src/application/Main.java | 93 ++-- src/application/MainWindowController.java | 200 ++++--- src/application/tableData.java | 48 +- 10 files changed, 523 insertions(+), 356 deletions(-) diff --git a/bin/application/DBController$1.class b/bin/application/DBController$1.class index 5316a9230e4746e874a718e79724addec39f18d6..7674412fb095d17872b27cfda1ce6346cc8e412e 100644 GIT binary patch delta 43 ycmeC?=;qj<#LVb4S(&*>(v3lq!JR>s!Gpns!IQy?!JEO3!H2<#!Ef?DW?ulk2?%2V delta 43 xcmeC?=;qj<#LQ?iS(&*>(wsq(!Gb}R!IHs*!3qd%80;8q8JrmGC+}nS1pu@r2kZa< diff --git a/bin/application/DBController.class b/bin/application/DBController.class index 3522241e1b12455ba1e1d8fd8187b8c2b04e1892..f8dc48144644e24c9d41db9ad6e95fe7486d8987 100644 GIT binary patch delta 1202 zcmX}rYi!e17{~GNL);i0gSG3rcI!&l&24P53*D$=gWb$7h;t&!U?{lgAb8otm<1Jm z;{_1o#?fp$;6BM7tga#xm`4^-=1@e5Y8f#qD5g?Rt*Vz%N*CoUr@~$3P1uOr?roYE zVW#9IT!aq~e)7pxA3qmUC0*^l^_I^tk4yKBwzrY3rF8=JWUxpJ69l+aI6*ZHEMzfp z8tGPD&Jy}q%JnoeKnpk1#uj?rabJV=xH&mbc6Q)Zw`(Ri}fKA-U5H~TxAosA*oyfV@o^u2KjXH&m+fk|L!XBkV<)fc z-98@WJs#r_k8=d)_5{}1VYfaMba{C#$p}xW(=PoYPiyQho%*PbXE!xGqr-Yuo7&@A zgWc{xo+l}%{+BOGj!C{GIVSnCt!SMutl+8a#GdsAvc>Mf}Wskf!}N$r<< zN9x@R^D@tK3e)X?3wisJSwECLD0@iupzLAUN!cT^AIW|^oi&=D%G#cvn)sgzn}PwS2D&^@A?VkGiKP z-KT{`?vaA{wCYca(-LPSewH{R@r%T-62D2DofduJ|3t{W5KhhcQ|g@5d8uyqh)3zN#y@K`z_n@Oc=tz}Sevshvtso7F1lcF(_5?%?PM2>_{!Y`34 z5s(N@r`sQi+sOFoNR!?7g#M0Lm^6zp*P`TD5e2GYi&0|wyIKiVR>ndrSBv>HTLs-# z$qLnL^t{#Y}IVF8n#(2&f+|8bxc@2M{N;PdOm3hPFX2ut${ymv0)8n*66oP zYciiLwSYBS#9Az7ZR0zm`8L0U8P>&Y>n7Kh5wy#dXBi9Z3gXs7!md=7UfOMi`>bfP ra1|N08lSCE`hKk(q}(=8V;iZnO>R84J8ejN9Cj;~5 z9Enk*ka*!hE?m*X6)#-z!W9!E?oc(T;M>}oc=eC(dCvIH`Tf4OqL$k_X;yc1i=7Vi z29SUlSTO)L41^tpaKMKojE74t(C13E+N;ltH$y`*89kvx6!b`en{2h~%LOgOG{A7>aZT%S0KnFc(8m&Nr3FMlJHyFT)7&s$p@Bqer1H?Lw9^ z4rX}aL=j{8$QC0HC43r>iI~7B6EPo?P=P6^##F3EDe5p?#To0RNi`U~p{B}M<_yGP zCR>`tc4jl$99A<=bsLw)EI=RDp~FHLu;|O|>Lg)TH<^q11JZv=;qQ&!*S0>Gc?n4Qyhg%Cr`% z?)a#X;j)B{O*A&s*g|6~jcqix)7TL(qJN+rf>?f@znT31yasxT-Y$B(={3^ZL$4|5 z{rt}>3srZJ&LKL7=^UYRl+H0a$LW-YD%)=jS9X&0DblA&pCNsgbTjD|(mqvUi>7fu zF+o+^3T#&NVvXl%T;P~5A_tc+60OK*-AT@V%5U?8=mL9~zC!vc>1(8~lfFUvW{|#R z57VZ^Fnyc!9nyD6-y?mW^aIjKYF}b@F!roa6%R>1BKer)6OvC!J`2XJa)jfyI>K?E zlYT+^CFxhBUz2`AdYTlSt8wPZx^h_9+FSkv@3^P!+^P5c0X}fUKOzI4xusvIedU&Q zUKix`db8D5{+&#h=^Gt#34PzB^ss#b_T{Q$tb{BJ_YU$ zaZsY>_v=cFM1({^OV=b?SR@8+Uel#7JfcIc=rLLh7%N7#$#pZ)f=IE#AU4>++qL# diff --git a/bin/application/Main.class b/bin/application/Main.class index 216aaa8a461abc31e673599b6740e6cdf981622f..43f69a53e9a34159fbd82a55860f95a0b2738e18 100644 GIT binary patch delta 209 zcmWN}y-vbl7{&2_6Bzo^4n`9~V;s6Q*hLwNVANSYaBwDh zCpIQ#?tx3-BDf8ooZ+0a{C3XX+1x9`)u{^2I%Q5V@%2)9MxeK9)qUg;IHSZlw)6oF zY6Q4k;M1bXrR0h`u1UF}&n**q86n?9%!w&T_@%=isa{v|a#ysTKCwK*)QPo-BT?ZA r#j~sdM+`Y;geQ{Ei)a%OG9GxP#~Wj&@@9PUPR<8EvI@R*)o%X-$9E&+ delta 189 zcmWNJ%L)Ne06@=_S-1#gW3rG1#-l_+m=UAA^D58s1IofeSy)(DtGlxE3Gxd*!AJNF zcX!TNoS*SEUOk~jWnZ-2adZ;6Ny>*XwT%3TXRAp7NE0MOm>et>)HFHw-fauN`gRa>)q6mQArVHHj8&Z|n<|>I UX3mZUdzKtoaaQHRR;GQmKQj{`82|tP diff --git a/bin/application/MainWindowController$1.class b/bin/application/MainWindowController$1.class index 1670e73f58d05b1f630ccbd28c01961d700a96e8..2b59cab60dc4b7632fad7f3b649982f0fcc9f1d5 100644 GIT binary patch delta 51 zcmeC?pUl6ZmyL1m7#bP)8JZY07@8Rj82Tm)vo`<${{jk7 diff --git a/bin/application/MainWindowController.class b/bin/application/MainWindowController.class index c1f5b3df443f1c6f4ebfc33442fab4b6e76e5cb2..6b57f717517908cad07769b2bde516e283737fcd 100644 GIT binary patch delta 500 zcmWNNO>B&D5XOK1#H5mPS*5Mrv}lQ>tV^465Fa6-R3aKdQd%wP z0U2$rkE^pdIkY6Dgric#i8d~!Lc)Oq&*4AM%>193d1l6P7xz4f#+D>W0R?)FkTtSv z<-f92>_T-7rSexXOZmC1V=)<`WGNSVY}ZdSo7knOnXTm5K^yzoXA`mE^g(8GNcD$V z#8HwQQ}^T4&`v!kXr+S#bc)fz5zcawbDZY9y;!l=O`2EHovdPxW_N3D4-2@gF1`5l zv4JZzDc;Fd&FbM4{r0k=!A)67Wq(s63srSZRo5xwhSc69#sG0)f$G}rb#xhp>OZR8o>Iay<_pUhV=2$A z%e!CxTA6W8eZz9zQpG#cyw{CB=tduHOMKk_B*tekCdHT%z{GI?4h5H{Go`y_S)}>T`7f delta 442 zcmXAlOGwmV6vcm^C_Vy}ltiQ^=RY%l9UY1JGt$G7F)<{1DCCH3%m+eN_RdEV(y~o> zBW-0V8ZIgcdZJRO=sv_nt2QlNwrS%5`S|WVT+VmSch5xoM%z+Fs4Pwr$kKHLBvk8! zzgsdi?#C$*t|prr4p7S>>hWmMKhfd5+S^7?*i0hjC4w+rMyA{vVgA|ZdWe{f2We{O7We{bsWe}U(#1b_*j8$y%Cl+-^ z`N>kOHjFBh!&&VaH78GJbz;<;d<#e#PnKnKV6|Z2V6dFLkxhJZC7Us;Es$pidgA@Y~gDQ}v%OJpD${@&K%OEtli6x3rWb$1W8%FWT zQmi(U@34qX&SBMJl$|`C)rnDI@+}~#JXw~_fmMxxgF$`rMmF)um2AeWnn0cwkmtp! M17zuf#l_kA0q%De?*IS* diff --git a/src/application/DBController.java b/src/application/DBController.java index 82558ec..da9ec20 100644 --- a/src/application/DBController.java +++ b/src/application/DBController.java @@ -1,72 +1,91 @@ package application; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.PreparedStatement; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; import java.sql.ResultSet; -import java.sql.SQLException; +import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.io.File; import java.io.FileInputStream; -class DBController { +class DBController +{ + + private Connection connection; - private Connection connection; - private String DB_PATH_Win = "C:/ProgramData/PWMaster/datenbank.db"; - private String DB_PATH_Linux = System.getProperty("user.home") + "/bin/PWMaster/datenbank.db"; - + + private String DB_PATH_Linux = System.getProperty("user.home") + + "/bin/PWMaster/datenbank.db"; + private Main main; - //private Cryption crypo = new Cryption(); - private String schluessel; //Für Ver-/Entschlüsselung - - public void main() { + + // private Cryption crypo = new Cryption(); + private String schluessel; // Für Ver-/Entschlüsselung + + public void main() + { try { - if(System.getProperty("os.name").equals("Linux")) { - connection = DriverManager.getConnection("jdbc:sqlite:" + DB_PATH_Linux); + if (System.getProperty("os.name").equals("Linux")) { + connection = DriverManager + .getConnection("jdbc:sqlite:" + DB_PATH_Linux); } else { - connection = DriverManager.getConnection("jdbc:sqlite:" + DB_PATH_Win); + connection = DriverManager + .getConnection("jdbc:sqlite:" + DB_PATH_Win); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } - } - DBController(Main main){ + } + + DBController(Main main) + { this.main = main; - } - public void verbindeDatenbank() { //Verbinde mit der Datenbank-Datei - try { - if (connection != null) - return; - if(System.getProperty("os.name").equals("Linux")) { - connection = DriverManager.getConnection("jdbc:sqlite:" + DB_PATH_Linux); + } + + public void verbindeDatenbank() + { // Verbinde mit der Datenbank-Datei + try { + if (connection != null) + return; + if (System.getProperty("os.name").equals("Linux")) { + connection = DriverManager + .getConnection("jdbc:sqlite:" + DB_PATH_Linux); } else { - connection = DriverManager.getConnection("jdbc:sqlite:" + DB_PATH_Win); + connection = DriverManager + .getConnection("jdbc:sqlite:" + DB_PATH_Win); } - if (!connection.isClosed()) - System.out.println(); - } catch (SQLException e) { - throw new RuntimeException(e); - } - Runtime.getRuntime().addShutdownHook(new Thread() { - public void run() { - try { - if (!connection.isClosed() && connection != null) { - connection.close(); - if (connection.isClosed()) - System.out.println(); - } - } catch (SQLException e) { - e.printStackTrace(); - } - } - }); - } - public void fuellenDatenbank(int pID, String pDatum, String pKonto, String pNutzername, String pEmail, String pPasswort) { //Neuen Eintrag erstellen - try { - PreparedStatement ps = connection.prepareStatement("INSERT INTO konten VALUES (?, ?, ?, ?, ?, ?);"); - ps.setInt(1, pID); //Primärschlässel + if (!connection.isClosed()) + System.out.println(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + Runtime.getRuntime().addShutdownHook(new Thread() { + public void run() + { + try { + if (!connection.isClosed() && connection != null) { + connection.close(); + if (connection.isClosed()) + System.out.println(); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } + }); + } + + public void fuellenDatenbank(int pID, String pDatum, String pKonto, + String pNutzername, String pEmail, String pPasswort) + { // Neuen Eintrag erstellen + try { + PreparedStatement ps = connection.prepareStatement( + "INSERT INTO konten VALUES (?, ?, ?, ?, ?, ?);"); + ps.setInt(1, pID); // Primärschlässel ps.setString(2, pDatum); ps.setString(3, pKonto); ps.setString(4, pNutzername); @@ -74,230 +93,277 @@ class DBController { ps.setString(6, pPasswort); ps.addBatch(); - connection.setAutoCommit(false); - ps.executeBatch(); //SQL ausführen - connection.setAutoCommit(true); - //connection.close(); - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - } + connection.setAutoCommit(false); + ps.executeBatch(); // SQL ausführen + connection.setAutoCommit(true); + // connection.close(); + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + } } - public void erstelleDatenbank(){ //Erstelle Tabelle mit Reihen - try { - Statement stmt = connection.createStatement(); - stmt.executeUpdate("DROP TABLE IF EXISTS konten;"); - stmt.executeUpdate("CREATE TABLE konten (id, datum, konto, nutzername, email, passwort);"); - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - } + + public void erstelleDatenbank() + { // Erstelle Tabelle mit Reihen + try { + Statement stmt = connection.createStatement(); + stmt.executeUpdate("DROP TABLE IF EXISTS konten;"); + stmt.executeUpdate( + "CREATE TABLE konten (id, datum, konto, nutzername, email, passwort);"); + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + } } - public boolean existiertDatenbank(String pPfad){ //Prüft ob die Datenbank existiert + + public boolean existiertDatenbank(String pPfad) + { // Prüft ob die Datenbank existiert File varTmpDir = new File(pPfad); - if(!varTmpDir.exists()){ + if (!varTmpDir.exists()) { return false; - }else{ + } else { return true; } } - private void ausgebenSyso(){ //Debugging Ausgabe der kompletten Datenbank - try { - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM konten;"); - while (rs.next()) { - System.out.println("Datum = " + rs.getString("datum")); - System.out.println("Konto = " + rs.getString("konto")); - System.out.println("Nutzername = " + rs.getString("nutzername")); - System.out.println("E-Mail = " + rs.getString("email")); - System.out.println("Passwort = " + rs.getString("passwort")); - System.out.println(" "); - } - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - } - } - public String getDatum(int pID){ //Gibt das Datum zurück - try { - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT id, datum FROM konten WHERE id = "+pID+";" ); - return rs.getString("datum"); - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - return "Error 404"; - } - } - public String getKonto(int pID){ //Gibt das Konto zurück - try { - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT id, konto FROM konten WHERE id = "+pID+";" ); - return rs.getString("konto"); - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - return "Error 404"; - } - } - public String getNutzername(int pID){ //Gibt den Nutzernamen zurück - try { - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT id, nutzername FROM konten WHERE id = "+pID+";" ); - return rs.getString("nutzername"); - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - return "Error 404"; - } - } - public String getEmail(int pID){ //Gibt die Email zurück - try { - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT id, email FROM konten WHERE id = "+pID+";" ); - return rs.getString("email"); - - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - return "Error 404"; - } - } - public String getPasswort(int pID){ //Gibt das Passwort zurück - try { - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT id, passwort FROM konten WHERE id = "+pID+";" ); - return rs.getString("passwort"); - - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - return "Error 404"; - } - - } - - public void setDatum(int pID, String pDatum){ //Setzt das Datum - try { - Statement stmt = connection.createStatement(); - stmt.executeUpdate("UPDATE konten SET datum = '"+pDatum+"'WHERE id ="+pID+";"); - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - } - } - - public void setKonto(int pID, String pKonto){ //Setzt das Konto - try { - Statement stmt = connection.createStatement(); - stmt.executeUpdate("UPDATE konten SET konto = '"+pKonto+"'WHERE id ="+pID+";"); - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - } - } - - public void setNutername(int pID, String pNutername){ //Setzt den Nutzername - try { - Statement stmt = connection.createStatement(); - stmt.executeUpdate("UPDATE konten SET nutzername = '"+pNutername+"'WHERE id ="+pID+";"); - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - } - } - - public void setEmail(int pID, String pEmail){ //Setzt die Email - try { - Statement stmt = connection.createStatement(); - stmt.executeUpdate("UPDATE konten SET email = '"+pEmail+"'WHERE id ="+pID+";"); - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - } - } - - public void setPasswort(int pID, String pPasswort){ //Setzt das Passwort - try { - Statement stmt = connection.createStatement(); - stmt.executeUpdate("UPDATE konten SET passwort = '"+pPasswort+"'WHERE id ="+pID+";"); - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - } - } - - public void loeschenEintrag(int pID){ //Löscht den Eintrag - int alteOrdnung = getNeueID(); //Speichert die ID des letzten Eintrags + private void ausgebenSyso() + { // Debugging Ausgabe der kompletten Datenbank try { - if(pID == getNeueID() -1){ //Falls letzter Eintrag gelöscht werden soll - PreparedStatement ps = connection.prepareStatement("DELETE FROM konten WHERE id=?"); + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery("SELECT * FROM konten;"); + while (rs.next()) { + System.out.println("Datum = " + rs.getString("datum")); + System.out.println("Konto = " + rs.getString("konto")); + System.out.println("Nutzername = " + rs.getString("nutzername")); + System.out.println("E-Mail = " + rs.getString("email")); + System.out.println("Passwort = " + rs.getString("passwort")); + System.out.println(" "); + } + + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + } + } + + public String getDatum(int pID) + { // Gibt das Datum zurück + try { + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery( + "SELECT id, datum FROM konten WHERE id = " + pID + ";"); + return rs.getString("datum"); + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + return "Error 404"; + } + } + + public String getKonto(int pID) + { // Gibt das Konto zurück + try { + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery( + "SELECT id, konto FROM konten WHERE id = " + pID + ";"); + return rs.getString("konto"); + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + return "Error 404"; + } + } + + public String getNutzername(int pID) + { // Gibt den Nutzernamen zurück + try { + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery( + "SELECT id, nutzername FROM konten WHERE id = " + pID + ";"); + return rs.getString("nutzername"); + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + return "Error 404"; + } + } + + public String getEmail(int pID) + { // Gibt die Email zurück + try { + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery( + "SELECT id, email FROM konten WHERE id = " + pID + ";"); + return rs.getString("email"); + + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + return "Error 404"; + } + } + + public String getPasswort(int pID) + { // Gibt das Passwort zurück + try { + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery( + "SELECT id, passwort FROM konten WHERE id = " + pID + ";"); + return rs.getString("passwort"); + + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + return "Error 404"; + } + + } + + public void setDatum(int pID, String pDatum) + { // Setzt das Datum + try { + Statement stmt = connection.createStatement(); + stmt.executeUpdate("UPDATE konten SET datum = '" + pDatum + + "'WHERE id =" + pID + ";"); + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + } + } + + public void setKonto(int pID, String pKonto) + { // Setzt das Konto + try { + Statement stmt = connection.createStatement(); + stmt.executeUpdate("UPDATE konten SET konto = '" + pKonto + + "'WHERE id =" + pID + ";"); + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + } + } + + public void setNutername(int pID, String pNutername) + { // Setzt den Nutzername + try { + Statement stmt = connection.createStatement(); + stmt.executeUpdate("UPDATE konten SET nutzername = '" + pNutername + + "'WHERE id =" + pID + ";"); + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + } + } + + public void setEmail(int pID, String pEmail) + { // Setzt die Email + try { + Statement stmt = connection.createStatement(); + stmt.executeUpdate("UPDATE konten SET email = '" + pEmail + + "'WHERE id =" + pID + ";"); + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + } + } + + public void setPasswort(int pID, String pPasswort) + { // Setzt das Passwort + try { + Statement stmt = connection.createStatement(); + stmt.executeUpdate("UPDATE konten SET passwort = '" + pPasswort + + "'WHERE id =" + pID + ";"); + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + } + } + + public void loeschenEintrag(int pID) + { // Löscht den Eintrag + int alteOrdnung = getNeueID(); // Speichert die ID des letzten Eintrags + try { + if (pID == getNeueID() - 1) { // Falls letzter Eintrag gelöscht werden + // soll + PreparedStatement ps = connection + .prepareStatement("DELETE FROM konten WHERE id=?"); ps.setInt(1, pID); ps.executeUpdate(); - }else{ // Wenn ein Eintrag in mitten der DB gelöscht wird, dann wird hochkopiert - while(!(pID+1 == alteOrdnung -1)){ + } else { // Wenn ein Eintrag in mitten der DB gelöscht wird, dann wird + // hochkopiert + while (!(pID + 1 == alteOrdnung - 1)) { int pIDneu = pID + 1; - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT id, datum, konto, nutzername, email, passwort FROM konten WHERE id = "+pIDneu+";" ); + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery( + "SELECT id, datum, konto, nutzername, email, passwort FROM konten WHERE id = " + + pIDneu + ";"); String pDatum = rs.getString("datum"); String pKonto = rs.getString("konto"); String pNutzername = rs.getString("nutzername"); - String pEmail = rs.getString("email"); - String pPasswort = rs.getString("passwort"); + String pEmail = rs.getString("email"); + String pPasswort = rs.getString("passwort"); - stmt.executeUpdate("UPDATE konten SET datum = '"+pDatum+"', konto = '"+pKonto+"', nutzername = '"+pNutzername+"', email = '"+pEmail+"', passwort = '"+pPasswort+"'WHERE id ="+pID+";"); + stmt.executeUpdate("UPDATE konten SET datum = '" + pDatum + + "', konto = '" + pKonto + "', nutzername = '" + + pNutzername + "', email = '" + pEmail + "', passwort = '" + + pPasswort + "'WHERE id =" + pID + ";"); pID = pID + 1; } - PreparedStatement ps = connection.prepareStatement("DELETE FROM konten WHERE id=?"); - ps.setInt(1, alteOrdnung -1); + PreparedStatement ps = connection + .prepareStatement("DELETE FROM konten WHERE id=?"); + ps.setInt(1, alteOrdnung - 1); ps.executeUpdate(); } - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - } + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + } } - public int getNeueID(){ //Gibt die ID des nächsten Eintrags zurück + public int getNeueID() + { // Gibt die ID des nächsten Eintrags zurück int neueID = 0; - try { - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM konten;"); - while (rs.next()) { + try { + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery("SELECT * FROM konten;"); + while (rs.next()) { neueID = rs.getInt("id") + 1; - } - rs.close(); - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - } - return neueID; + } + rs.close(); + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + } + return neueID; } - public ArrayList ladeTabelle(){ //Gibt ein Objekt daten mit allen Einträgen der DB zurück + public ArrayList ladeTabelle() + { // Gibt ein Objekt daten mit allen Einträgen der DB zurück ArrayList daten = new ArrayList<>(); - try { - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM konten;"); + try { + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery("SELECT * FROM konten;"); while (rs.next()) { try { // Entschlüsselte Daten werden als Datenobjekt gespeichert - //daten.add(new tableData(rs.getInt("id"), crypo.entschluesseln(rs.getString("datum"), schluessel), crypo.entschluesseln(rs.getString("konto"),schluessel))); + // daten.add(new tableData(rs.getInt("id"), + // crypo.entschluesseln(rs.getString("datum"), schluessel), + // crypo.entschluesseln(rs.getString("konto"),schluessel))); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } - } - } catch (SQLException e) { - System.err.println("Couldn't handle DB-Query"); - e.printStackTrace(); - } + } + } catch (SQLException e) { + System.err.println("Couldn't handle DB-Query"); + e.printStackTrace(); + } return daten; } - - public void setSchluessel(String pSchluessel){ //Setzt den Schlüssel für die Ver-/Entschlüsslung + + public void setSchluessel(String pSchluessel) + { // Setzt den Schlüssel für die Ver-/Entschlüsslung schluessel = pSchluessel; } diff --git a/src/application/Main.java b/src/application/Main.java index 1524a9e..fd584ae 100644 --- a/src/application/Main.java +++ b/src/application/Main.java @@ -1,11 +1,11 @@ -package application; +package application; + import java.io.File; import java.io.FileInputStream; import java.security.GeneralSecurityException; import java.security.SecureRandom; import java.util.Optional; import java.util.Random; -import com.j256.twofactorauth.TimeBasedOneTimePasswordUtil; import javafx.application.Application; import javafx.application.Platform; import javafx.fxml.FXMLLoader; @@ -27,69 +27,86 @@ import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; -public class Main extends Application { +public class Main extends Application +{ private MainWindowController mwc; + private DBController dbc = new DBController(this); - private String schluesselNutzer; //Passwort des Nutzers + + private String schluesselNutzer; // Passwort des Nutzers private Stage primaryStage; + @Override - public void start(Stage primaryStage) { + public void start(Stage primaryStage) + { this.primaryStage = primaryStage; mainWindow(); } - private void mainWindow(){ - try { - FXMLLoader loader = new FXMLLoader(getClass().getResource("MainWindow.fxml")); - AnchorPane pane = loader.load(); - //primaryStage.setWidth(1536); - //primaryStage.setHeight(864); - primaryStage.setTitle("jFxKasse"); //Title der Stage + private void mainWindow() + { + try { + FXMLLoader loader = new FXMLLoader( + getClass().getResource("MainWindow.fxml")); + AnchorPane pane = loader.load(); + // Test + // primaryStage.setWidth(1536); + // primaryStage.setHeight(864); + primaryStage.setTitle("jFxKasse"); // Title der Stage mwc = loader.getController(); mwc.setMain(this, dbc); - firstStart(); //Prüft ob das Programm zuvor gestartet wurde + firstStart(); // Prüft ob das Programm zuvor gestartet wurde - dbc.main(); //Startet die Datenbank - mwc.initUI(); //Startet die UI - mwc.fuelleTablle(); //Ladt die Einträge in die Tabelle + dbc.main(); // Startet die Datenbank + mwc.initUI(); // Startet die UI + mwc.fuelleTablle(); // Ladt die Einträge in die Tabelle Scene scene = new Scene(pane); - scene.getStylesheets().add(Main.class.getResource("application.css").toExternalForm()); - primaryStage.setScene(scene); - primaryStage.show(); //zeigt die Stage an - } catch(Exception e) { + scene.getStylesheets() + .add(Main.class.getResource("application.css").toExternalForm()); + primaryStage.setScene(scene); + primaryStage.show(); // zeigt die Stage an + } catch (Exception e) { e.printStackTrace(); } } - public static void main(String[] args) { + + public static void main(String[] args) + { launch(args); } - - private void firstStart() throws Exception{ - if(mwc.loadSettings()){ //Wenn XML gefunden - dbc.verbindeDatenbank(); //Verbindet mit der Datenbank-Datei - - }else{ //Wenn keine XML gefunden --> erster Start + private void firstStart() throws Exception + { + if (mwc.loadSettings()) { // Wenn XML gefunden + dbc.verbindeDatenbank(); // Verbindet mit der Datenbank-Datei + + } else { // Wenn keine XML gefunden --> erster Start System.out.println("keine XML gefunden!"); - if(System.getProperty("os.name").equals("Linux")) { + if (System.getProperty("os.name").equals("Linux")) { - File dir = new File(System.getProperty("user.home") + "/bin/PWMaster"); //Erstellt den Unterordner - dir.mkdir(); //Erstellt den Unterordner + File dir = new File( + System.getProperty("user.home") + "/bin/PWMaster"); // Erstellt + // den + // Unterordner + dir.mkdir(); // Erstellt den Unterordner } else { - File dir = new File("C:/ProgramData/PWMaster/"); //Erstellt den Unterordner - dir.mkdir(); //Erstellt den Unterordner + File dir = new File("C:/ProgramData/PWMaster/"); // Erstellt den + // Unterordner + dir.mkdir(); // Erstellt den Unterordner } - - mwc.saveSettings(schluesselNutzer, "dd"); // speichert das Passwort und den Individueller Schlüssel für die API in der XML - dbc.verbindeDatenbank(); //Verbindet mit der Datenbank-Datei + + mwc.saveSettings(schluesselNutzer, "dd"); // speichert das Passwort und + // den Individueller + // Schlüssel für die API in + // der XML + dbc.verbindeDatenbank(); // Verbindet mit der Datenbank-Datei dbc.erstelleDatenbank(); // Neue Datenbank-Datei wird erstellt - System.exit(0); //Programm wird beendet + System.exit(0); // Programm wird beendet } } - - + } diff --git a/src/application/MainWindowController.java b/src/application/MainWindowController.java index f03d0d8..fd7bb6c 100644 --- a/src/application/MainWindowController.java +++ b/src/application/MainWindowController.java @@ -38,40 +38,62 @@ import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; import javafx.util.Pair; -public class MainWindowController { +public class MainWindowController +{ private static final String String = null; + Toolkit toolkit = Toolkit.getDefaultToolkit(); + Clipboard clipboard = toolkit.getSystemClipboard(); + @FXML private AnchorPane mainAnchorpane; + @FXML - private TreeTableView mainTreeTable; + private TreeTableView mainTreeTable; + @FXML - private TreeTableColumn datumSpalte; + private TreeTableColumn datumSpalte; + @FXML private TreeTableColumn kontoSpalte; + @FXML - private TreeTableColumn idSpalte = new TreeTableColumn<>(""); + private TreeTableColumn idSpalte = new TreeTableColumn<>( + ""); + @FXML private Button ueberbtn; - + private Main main; + private DBController dbc; - private String filepathXMLWin = "C:/ProgramData/PWMaster/config.xml"; //Pfad wo die XML liegt - private String filepathXMLLinux = System.getProperty("user.home") + "/bin/PWMaster/config.xml"; //Pfad wo die XML liegt + + private String filepathXMLWin = "C:/ProgramData/PWMaster/config.xml"; // Pfad + // wo + // die + // XML + // liegt + + private String filepathXMLLinux = System.getProperty("user.home") + + "/bin/PWMaster/config.xml"; // Pfad wo die XML liegt + private boolean showPasswort = false; + private String schluessel; + private String base32Secret; + private int id; + @FXML TreeItem root = new TreeItem<>(new tableData(0, "0", "0")); - Properties props = new Properties(); - - - + Properties props = new Properties(); + @FXML - public void ueberbtnAction(ActionEvent event) { //Öffnet den Über-Dialog + public void ueberbtnAction(ActionEvent event) + { // Öffnet den Über-Dialog // Erstellt einen Dialog Dialog> dialog = new Dialog<>(); @@ -87,97 +109,129 @@ public class MainWindowController { grid.setVgap(10); grid.setPadding(new Insets(20, 150, 10, 10)); - grid.add(new Label("Datenbank: sqlite.org - Public Domain" - +"\nBASE64Decoder: java2s.com/Code/Jar/s/DownloadsunmiscBASE64Decoderjar.htm - GPLv2" - +"\nCrypo: blog.axxg.de/ - Copyright 2013 AxxG Alexander Grösel" - +" \nzwei Faktoren: github.com/j256/two-factor-auth - ISC License" - +" \nUI Design: eclipse.org/efxclipse/install.html - Eclipse Public License 1.0" - +" \nUI - Datenbank Integration: basierend auf Project-HomeFlix - github.com/Seil0/Project-HomeFlix - GPLv3 \n" - +" \nMaintainer: hendrik.schutter@icloud.com" - +" \n(c) 2017 Hendrik Schutter"), 0, 0); + grid.add(new Label("Datenbank: sqlite.org - Public Domain" + + "\nBASE64Decoder: java2s.com/Code/Jar/s/DownloadsunmiscBASE64Decoderjar.htm - GPLv2" + + "\nCrypo: blog.axxg.de/ - Copyright 2013 AxxG Alexander Grösel" + + " \nzwei Faktoren: github.com/j256/two-factor-auth - ISC License" + + " \nUI Design: eclipse.org/efxclipse/install.html - Eclipse Public License 1.0" + + " \nUI - Datenbank Integration: basierend auf Project-HomeFlix - github.com/Seil0/Project-HomeFlix - GPLv3 \n" + + " \nMaintainer: hendrik.schutter@icloud.com" + + " \n(c) 2017 Hendrik Schutter"), 0, 0); - dialog.getDialogPane().setContent(grid); //Setzt die GridPane auf die DialogPane + dialog.getDialogPane().setContent(grid); // Setzt die GridPane auf die + // DialogPane dialog.showAndWait(); } + @FXML - - public void fuelleTablle(){ //Lädt die Datenbank in die Tabelle - + + public void fuelleTablle() + { // Lädt die Datenbank in die Tabelle + dbc.setSchluessel(schluessel); - for(int i = 0; i < dbc.ladeTabelle().size(); i++){ - tableData helpTableData = new tableData(dbc.ladeTabelle().get(i).getID(), - dbc.ladeTabelle().get(i).getDatum(), dbc.ladeTabelle().get(i).getKonto()); + for (int i = 0; i < dbc.ladeTabelle().size(); i++) { + tableData helpTableData = new tableData( + dbc.ladeTabelle().get(i).getID(), + dbc.ladeTabelle().get(i).getDatum(), + dbc.ladeTabelle().get(i).getKonto()); root.getChildren().add(new TreeItem(helpTableData)); } } - public void initUI(){ + + public void initUI() + { mainTreeTable.setRoot(root); mainTreeTable.setShowRoot(false); mainTreeTable.setEditable(false); - //Setzt die Textfelder - + // Setzt die Textfelder - idSpalte.setCellValueFactory(cellData -> cellData.getValue().getValue().idProperty().asObject()); - datumSpalte.setCellValueFactory(cellData -> cellData.getValue().getValue().datumProperty()); - kontoSpalte.setCellValueFactory(cellData -> cellData.getValue().getValue().kontoProperty()); + idSpalte.setCellValueFactory( + cellData -> cellData.getValue().getValue().idProperty().asObject()); + datumSpalte.setCellValueFactory( + cellData -> cellData.getValue().getValue().datumProperty()); + kontoSpalte.setCellValueFactory( + cellData -> cellData.getValue().getValue().kontoProperty()); mainTreeTable.getColumns().add(idSpalte); mainTreeTable.getColumns().get(2).setVisible(false); - mainTreeTable.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Object oldVal, Object newVal){ - // last = selected; //for auto-play - int selected = mainTreeTable.getSelectionModel().getSelectedIndex(); //get selected item - id = idSpalte.getCellData(selected); //Ausgewählte Spalte - showPasswort =false; - - try { //Setzt den entschlüsselten Inhalt in die Textfelder - //tf01.setText("Verschlüsseltes Passwort von " + crypo.entschluesseln(dbc.getKonto(id), schluessel) + " : " + dbc.getPasswort(id)); - //tfNutzername.setText(crypo.entschluesseln(dbc.getNutzername(id), schluessel)); - //tfEmail.setText(crypo.entschluesseln(dbc.getEmail(id), schluessel)); - //tfPasswort.setText(crypo.entschluesseln(dbc.getPasswort(id), schluessel)); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - }); + mainTreeTable.getSelectionModel().selectedItemProperty() + .addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, Object oldVal, + Object newVal) + { + // last = selected; //for auto-play + int selected = mainTreeTable.getSelectionModel() + .getSelectedIndex(); // get selected item + id = idSpalte.getCellData(selected); // Ausgewählte Spalte + showPasswort = false; + + try { // Setzt den entschlüsselten Inhalt in die Textfelder + // tf01.setText("Verschlüsseltes Passwort von " + + // crypo.entschluesseln(dbc.getKonto(id), schluessel) + " : + // " + dbc.getPasswort(id)); + // tfNutzername.setText(crypo.entschluesseln(dbc.getNutzername(id), + // schluessel)); + // tfEmail.setText(crypo.entschluesseln(dbc.getEmail(id), + // schluessel)); + // tfPasswort.setText(crypo.entschluesseln(dbc.getPasswort(id), + // schluessel)); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + }); } - public void setMain(Main main, DBController dbc){ + + public void setMain(Main main, DBController dbc) + { this.main = main; this.dbc = dbc; } - public String getSystemDatum(){ //Gibt das System-Datum zurück + + public String getSystemDatum() + { // Gibt das System-Datum zurück java.util.Date now = new java.util.Date(); - java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd.MM.yyyy"); + java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat( + "dd.MM.yyyy"); String heutigesDatum = sdf.format(now); return heutigesDatum; } - public void saveSettings(String schluessel, String base32Secret) throws Exception{ - OutputStream outputStream; //new output-stream + + public void saveSettings(String schluessel, String base32Secret) + throws Exception + { + OutputStream outputStream; // new output-stream try { - //props.setProperty("key", crypo.verschluesseln(schluessel, crypo.getProgrammSchluessel())); //writes path into property - //props.setProperty("TOTPkey", crypo.verschluesseln(base32Secret, crypo.getProgrammSchluessel())); //writes path into property - if(System.getProperty("os.name").equals("Linux")) { + // props.setProperty("key", crypo.verschluesseln(schluessel, + // crypo.getProgrammSchluessel())); //writes path into property + // props.setProperty("TOTPkey", crypo.verschluesseln(base32Secret, + // crypo.getProgrammSchluessel())); //writes path into property + if (System.getProperty("os.name").equals("Linux")) { outputStream = new FileOutputStream(filepathXMLLinux); } else { outputStream = new FileOutputStream(filepathXMLWin); } - props.storeToXML(outputStream, "PWMaster settings"); //writes new .xml + props.storeToXML(outputStream, "PWMaster settings"); // writes new .xml outputStream.close(); } catch (IOException e) { } } - public boolean loadSettings() throws Exception{ //Ladt die Daten aus der XML + + public boolean loadSettings() throws Exception + { // Ladt die Daten aus der XML InputStream inputStream; try { - if(System.getProperty("os.name").equals("Linux")) { + if (System.getProperty("os.name").equals("Linux")) { inputStream = new FileInputStream(filepathXMLLinux); } else { inputStream = new FileInputStream(filepathXMLWin); } props.loadFromXML(inputStream); - //schluessel = crypo.entschluesseln(props.getProperty("key"), crypo.getProgrammSchluessel()); //liest schluessel von property - //base32Secret = crypo.entschluesseln(props.getProperty("TOTPkey"), crypo.getProgrammSchluessel()); //liest schluessel von property + // schluessel = crypo.entschluesseln(props.getProperty("key"), + // crypo.getProgrammSchluessel()); //liest schluessel von property + // base32Secret = crypo.entschluesseln(props.getProperty("TOTPkey"), + // crypo.getProgrammSchluessel()); //liest schluessel von property inputStream.close(); return true; } catch (IOException e) { @@ -185,17 +239,25 @@ public class MainWindowController { return false; } } - public String getSchluesselXML(){ //Gibt den Schlüssel zurück für die Main + + public String getSchluesselXML() + { // Gibt den Schlüssel zurück für die Main return schluessel; } - public void starteDB(){ //Startet die Datenbank + + public void starteDB() + { // Startet die Datenbank dbc.verbindeDatenbank(); } - public void erzeugeDB(){ //Erzeuge die Datenbank + + public void erzeugeDB() + { // Erzeuge die Datenbank dbc.erstelleDatenbank(); dbc.verbindeDatenbank(); } - public String getbase32Secret(){ //Gibt den base32Secret zurück für die Main + + public String getbase32Secret() + { // Gibt den base32Secret zurück für die Main return base32Secret; } } diff --git a/src/application/tableData.java b/src/application/tableData.java index dd7ab86..e1e2bbc 100644 --- a/src/application/tableData.java +++ b/src/application/tableData.java @@ -5,42 +5,64 @@ import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; -public class tableData { //Datenobjekt mit der ID, Datum und Konto - +public class tableData +{ // Datenobjekt mit der ID, Datum und Konto + private final IntegerProperty id = new SimpleIntegerProperty(); + private final StringProperty datum = new SimpleStringProperty(); + private final StringProperty konto = new SimpleStringProperty(); - - public tableData(final int id, final String datum, final String konto){ + + public tableData(final int id, final String datum, final String konto) + { this.id.set(id); this.datum.set(datum); this.konto.set(konto); } - public IntegerProperty idProperty(){ + + public IntegerProperty idProperty() + { return id; } - public StringProperty datumProperty(){ + + public StringProperty datumProperty() + { return datum; } - public StringProperty kontoProperty(){ + + public StringProperty kontoProperty() + { return konto; } - public int getID(){ + + public int getID() + { return idProperty().get(); } - public String getDatum(){ + + public String getDatum() + { return datumProperty().get(); } - public String getKonto(){ + + public String getKonto() + { return kontoProperty().get(); } - public final void setID(int id){ + + public final void setID(int id) + { idProperty().set(id); } - public final void setdatum(String datum){ + + public final void setdatum(String datum) + { datumProperty().set(datum); } - public final void setkonto(String konto){ + + public final void setkonto(String konto) + { kontoProperty().set(konto); } }