96 lines
3.1 KiB
Java
96 lines
3.1 KiB
Java
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;
|
|
import javafx.geometry.Insets;
|
|
import javafx.stage.Stage;
|
|
import javafx.util.Pair;
|
|
import javafx.scene.Node;
|
|
import javafx.scene.Scene;
|
|
import javafx.scene.control.Alert;
|
|
import javafx.scene.control.Alert.AlertType;
|
|
import javafx.scene.control.ButtonBar.ButtonData;
|
|
import javafx.scene.control.ButtonType;
|
|
import javafx.scene.control.Dialog;
|
|
import javafx.scene.control.Label;
|
|
import javafx.scene.control.PasswordField;
|
|
import javafx.scene.control.TextField;
|
|
import javafx.scene.image.Image;
|
|
import javafx.scene.image.ImageView;
|
|
import javafx.scene.layout.AnchorPane;
|
|
import javafx.scene.layout.GridPane;
|
|
|
|
public class Main extends Application {
|
|
private MainWindowController mwc;
|
|
private DBController dbc = new DBController(this);
|
|
private String schluesselNutzer; //Passwort des Nutzers
|
|
|
|
private Stage primaryStage;
|
|
@Override
|
|
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
|
|
|
|
mwc = loader.getController();
|
|
mwc.setMain(this, dbc);
|
|
|
|
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
|
|
|
|
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) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
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
|
|
System.out.println("keine XML gefunden!");
|
|
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
|
|
} else {
|
|
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
|
|
dbc.erstelleDatenbank(); // Neue Datenbank-Datei wird erstellt
|
|
System.exit(0); //Programm wird beendet
|
|
}
|
|
}
|
|
|
|
|
|
}
|