2018-03-29 19:51:34 +02:00
package application ;
2018-03-29 19:45:41 +02:00
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 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 ;
2018-03-29 19:51:34 +02:00
public class Main extends Application
{
2018-03-29 19:45:41 +02:00
private MainWindowController mwc ;
2018-03-29 19:51:34 +02:00
2018-03-29 19:45:41 +02:00
private DBController dbc = new DBController ( this ) ;
2018-03-29 19:51:34 +02:00
private String schluesselNutzer ; // Passwort des Nutzers
2018-03-29 19:45:41 +02:00
private Stage primaryStage ;
2018-03-29 19:51:34 +02:00
2018-03-29 19:45:41 +02:00
@Override
2018-03-29 19:51:34 +02:00
public void start ( Stage primaryStage )
{
2018-03-29 19:45:41 +02:00
this . primaryStage = primaryStage ;
mainWindow ( ) ;
2018-03-31 00:35:45 +02:00
//this.primaryStage.setResizable(false);
2018-03-29 19:45:41 +02:00
}
2018-03-29 19:51:34 +02:00
private void mainWindow ( )
{
2018-03-29 19:45:41 +02:00
try {
2018-03-29 19:51:34 +02:00
FXMLLoader loader = new FXMLLoader (
getClass ( ) . getResource ( " MainWindow.fxml " ) ) ;
2018-03-29 19:45:41 +02:00
AnchorPane pane = loader . load ( ) ;
2018-03-29 19:51:34 +02:00
// Test
2018-03-29 19:53:05 +02:00
//Test
2018-03-31 02:00:12 +02:00
//primaryStage.setWidth(1366);
//primaryStage.setHeight(732);
2018-03-29 19:51:34 +02:00
primaryStage . setTitle ( " jFxKasse " ) ; // Title der Stage
2018-03-29 19:45:41 +02:00
mwc = loader . getController ( ) ;
mwc . setMain ( this , dbc ) ;
2018-03-29 19:51:34 +02:00
firstStart ( ) ; // Prüft ob das Programm zuvor gestartet wurde
2018-03-31 23:50:17 +02:00
// dbc.main(); // Startet die Datenbank
//mwc.fuelleTablle(); // Ladt die Einträge in die Tabelle
2018-03-29 19:45:41 +02:00
Scene scene = new Scene ( pane ) ;
2018-03-29 19:51:34 +02:00
scene . getStylesheets ( )
. add ( Main . class . getResource ( " application.css " ) . toExternalForm ( ) ) ;
primaryStage . setScene ( scene ) ;
primaryStage . show ( ) ; // zeigt die Stage an
} catch ( Exception e ) {
2018-03-29 19:45:41 +02:00
e . printStackTrace ( ) ;
}
}
2018-03-29 19:51:34 +02:00
public static void main ( String [ ] args )
{
2018-03-29 19:45:41 +02:00
launch ( args ) ;
}
2018-03-29 19:51:34 +02:00
private void firstStart ( ) throws Exception
{
2018-03-31 00:35:45 +02:00
2018-03-29 19:51:34 +02:00
if ( mwc . loadSettings ( ) ) { // Wenn XML gefunden
2018-03-31 23:50:17 +02:00
System . out . println ( " XML gefunden! " ) ;
mwc . initUI ( ) ; // Startet die UI
mwc . setDBLabel ( ) ;
dbc . dbname = mwc . getDatabaseName ( ) ;
2018-03-29 19:51:34 +02:00
dbc . verbindeDatenbank ( ) ; // Verbindet mit der Datenbank-Datei
2018-03-31 23:50:17 +02:00
2018-03-29 19:51:34 +02:00
} else { // Wenn keine XML gefunden --> erster Start
2018-03-29 19:45:41 +02:00
System . out . println ( " keine XML gefunden! " ) ;
2018-03-29 19:51:34 +02:00
if ( System . getProperty ( " os.name " ) . equals ( " Linux " ) ) {
2018-03-29 19:45:41 +02:00
2018-03-29 19:51:34 +02:00
File dir = new File (
2018-03-31 23:50:17 +02:00
System . getProperty ( " user.home " ) + " /bin/jFxKasse " ) ; // Erstellt
2018-03-29 19:51:34 +02:00
// den
// Unterordner
dir . mkdir ( ) ; // Erstellt den Unterordner
2018-03-29 19:45:41 +02:00
} else {
2018-03-31 23:50:17 +02:00
File dir = new File ( " C:/ProgramData/jFxKasse/ " ) ; // Erstellt den
2018-03-29 19:51:34 +02:00
// Unterordner
dir . mkdir ( ) ; // Erstellt den Unterordner
2018-03-29 19:45:41 +02:00
}
2018-03-29 19:51:34 +02:00
2018-03-31 23:50:17 +02:00
// mwc.saveSettings(mwc.getDatabaseName(), "dd"); // speichert das Passwort und
2018-03-29 19:51:34 +02:00
// den Individueller
// Schlüssel für die API in
// der XML
2018-03-31 23:50:17 +02:00
//dbc.verbindeDatenbank(); // Verbindet mit der Datenbank-Datei
//dbc.erstelleDatenbank(); // Neue Datenbank-Datei wird erstellt
//System.exit(0); // Programm wird beendet
2018-03-29 19:45:41 +02:00
}
}
2018-03-29 19:51:34 +02:00
2018-03-29 19:45:41 +02:00
}