package karteikasten;
import Dialog.DialogFX;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.Properties;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TextArea;
import javafx.scene.input.MouseEvent;
import javafx.scene.text.Text;
public class Controller_01 implements Initializable {
public static final String DIR = "C:\\Users\\Lukas\\AppData\\Roaming\\Tutorio";
private static int fragenID;
private static final Properties inst = new Properties();
private static final HashMap fragen = new HashMap();
private static final HashMap antworten = new HashMap();
private static final Properties newAntworten = new Properties();
private static final Properties newFragen = new Properties();
@FXML
TextArea txt_Frage = new TextArea();
@FXML
TextArea txt_Antwort = new TextArea();
@FXML
static TextArea txt_Frage_anzeige = new TextArea();
@FXML
TextArea txt_Antwort_eingabe = new TextArea();
Main con = new Main();
public static void init() throws IOException{
try {
inst.load(new FileInputStream(new File(DIR + "\\install.config")));
} catch (IOException ex) {
Logger.getLogger(Controller_01.class.getName()).log(Level.SEVERE, null, ex);
}
@SuppressWarnings("LocalVariableHidesMemberVariable")
File fragen = new File(DIR + "\\Fragen");
@SuppressWarnings("LocalVariableHidesMemberVariable")
File antworten = new File(DIR + "\\Antworten");
if (!fragen.exists()) {
fragen.createNewFile();
}
if (!antworten.exists()) {
antworten.createNewFile();
}
}
private static void fragenSpeichern(String frage, String antwort) throws IOException{
try {
newFragen.load(new FileInputStream(new File(inst.getProperty("Fragen"))));
newAntworten.load(new FileInputStream(new File(inst.getProperty("Antworten"))));
} catch (FileNotFoundException ex) {
Logger.getLogger(Controller_01.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Controller_01.class.getName()).log(Level.SEVERE, null, ex);
}
int letzteFrage = newFragen.size();
int letzteAntwort = newAntworten.size();
newFragen.setProperty(String.valueOf(letzteFrage++), frage);
newAntworten.setProperty(String.valueOf(letzteAntwort++), antwort);
try {
newFragen.store(new FileOutputStream(new File(inst.getProperty("Fragen"))), null);
newAntworten.store(new FileOutputStream(new File(inst.getProperty("Antworten"))), null);
} catch (FileNotFoundException ex) {
Logger.getLogger(Controller_01.class.getName()).log(Level.SEVERE, null, ex);
}
}
private static void fragenHolen(){
System.err.println("Fragen aus propFile holen und in HashMap temporär speichern");
String fragenDatei = inst.getProperty("Fragen");
String antwortenDatei = inst.getProperty("Antworten");
try {
newFragen.load(new FileInputStream(new File(fragenDatei)));
newAntworten.load(new FileInputStream(new File(antwortenDatei)));
} catch (IOException ex) {
Logger.getLogger(Controller_01.class.getName()).log(Level.SEVERE, null, ex);
}
int anzahlAnFragen = newFragen.size();
int anzahlAnAntworten = newAntworten.size();
for (int i = 0; i < anzahlAnFragen; i++) {
System.out.println(newFragen.getProperty(String.valueOf(i)));
fragen.put(String.valueOf(i), newFragen.getProperty(String.valueOf(i)));
}
for (int i = 0; i < anzahlAnAntworten; i++) {
System.out.println(newAntworten.getProperty(String.valueOf(i)));
antworten.put(String.valueOf(i), newAntworten.getProperty(String.valueOf(i)));
}
}
private static void fragenStellen(){
if (fragen.isEmpty()) {
DialogFX fertig = new DialogFX(DialogFX.Type.INFO);
fertig.setMessage("Deine Abfrage ist nun beendet");
Main.goToHauptmenue();
}
int letzteFrage = fragen.size();
System.out.println("Letzte Frage :\t"+letzteFrage);
int id = (int) (Math.random()*letzteFrage);
System.out.println("Random :\t"+id);
fragenID = id;
frageAnzeigen(String.valueOf(fragen.get(id)));
System.out.println("Frage gestellt :\t"+String.valueOf(fragen.get(String.valueOf(id))));
fragen.remove(id);
}
@FXML
public static void frageAnzeigen(String frage){
txt_Frage_anzeige.setText(frage);
}
@FXML
public void abfrage(MouseEvent e) throws Exception{
con.goToAbfrage();
fragenHolen();
fragenStellen();
}
@FXML
public void eingabe(MouseEvent e){
con.goToEingabe();
}
@FXML
public void benutzer(MouseEvent e){
}
@FXML
public void speichern(MouseEvent e){
System.err.println("Speichern aufgerufen");
String frage = txt_Frage.getText();
String antwort = txt_Antwort.getText();
System.out.println("Frage :\t" + frage + "\t\tAntwort :\t" + antwort);
if ("".equals(frage) || "".equals(antwort)) {
System.err.println("LEER");
DialogFX dialog = new DialogFX(DialogFX.Type.ERROR);
dialog.setMessage("Füllen Sie bitte alle Felder aus um zu speichern");
dialog.showDialog();
}
else{
try {
fragenSpeichern(txt_Frage.getText(), txt_Antwort.getText());
} catch (IOException ex) {
Logger.getLogger(Controller_01.class.getName()).log(Level.SEVERE, null, ex);
}
txt_Frage.setText("");
txt_Antwort.setText("");
}
}
@FXML
public void Hauptmenü(MouseEvent e){
Main.goToHauptmenue();
}
@FXML
public void pruefen(MouseEvent e){
System.out.println("Frage :\t" + txt_Frage_anzeige.getText() + "\t\tAntwort :\t" + txt_Antwort_eingabe.getText());
DialogFX dialogRichtig = new DialogFX();
dialogRichtig.setType(DialogFX.Type.INFO);
dialogRichtig.setMessage("Deine Antwort war richtig");
DialogFX dialogFalsch = new DialogFX();
dialogFalsch.setType(DialogFX.Type.INFO);
dialogFalsch.setMessage("Deine Antwort war leider falsch");
String antwort = txt_Antwort_eingabe.getText();
String richtig = (String) antworten.get(String.valueOf(fragenID));
if (antwort.equals(richtig)) {
dialogRichtig.showDialog();
antworten.remove(fragenID);
txt_Antwort_eingabe.setText("");
txt_Frage_anzeige.setText("");
fragenStellen();
}
else {
dialogFalsch.showDialog();
}
}
@Override
public void initialize(URL url, ResourceBundle rb) {
}
}