diff --git a/src/main/java/projekt/enigma/GuiController.java b/src/main/java/projekt/enigma/GuiController.java index f99efa493b2322f4ccdb81d8f5fd86e186a350b4..97d1b263c68c323e358af2cbe9e57a905134899e 100644 --- a/src/main/java/projekt/enigma/GuiController.java +++ b/src/main/java/projekt/enigma/GuiController.java @@ -10,9 +10,7 @@ import javafx.scene.input.MouseEvent; import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; import javafx.scene.shape.Circle; -import javafx.stage.StageStyle; import org.apache.http.HttpException; -import org.controlsfx.dialog.ProgressDialog; import projekt.enigma.model.Codierer; import projekt.enigma.model.Fehler; @@ -56,10 +54,10 @@ public class GuiController { @FXML private Label lblA, lblB, lblC, lblD, lblE, lblF, lblG, lblH, lblI, lblJ, lblK, lblL, lblM, lblN, lblO, lblP, lblQ, lblR, lblS, lblT, lblU, lblV, lblW, lblX, lblY, lblZ, lblLadeNachricht, lblTagesschluessel, - lblSpruchschluessel, lblKenngruppe; - //deklariert die ProgressBar + lblSpruchschluessel, lblKenngruppe, lblProgressText; + //deklariert den ProgressIndicator @FXML - private ProgressBar pbLadeNachricht; + private ProgressIndicator piProgress; //deklariert die MenueButtons @FXML private MenuButton mBtnWalzPos1, mBtnWalzPos2, mBtnWalzPos3, mBtnNotchPos1, mBtnNotchPos2, mBtnNotchPos3, @@ -70,7 +68,7 @@ public class GuiController { tfStecker9, tfStecker10, tfCodiert, tfKlartext; //deklariert benötigtes pane @FXML - private Pane portPane; + private Pane portPane, paneProgress; //deklariert benötigtes GridPane @FXML private GridPane mainGrid; @@ -90,7 +88,6 @@ public class GuiController { textEingabe = ""; textCodiert = ""; resetDisplay = true; - lblKenngruppe.setText(this.codierer.getKenngruppe()); //Einträge für Walzen menu(mBtnWalzPos1, walzenNr); @@ -550,25 +547,7 @@ public class GuiController { * sowie den Klartext in das Textfeld tfKlartext. Setzt den Spruchschlüssel */ private void empfangeFunkspruch() { - - progressDialogue("rx"); - - try { - if (this.empfangeneNachricht[2] != null && this.empfangeneNachricht[1] != null) { - setzeTagesSchluessel(); - tfKlartext.setText(this.empfangeneNachricht[2]); - tfCodiert.setText(this.empfangeneNachricht[1]); - resetDisplay = true; - - // Spruchschluessel in das Feld lblSpruchschluessel schreiben - lblSpruchschluessel.setText(codierer.empfangenerSpruchschluessel(this.empfangeneNachricht[2])); - } - } catch (NullPointerException ignored) { - new Fehler().showErrorDialog( - "warning", - "Keiner schreibt dir...", - "Es liegen keine neuen Nachrichten im Funkraum für Sie vor."); - } + funkraumProgressDialogue("rx"); } /** @@ -576,11 +555,10 @@ public class GuiController { * Löscht die Textfelder tfKlartext und tfCodiert */ private void sendeFunkspruch() { - this.tfKlartext.setText(""); this.tfCodiert.setText(""); - progressDialogue("tx"); + funkraumProgressDialogue("tx"); } /** @@ -588,25 +566,18 @@ public class GuiController { * * @param strRxTx */ - private void progressDialogue(String strRxTx) { - + private void funkraumProgressDialogue(String strRxTx) { Task copyWorker = createWorker(strRxTx); - ProgressDialog dialog = new ProgressDialog(copyWorker); - dialog.initStyle(StageStyle.TRANSPARENT); - dialog.setGraphic(null); - dialog.initStyle(StageStyle.TRANSPARENT); - dialog.setTitle("Kommunikation zum Funkraum"); if (strRxTx.equals("rx")) { - dialog.setContentText("Empfange Nachricht"); + //dialog.setContentText("Empfange Nachricht"); + paneProgress.setVisible(true); } else if (strRxTx.equals("tx")) { - dialog.setContentText("Sende Nachricht"); + paneProgress.setVisible(true); + //dialog.setContentText("Sende Nachricht"); } - dialog.setHeaderText(null); - dialog.setGraphic(null); - dialog.initStyle(StageStyle.UTILITY); + new Thread(copyWorker).start(); - dialog.showAndWait(); } /** @@ -619,16 +590,33 @@ public class GuiController { return new Task() { @Override protected Object call() throws Exception { - if (strRxTx.equals("rx")) { - empfangeneNachricht = codierer.empfangeNachricht(); - } else if (strRxTx.equals("tx")) { - try { + try { + if (strRxTx.equals("rx")) { + empfangeneNachricht = codierer.empfangeNachricht(); + try { + if (empfangeneNachricht[2] != null && empfangeneNachricht[1] != null) { + setzeTagesSchluessel(); + tfKlartext.setText(empfangeneNachricht[2]); + tfCodiert.setText(empfangeneNachricht[1]); + resetDisplay = true; + + // Spruchschluessel in das Feld lblSpruchschluessel schreiben + lblSpruchschluessel.setText(codierer.empfangenerSpruchschluessel(empfangeneNachricht[2])); + } + } catch (NullPointerException ignored) { + new Fehler().showErrorDialog( + "warning", + "Keiner schreibt dir...", + "Es liegen keine neuen Nachrichten im Funkraum für Sie vor."); + } + } else if (strRxTx.equals("tx")) { codierer.sendeNachricht(); - } catch (HttpException | IOException e) { - e.printStackTrace(); } + } catch (HttpException | IOException e) { + e.printStackTrace(); + } finally { + paneProgress.setVisible(false); } - return true; } };