From 6c522f9cfec4488d9ba2fd90dced98e747be9714 Mon Sep 17 00:00:00 2001
From: PaoloPinkel <eude365sup@outlook.com>
Date: Thu, 5 Dec 2019 10:11:55 +0100
Subject: [PATCH] =?UTF-8?q?ChkBoxGridPane=20neue=20Klasse=20zum=20erzeugen?=
 =?UTF-8?q?=20eines=20GridPane,=20welches=20mit=20Checkboxen=20gef=C3=BCll?=
 =?UTF-8?q?t=20ist.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../projekt/enigma/view/ChkBoxGridPane.java   | 74 +++++++++++++++++++
 1 file changed, 74 insertions(+)
 create mode 100644 src/main/java/projekt/enigma/view/ChkBoxGridPane.java

diff --git a/src/main/java/projekt/enigma/view/ChkBoxGridPane.java b/src/main/java/projekt/enigma/view/ChkBoxGridPane.java
new file mode 100644
index 0000000..bd47f66
--- /dev/null
+++ b/src/main/java/projekt/enigma/view/ChkBoxGridPane.java
@@ -0,0 +1,74 @@
+package projekt.enigma.view;
+
+import javafx.scene.control.CheckBox;
+import javafx.scene.control.ContentDisplay;
+import javafx.scene.control.Label;
+import javafx.scene.layout.GridPane;
+
+public class ChkBoxGridPane extends GridPane {
+    /*private static JPanel panel = new JPanel();*/
+    private static CheckBox[] checkbox;
+    private static Character[] alphabet;/* = {'A','B','C','D'};*/
+    private static int charSize;
+
+    public ChkBoxGridPane(Character[] alphabet) {
+        this.charSize = alphabet.length;
+        this.alphabet = alphabet;
+        initializeComponents();
+    }
+
+    /**
+     * Es wird ein GridPane erzeugt, das zwei Spalten und abhängig von der Länge des
+     * Arrays (Character[] alphabet) Reihen hat. Das Label der CheckBoxen soll
+     * abhängig von deren Index links bzw. recht erzeugt werden
+     */
+    private void initializeComponents() {
+        this.checkbox = new CheckBox[charSize];
+        /* => bei ungerader Anzahl Buchstaben
+         *CheckBox und deren Label erzeugen,  bei geraden Index Zahlen
+         * das Label rechts setzen bei ungeraden links
+         */
+        if (!(charSize % 2 == 0)) {
+            for (int i = 0; i < charSize; i++) {
+                Label lb = new Label(alphabet[i] + "");
+                lb.setGraphic(checkbox[i] = new CheckBox());
+                if(i%2==0)lb.setContentDisplay(ContentDisplay.RIGHT);
+                else if(!(i%2==0)) lb.setContentDisplay(ContentDisplay.LEFT);
+                this.add(checkbox[i],2,(charSize + 1) / 2);
+                //if (i==0)checkbox[0].setSelected(true);
+            }
+
+        }
+        /* => bei gerader Anzahl Buchstaben
+         *CheckBox und deren Label erzeugen,  bei geraden Index Zahlen
+         * das Label rechts setzen bei ungeraden links
+         */
+        else {
+            for (int i = 0; i < charSize; i++) {
+                Label lb = new Label(alphabet[i] + "");
+                lb.setGraphic(checkbox[i] = new CheckBox());
+                if(i%2==0)lb.setContentDisplay(ContentDisplay.RIGHT);
+                else if(!(i%2==0)) lb.setContentDisplay(ContentDisplay.LEFT);
+                this.add(checkbox[i],2,(charSize / 2));
+            }
+        }
+        this.setVisible(true);
+    }
+
+    /**
+     * Prüft welche CheckBox aus gewählt und gibt deren
+     * Index zurück
+     * @return
+     */
+    private Integer isCheckedChkBoxIndex() {
+        for (int i = 0; i < charSize; i++) {
+            if (checkbox[i].isSelected()) {
+                return i;
+            } else {
+               return null;
+            }
+        }
+        return null;
+    }
+}
+
-- 
GitLab