From a118b4643b5dc504d33178a10b8436d2a3c72eea Mon Sep 17 00:00:00 2001
From: Dennis Eisold <de@itstall.de>
Date: Thu, 5 Dec 2019 22:40:05 +0100
Subject: [PATCH] Code dokumentiert und auf Java Konventionen korrigiert

---
 .../java/projekt/enigma/model/Codierer.java   |  5 +-
 src/main/java/projekt/enigma/model/Walze.java |  1 -
 .../projekt/enigma/view/ChkBoxGridPane.java   | 60 +++++++++++--------
 3 files changed, 38 insertions(+), 28 deletions(-)

diff --git a/src/main/java/projekt/enigma/model/Codierer.java b/src/main/java/projekt/enigma/model/Codierer.java
index c12c1e8..bc724b6 100644
--- a/src/main/java/projekt/enigma/model/Codierer.java
+++ b/src/main/java/projekt/enigma/model/Codierer.java
@@ -283,14 +283,13 @@ public class Codierer {
      *
      * @param port       : int : Kabel Nummer, welches am Steckbrett eingesteckt wird.
      * @param verbindung : String : Verbindung, welche die vertauschten Buchstaben angibt.
-     * @return boolean : Wenn true, darf das Kabel gesteckt werden, wenn false, steckt da bereits schon eines.
      */
-    public boolean setzeSteckbrett(int port, String verbindung) {
+    public void setzeSteckbrett(int port, String verbindung) {
         if (verbindung.equals("")) {
             verbindung = "  ";
         }
 
-        return this.hardware.getSteckbrett().setzeVertauschung(port, verbindung.charAt(0), verbindung.charAt(1));
+        this.hardware.getSteckbrett().setzeVertauschung(port, verbindung.charAt(0), verbindung.charAt(1));
     }
     //endregion
 
diff --git a/src/main/java/projekt/enigma/model/Walze.java b/src/main/java/projekt/enigma/model/Walze.java
index 46eafd2..cd2324c 100644
--- a/src/main/java/projekt/enigma/model/Walze.java
+++ b/src/main/java/projekt/enigma/model/Walze.java
@@ -131,7 +131,6 @@ public class Walze {
 	 *
 	 * @param walzenNr : int : Walzennummer.
 	 */
-	//TODO: Überprüfung notwendig? Wo findet Überprüfung statt?
 	private void setWalzenNr(int walzenNr) {
 		if ((walzenNr > 0) && (walzenNr < 6)) {
 			this.walzenNr = walzenNr - 1;
diff --git a/src/main/java/projekt/enigma/view/ChkBoxGridPane.java b/src/main/java/projekt/enigma/view/ChkBoxGridPane.java
index 395dac8..209bf39 100644
--- a/src/main/java/projekt/enigma/view/ChkBoxGridPane.java
+++ b/src/main/java/projekt/enigma/view/ChkBoxGridPane.java
@@ -10,22 +10,40 @@ import projekt.enigma.model.Codierer;
 import java.util.Arrays;
 
 /**
- * TODO: Doku
+ * Die Klasse ChkBoxGripPane erweitert das GridPane Objekt.
+ * Wir erstellen ein GridPane in welches Checkboxen gelegt werden.
+ * Die Anzahl der Checkboxen wird durch die verfuegbarenBuchstaben festgelegt.
+ * Für jeden Buchstaben in diesem char Array, wird eine Checkbox erstellt und auf das Gridpane gelegt.
  */
 public class ChkBoxGridPane extends GridPane {
+
+    // Der globale Checkbox Array
     private CheckBox[] checkbox;
+    // Die Buchstaben die für das jeweilige Pane selectiert werden sollen
     private String checkedBuchstaben;
+    // Die Anzahl der möglichen Checkboxen
     private int charSize;
+    // Das Codierer Objekt. Dieses wird benötigt um auf die Funktionen für das Steckbrett zuzugreifen
     private Codierer codierer;
+    // Der Steckbrett Port für welchen das Pane und die Checkboxen erstellt werden sollen
     private int port;
+    // Die verfügbaren Buchstaben für den jeweiligen Port
     private char[] verfuegbareBuchstaben;
+    // Das Button Objekt des Ports über den dieses Pane gesteuert wird
     private ToggleButton tBtnPort;
 
     /**
-     * TODO: Doku
+     * Hier werfen wir die Checkboxen auf das Gridpane und weißen ihnen die Propertys zu.
+     * Außerdem wird hier auch der Listener generiert womit wir prüfen ob die maximale Auswahlmöglichkeit
+     * erreicht ist.
+     * Es können maximal zwei Checkboxen ausgewählt werden. Wenn zwei erreicht sind, werden die restlichen Checkboxen
+     * deaktiviert. Wenn nur noch eine oder keine Box ausgewählt ist, werden die restlichen wieder aktiviert.
+     * Bei null und zwei Boxen, werden die Buchstaben in das Steckbrett geschrieben.
+     * Andere Auswahlmöglchkeiten stehen nicht zur Verfügung, da ein Kabel nur zwei Enden hat in der Regel.
      *
-     * @param codierer : Codierer
+     * @param codierer : Codierer Objekt
      * @param port     : int
+     * @param tBtnPort : ToogleButton
      */
     public ChkBoxGridPane(Codierer codierer, int port, ToggleButton tBtnPort) {
         this.codierer = codierer;
@@ -48,8 +66,7 @@ public class ChkBoxGridPane extends GridPane {
 
         this.setAlignment(Pos.CENTER);
 
-        System.out.println("----->>>>>" + String.valueOf(this.verfuegbareBuchstaben));
-
+        // Für jeden verfügbaren Buchstaben einen Durchlauf
         for (int i = 0; i < this.verfuegbareBuchstaben.length; i++) {
             if (this.verfuegbareBuchstaben[i] != 20 && this.verfuegbareBuchstaben[i] != ' ') {
                 checkbox[i] = new CheckBox(this.verfuegbareBuchstaben[i] + "");
@@ -66,15 +83,18 @@ public class ChkBoxGridPane extends GridPane {
                     checkbox[i].setDisable(false);
                 }
 
+                // Der Listener für die jeweilige Checkbox
                 checkbox[i].selectedProperty().addListener((observable, oldValue, newValue) -> {
                     String portSelection = "";
                     int zaehler = 0;
 
+                    // Die selektierten Chechkboxen zählen
                     for (CheckBox cb : checkbox) {
                         if (cb != null && cb.isSelected()) {
                             zaehler++;
                         }
                     }
+                    // Wenn nur eine oder keine Checkbox ausgewählt ist
                     if (zaehler == 1 || zaehler == 0) {
                         for (CheckBox cb : checkbox) {
                             if (cb != null && cb.isDisabled()) {
@@ -82,10 +102,14 @@ public class ChkBoxGridPane extends GridPane {
                             }
                         }
                     }
+                    // Es ist keine Checkbox ausgewählt
                     if (zaehler == 0) {
+                        // Daten ins Steckbrett schreiben
                         this.codierer.setzeSteckbrett(this.port, "");
+                        // Und den Button neu beschreiben
                         tBtnPort.setText(portSelection);
                     }
+                    // Das Maximum an selektierten Checkboxen (2) ist erreicht
                     if (zaehler == 2) {
                         for (CheckBox cb : checkbox) {
                             if (cb != null && !cb.isSelected()) {
@@ -96,40 +120,28 @@ public class ChkBoxGridPane extends GridPane {
                                 }
                             }
                         }
+                        // Daten ins Steckbrett schreiben
                         this.codierer.setzeSteckbrett(this.port, "");
                         this.codierer.setzeSteckbrett(this.port, portSelection);
+                        // Und den Button neu beschreiben
                         tBtnPort.setText(portSelection);
                     }
                 });
 
+                // Eine neue Row im Gridpane anlegen für den nächsten Button
                 this.addRow(i + 1);
                 this.add(checkbox[i], 2, i + 1, 1, 1);
             }
         }
+        // Das Pane anzeigen
         this.setVisible(true);
     }
 
     /**
-     * Prüft welche CheckBox aus gewählt und gibt deren
-     * Index zurück
-     *
-     * @return Integer
-     */
-    private Integer isCheckedChkBoxIndex() {
-        for (int i = 0; i < charSize; i++) {
-            if (checkbox[i].isSelected()) {
-                return i;
-            } else {
-                return null;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * TODO: Doku
+     * Gibt den Anzahl der zur Verfügung stehenden Buchstaben zurück.
+     * Anhang dieses Wertes, wird die Anzahl der Checkboxen festgelegt.
      *
-     * @return
+     * @return int : Anzahl der möglcihen chars
      */
     public int getCharSize() {
         return charSize;
-- 
GitLab