From e81f4d2b613bc803fc31401127a928eecb1d80f6 Mon Sep 17 00:00:00 2001
From: Dennis Eisold <de@itstall.de>
Date: Thu, 5 Dec 2019 00:43:10 +0100
Subject: [PATCH] =?UTF-8?q?Progress=20Dialog=20f=C3=BCr=20Funkraum?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java/projekt/enigma/GuiController.java    | 84 ++++++++-----------
 1 file changed, 36 insertions(+), 48 deletions(-)

diff --git a/src/main/java/projekt/enigma/GuiController.java b/src/main/java/projekt/enigma/GuiController.java
index f99efa4..97d1b26 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;
             }
         };
-- 
GitLab