diff --git a/bin/application/DBController$1.class b/bin/application/DBController$1.class index 5316a92..7674412 100644 Binary files a/bin/application/DBController$1.class and b/bin/application/DBController$1.class differ diff --git a/bin/application/DBController.class b/bin/application/DBController.class index 3522241..f8dc481 100644 Binary files a/bin/application/DBController.class and b/bin/application/DBController.class differ diff --git a/bin/application/Main.class b/bin/application/Main.class index 216aaa8..43f69a5 100644 Binary files a/bin/application/Main.class and b/bin/application/Main.class differ diff --git a/bin/application/MainWindowController$1.class b/bin/application/MainWindowController$1.class index 1670e73..2b59cab 100644 Binary files a/bin/application/MainWindowController$1.class and b/bin/application/MainWindowController$1.class differ diff --git a/bin/application/MainWindowController.class b/bin/application/MainWindowController.class index c1f5b3d..6b57f71 100644 Binary files a/bin/application/MainWindowController.class and b/bin/application/MainWindowController.class differ diff --git a/bin/application/tableData.class b/bin/application/tableData.class index 1a67dd6..845106c 100644 Binary files a/bin/application/tableData.class and b/bin/application/tableData.class differ 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); } }