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 0000000000000000000000000000000000000000..bd47f665bdb95e920fc7e2b891d4d0a633dc3cc4 --- /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; + } +} +