Skip to content
Snippets Groups Projects
Commit 5e868e11 authored by Dennis Eisold's avatar Dennis Eisold
Browse files

Merge branch 'master' into 'master'

Bugs (hoffentlich) alle behoben. closes #7

Closes #7

See merge request !138
parents 5ffb06fd 4acc400f
No related branches found
No related tags found
1 merge request!138Bugs (hoffentlich) alle behoben. closes #7
Pipeline #448 passed with stages
in 2 minutes and 5 seconds
......@@ -37,7 +37,7 @@ public class App extends Application {
* @param args : String[] : Standard-Kommandozeilen-Argument.
*/
public static void main(String[] args) {
debug = 1;
debug = 0;
launch(args);
}
......@@ -64,6 +64,7 @@ public class App extends Application {
Label lblEingbae = new Label("Bitte Kenngruppe eingeben!");
TextField tfEingabe = new TextField();
tfEingabe.setText("Enigma");
Button btnKenngruppe = new Button("Kenngruppe setzen!");
VBox layout = new VBox();
layout.setSpacing(30);
......
This diff is collapsed.
This diff is collapsed.
......@@ -74,12 +74,31 @@ public class Steckbrett {
* @return boolean : Wenn die Vertauschung zulaessig ist, true, ansonsten false.
*/
public boolean setzeVertauschung(int steckbrettPort, char buchstabe1, char buchstabe2) {
if (!ueberpruefeVertauschungen(buchstabe1) && !ueberpruefeVertauschungen(buchstabe2)) {
originalBuchstaben = originalBuchstaben.replace(originalBuchstaben.charAt(steckbrettPort), buchstabe1);
getauschteBuchstaben
= getauschteBuchstaben.replace(getauschteBuchstaben.charAt(steckbrettPort), buchstabe2);
char[] original;
char[] getauscht;
new Fehler().debug("setzeVertauschung(int " + steckbrettPort + ", char |" + buchstabe1 + "|, char |" + buchstabe2 + "|)", false);
if ((!ueberpruefeVertauschungen(buchstabe1) && !ueberpruefeVertauschungen(buchstabe2)) ||
(buchstabe1 == ' ' && buchstabe2 == ' ')) {
new Fehler().debug("-> Original:\t" + originalBuchstaben, false);
new Fehler().debug("-> Getauscht:\t" + getauschteBuchstaben, false);
original = originalBuchstaben.toCharArray();
getauscht = getauschteBuchstaben.toCharArray();
original[steckbrettPort] = buchstabe1;
getauscht[steckbrettPort] = buchstabe2;
originalBuchstaben = String.valueOf(original);
getauschteBuchstaben = String.valueOf(getauscht);
new Fehler().debug("<- Original:\t" + originalBuchstaben, false);
new Fehler().debug("<- Getauscht:\t" + getauschteBuchstaben, false);
new Fehler().debug("true\tOS: |" + originalBuchstaben + "| GS: |" + getauschteBuchstaben + "|", false);
return true;
} else {
new Fehler().debug("false\tOS: |" + originalBuchstaben + "| GS: |" + getauschteBuchstaben + "|", false);
return false;
}
}
......@@ -94,7 +113,7 @@ public class Steckbrett {
*
* @param buchstabe : Character: zu pruefender Buchstabe.
* @return result : boolean : Wenn false, dann darf der Buchstabe genutzt werden. Wenn er schon vorhanden ist,
* wird true zurueckgegeben.
* wird true zurueckgegeben.
*/
public boolean ueberpruefeVertauschungen(Character buchstabe) {
boolean result = false;
......
package projekt.enigma.view;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.GridPane;
import projekt.enigma.model.Codierer;
import java.util.Arrays;
/**
* TODO: Doku
*/
public class ChkBoxGridPane extends GridPane {
private CheckBox[] checkbox;
private char[] alphabet;
private int charSize;
private CheckBox[] checkbox;
private String checkedBuchstaben;
private int charSize;
private Codierer codierer;
private int port;
private char[] verfuegbareBuchstaben;
private ToggleButton tBtnPort;
/**
* TODO: Doku
*
* @param codierer : Codierer
* @param port : int
*/
public ChkBoxGridPane(Codierer codierer, int port, ToggleButton tBtnPort) {
this.codierer = codierer;
this.port = port;
this.tBtnPort = tBtnPort;
this.verfuegbareBuchstaben = this.codierer.fetchVerfuegbareBuchstaben(this.port).toCharArray();
Arrays.sort(this.verfuegbareBuchstaben);
charSize = this.verfuegbareBuchstaben.length;
this.checkedBuchstaben = tBtnPort.getText();
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() {
checkbox = new CheckBox[charSize];
this.setAlignment(Pos.CENTER);
System.out.println("----->>>>>" + String.valueOf(this.verfuegbareBuchstaben));
for (int i = 0; i < this.verfuegbareBuchstaben.length; i++) {
if (this.verfuegbareBuchstaben[i] != 20 && this.verfuegbareBuchstaben[i] != ' ') {
checkbox[i] = new CheckBox(this.verfuegbareBuchstaben[i] + "");
checkbox[i].setPadding(new Insets(1, 1, 1, 1));
/**
* TODO: Doku
* @param alphabet
*/
public ChkBoxGridPane(char[] alphabet) {
charSize = alphabet.length;
this.alphabet = alphabet;
initializeComponents();
}
if (!checkedBuchstaben.equals("")) {
if (!checkedBuchstaben.contains(String.valueOf(this.verfuegbareBuchstaben[i]))) {
checkbox[i].setDisable(true);
} else {
checkbox[i].setSelected(true);
}
} else {
checkbox[i].setSelected(false);
checkbox[i].setDisable(false);
}
/**
* 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() {
checkbox = new CheckBox[charSize];
this.setAlignment(Pos.CENTER);
checkbox[i].selectedProperty().addListener((observable, oldValue, newValue) -> {
String portSelection = "";
int zaehler = 0;
for (int i = 0; i < alphabet.length; i++) {
checkbox[i] = new CheckBox(alphabet[i] + "");
for (CheckBox cb : checkbox) {
if (cb != null && cb.isSelected()) {
zaehler++;
}
}
if (zaehler == 1 || zaehler == 0) {
for (CheckBox cb : checkbox) {
if (cb != null && cb.isDisabled()) {
cb.setDisable(false);
}
}
}
if (zaehler == 0) {
this.codierer.setzeSteckbrett(this.port, "");
tBtnPort.setText(portSelection);
}
if (zaehler == 2) {
for (CheckBox cb : checkbox) {
if (cb != null && !cb.isSelected()) {
cb.setDisable(true);
} else {
if (cb != null) {
portSelection += cb.getText();
}
}
}
this.codierer.setzeSteckbrett(this.port, "");
this.codierer.setzeSteckbrett(this.port, portSelection);
tBtnPort.setText(portSelection);
}
});
this.addRow(i + 1);
this.add(checkbox[i], 2, i + 1, 1, 1);
//if (i==0)checkbox[0].setSelected(true);
}
this.setVisible(true);
}
this.addRow(i + 1);
this.add(checkbox[i], 2, i + 1, 1, 1);
}
}
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;
}
/**
* 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
* @return
*/
public int getCharSize() {
return charSize;
}
/**
* TODO: Doku
*
* @return
*/
public int getCharSize() {
return charSize;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment