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
No related merge requests found
...@@ -37,7 +37,7 @@ public class App extends Application { ...@@ -37,7 +37,7 @@ public class App extends Application {
* @param args : String[] : Standard-Kommandozeilen-Argument. * @param args : String[] : Standard-Kommandozeilen-Argument.
*/ */
public static void main(String[] args) { public static void main(String[] args) {
debug = 1; debug = 0;
launch(args); launch(args);
} }
...@@ -64,6 +64,7 @@ public class App extends Application { ...@@ -64,6 +64,7 @@ public class App extends Application {
Label lblEingbae = new Label("Bitte Kenngruppe eingeben!"); Label lblEingbae = new Label("Bitte Kenngruppe eingeben!");
TextField tfEingabe = new TextField(); TextField tfEingabe = new TextField();
tfEingabe.setText("Enigma");
Button btnKenngruppe = new Button("Kenngruppe setzen!"); Button btnKenngruppe = new Button("Kenngruppe setzen!");
VBox layout = new VBox(); VBox layout = new VBox();
layout.setSpacing(30); layout.setSpacing(30);
......
This diff is collapsed.
This diff is collapsed.
...@@ -74,12 +74,31 @@ public class Steckbrett { ...@@ -74,12 +74,31 @@ public class Steckbrett {
* @return boolean : Wenn die Vertauschung zulaessig ist, true, ansonsten false. * @return boolean : Wenn die Vertauschung zulaessig ist, true, ansonsten false.
*/ */
public boolean setzeVertauschung(int steckbrettPort, char buchstabe1, char buchstabe2) { public boolean setzeVertauschung(int steckbrettPort, char buchstabe1, char buchstabe2) {
if (!ueberpruefeVertauschungen(buchstabe1) && !ueberpruefeVertauschungen(buchstabe2)) { char[] original;
originalBuchstaben = originalBuchstaben.replace(originalBuchstaben.charAt(steckbrettPort), buchstabe1); char[] getauscht;
getauschteBuchstaben
= getauschteBuchstaben.replace(getauschteBuchstaben.charAt(steckbrettPort), buchstabe2); 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; return true;
} else { } else {
new Fehler().debug("false\tOS: |" + originalBuchstaben + "| GS: |" + getauschteBuchstaben + "|", false);
return false; return false;
} }
} }
...@@ -94,7 +113,7 @@ public class Steckbrett { ...@@ -94,7 +113,7 @@ public class Steckbrett {
* *
* @param buchstabe : Character: zu pruefender Buchstabe. * @param buchstabe : Character: zu pruefender Buchstabe.
* @return result : boolean : Wenn false, dann darf der Buchstabe genutzt werden. Wenn er schon vorhanden ist, * @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) { public boolean ueberpruefeVertauschungen(Character buchstabe) {
boolean result = false; boolean result = false;
......
package projekt.enigma.view; package projekt.enigma.view;
import javafx.geometry.Insets;
import javafx.geometry.Pos; import javafx.geometry.Pos;
import javafx.scene.control.CheckBox; import javafx.scene.control.CheckBox;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.GridPane; import javafx.scene.layout.GridPane;
import projekt.enigma.model.Codierer;
import java.util.Arrays;
/** /**
* TODO: Doku * TODO: Doku
*/ */
public class ChkBoxGridPane extends GridPane { public class ChkBoxGridPane extends GridPane {
private CheckBox[] checkbox; private CheckBox[] checkbox;
private char[] alphabet; private String checkedBuchstaben;
private int charSize; 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));
/** if (!checkedBuchstaben.equals("")) {
* TODO: Doku if (!checkedBuchstaben.contains(String.valueOf(this.verfuegbareBuchstaben[i]))) {
* @param alphabet checkbox[i].setDisable(true);
*/ } else {
public ChkBoxGridPane(char[] alphabet) { checkbox[i].setSelected(true);
charSize = alphabet.length; }
this.alphabet = alphabet; } else {
initializeComponents(); checkbox[i].setSelected(false);
} checkbox[i].setDisable(false);
}
/** checkbox[i].selectedProperty().addListener((observable, oldValue, newValue) -> {
* Es wird ein GridPane erzeugt, das zwei Spalten und abhängig von der Länge des String portSelection = "";
* Arrays (Character[] alphabet) Reihen hat. Das Label der CheckBoxen soll int zaehler = 0;
* abhängig von deren Index links bzw. recht erzeugt werden
*/
private void initializeComponents() {
checkbox = new CheckBox[charSize];
this.setAlignment(Pos.CENTER);
for (int i = 0; i < alphabet.length; i++) { for (CheckBox cb : checkbox) {
checkbox[i] = new CheckBox(alphabet[i] + ""); 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.addRow(i + 1);
this.add(checkbox[i], 2, i + 1, 1, 1); this.add(checkbox[i], 2, i + 1, 1, 1);
//if (i==0)checkbox[0].setSelected(true); }
} }
this.setVisible(true); this.setVisible(true);
} }
/** /**
* Prüft welche CheckBox aus gewählt und gibt deren * Prüft welche CheckBox aus gewählt und gibt deren
* Index zurück * Index zurück
* *
* @return Integer * @return Integer
*/ */
private Integer isCheckedChkBoxIndex() { private Integer isCheckedChkBoxIndex() {
for (int i = 0; i < charSize; i++) { for (int i = 0; i < charSize; i++) {
if (checkbox[i].isSelected()) { if (checkbox[i].isSelected()) {
return i; return i;
} else { } else {
return null; return null;
} }
} }
return null; return null;
} }
/** /**
* TODO: Doku * TODO: Doku
* @return *
*/ * @return
public int getCharSize() { */
return charSize; 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