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