diff --git a/src/main/java/projekt/enigma/GuiController.java b/src/main/java/projekt/enigma/GuiController.java index f99efa493b2322f4ccdb81d8f5fd86e186a350b4..f9071051719f976bffc3422a08663437fb106ea5 100644 --- a/src/main/java/projekt/enigma/GuiController.java +++ b/src/main/java/projekt/enigma/GuiController.java @@ -1,5 +1,7 @@ package projekt.enigma; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; import javafx.concurrent.Task; import javafx.event.ActionEvent; import javafx.fxml.FXML; @@ -35,6 +37,7 @@ public class GuiController { private boolean resetDisplay; private Codierer codierer; + private enum BUCHSTABE_LEUCHTET {AN, AUS} @FXML @@ -70,7 +73,7 @@ public class GuiController { tfStecker9, tfStecker10, tfCodiert, tfKlartext; //deklariert benötigtes pane @FXML - private Pane portPane; + private Pane portPane0, portPane1, portPane2, portPane3, portPane4, portPane5, portPane6, portPane7, portPane8, portPane9; //deklariert benötigtes GridPane @FXML private GridPane mainGrid; @@ -90,7 +93,7 @@ public class GuiController { textEingabe = ""; textCodiert = ""; resetDisplay = true; - lblKenngruppe.setText(this.codierer.getKenngruppe()); + //Einträge für Walzen menu(mBtnWalzPos1, walzenNr); @@ -180,24 +183,79 @@ public class GuiController { } } + private void switchPortVisible(int port, boolean status) { + switch (port) { + case 0: + portPane0.setVisible(status); + break; + case 1: + portPane1.setVisible(status); + break; + case 2: + portPane2.setVisible(status); + break; + case 3: + portPane3.setVisible(status); + break; + case 4: + portPane4.setVisible(status); + break; + case 5: + portPane5.setVisible(status); + break; + case 6: + portPane6.setVisible(status); + break; + case 7: + portPane7.setVisible(status); + break; + case 8: + portPane8.setVisible(status); + break; + case 9: + portPane9.setVisible(status); + break; + default: + + break; + } + } + /** * TODO * * @param countOfBtn */ private void myToggleButtons(int countOfBtn) { - final ToggleGroup cabelConnect = new ToggleGroup(); - tBtnPort = new ToggleButton[countOfBtn]; for (int i = 0; i < countOfBtn; i++) { + switchPortVisible(i, false); tBtnPort[i] = new ToggleButton(i + "Port"); tBtnPort[i].setAlignment(Pos.CENTER_RIGHT); tBtnPort[i].setToggleGroup(cabelConnect); - if (i == 0) tBtnPort[0].setSelected(true); - + //if (i == 0) tBtnPort[0].setSelected(true); + /* tBtnPort[i].setOnAction(event -> { + *//* portPane[].setVisible(false);*//* + });*/ mainGrid.setMargin(tBtnPort[i], new Insets(0, 15, 0, 15)); mainGrid.add(tBtnPort[i], i + 1, 8); + cabelConnect.selectedToggleProperty(). + addListener(new ChangeListener<Toggle>() { + @Override + public void changed(ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle newValue) { + //TODO + for (int j = 0; j < 10; j++) { + if (cabelConnect.getSelectedToggle() == tBtnPort[j]) { + switchPortVisible(j, true); + } else if (cabelConnect.getSelectedToggle() != tBtnPort[j]) { + /* if (cabelConnect.getSelectedToggle() == tBtnPort[i]) {*/ + switchPortVisible(j, false); + /* }*/ + } + } + } + }); } } @@ -382,29 +440,6 @@ public class GuiController { this.resetDisplay = true; this.setzeTagesSchluessel(); } - /* if (e.getSource() == btnPort0) { - //TODO - //VBox vbox = new VBox(); - } - if (e.getSource() == btnPort1) { - }//TODO pane0 anzeigen - if (e.getSource() == btnPort2) { - }//TODO pane0 anzeigen - if (e.getSource() == btnPort3) { - }//TODO pane0 anzeigen - if (e.getSource() == btnPort4) { - }//TODO pane0 anzeigen - if (e.getSource() == btnPort5) { - }//TODO pane0 anzeigen - if (e.getSource() == btnPort6) { - }//TODO pane0 anzeigen - if (e.getSource() == btnPort7) { - }//TODO pane0 anzeigen - if (e.getSource() == btnPort8) { - }//TODO pane0 anzeigen - if (e.getSource() == btnPort9) { - }//TODO pane0 anzeigen*/ - } //endregion @@ -831,27 +866,6 @@ public class GuiController { setzeSteckverbindungen(); // Setzt das Steckbrett generateSteckbrett(); - -/* btnPort0.setText(codierer.fetchSteckverbindungen()[0][0] + "" + - codierer.fetchSteckverbindungen()[0][1]); - btnPort1.setText(codierer.fetchSteckverbindungen()[1][0] + "" + - codierer.fetchSteckverbindungen()[1][1]); - btnPort2.setText(codierer.fetchSteckverbindungen()[2][0] + "" + - codierer.fetchSteckverbindungen()[2][1]); - btnPort3.setText(codierer.fetchSteckverbindungen()[3][0] + "" + - codierer.fetchSteckverbindungen()[3][1]); - btnPort4.setText(codierer.fetchSteckverbindungen()[4][0] + "" + - codierer.fetchSteckverbindungen()[4][1]); - btnPort5.setText(codierer.fetchSteckverbindungen()[5][0] + "" + - codierer.fetchSteckverbindungen()[5][1]); - btnPort6.setText(codierer.fetchSteckverbindungen()[6][0] + "" + - codierer.fetchSteckverbindungen()[6][1]); - btnPort7.setText(codierer.fetchSteckverbindungen()[7][0] + "" + - codierer.fetchSteckverbindungen()[7][1]); - btnPort8.setText(codierer.fetchSteckverbindungen()[8][0] + "" + - codierer.fetchSteckverbindungen()[8][1]); - btnPort9.setText(codierer.fetchSteckverbindungen()[9][0] + "" + - codierer.fetchSteckverbindungen()[9][1]);*/ this.textCodiert = ""; this.textEingabe = ""; this.tfKlartext.setText(""); @@ -869,7 +883,8 @@ public class GuiController { codierer = new Codierer(kenngruppe); this.codierer.resetHardware(); - + //Setzt die Kenngruppe in der GUI + lblKenngruppe.setText(this.codierer.getKenngruppe()); // Beim nächsten Tastendruck erstmal das Display löschen damit falschen Nachrichten geschickt werden. resetDisplay = true;