Skip to content
Snippets Groups Projects
Commit 720ad384 authored by Michael's avatar Michael
Browse files

Merge branch 'master' of https://www.gitrepo.de/alfatrainingkurse/java/enigma

 Conflicts:
	src/main/java/projekt/enigma/model/Codierer.java
parents 21530ebc 7a325959
No related branches found
No related tags found
No related merge requests found
......@@ -95,12 +95,12 @@
* Kenngruppe Abfrage
* Testen Kenngruppe Dialog und Fehler
* Enigma
* Setzen von Walzen
* Setzen von Ringen
* Setzen von Startpunkten
* Zurücksetzen
* Senden ohne Nachricht und Fehler
* Empfangen ohne hinterlegte Nachricht und Fehler
* Tagesschlüssel
* Verschlüsseln von Nachrichten
* Senden von Nachrichten
* Abrufen und entschlüsseln von Nachrichten
* Setzen einer anderen Kenngruppe und zeigen was passiert wenn man dann Nachrichten abrufen möchte
* Eingabe Nachricht
* Senden einer Nachricht
* Empfang einer Nachricht
* Zurücksetzen
* Setzen von Walzen und Ringen
* Senden & Empfangen
This diff is collapsed.
......@@ -345,6 +345,25 @@ public class Codierer {
return this.hardware.getSteckbrett().fetchVerfuegbareBuchstaben(port);
}
//endregion
/** Gibt die Walzennummer einer Walze auf Position (walzePos) zurück
*
* @param walzePos : int : Position der Walze
* @return int : Nummer der eingesetzten Walze
*/
public int fetchWalzenNr(int walzePos) {
return this.hardware.getWalzen()[walzePos].getWalzenNr();
}
/**
* Ueberprueft welche Buchstaben noch zur Vertauschung verfügbar sind
*
* @param port: Zahl zwischen 0-9: entspricht der Kabelnummer.
* @return String: liefert einen String mit den verfuegbaren Buchstaben zurueck.
*/
public String fetchVerfuegbareBuchstaben(int port) {
return this.hardware.getSteckbrett().fetchVerfuegbareBuchstaben(port);
}
//endregion
//region codierer
......
......@@ -70,7 +70,7 @@ public class Walze {
* @param richtung : int : 1 dreht die Walze weiter und -1 dreht sie einen Schritt zurueck
* @return checkRing : boolean : gibt true zurueck wenn der Umspringpunkt erreicht wurde
*/
public boolean dreheWalze(int richtung) {
boolean dreheWalze(int richtung) {
boolean checkRing = false;
int korrekturFaktor = 0;
......@@ -108,7 +108,7 @@ public class Walze {
* @param buchstabe : char : Buchstabe, der decodiert werden soll
* @return char : decodierter Buchstabe
*/
public char codiere2(char buchstabe) {
char codiere2(char buchstabe) {
return this.alphabet.charAt((this.fetchWalze().indexOf(buchstabe) - this.turns + 260) % 26);
}
......@@ -127,7 +127,7 @@ public class Walze {
*
* @param walzenNr : int : Walzennummer
*/
public void setWalzenNr(int walzenNr) {
private void setWalzenNr(int walzenNr) {
if ((walzenNr > 0) && (walzenNr < 6)) {
this.walzenNr = walzenNr - 1;
} else {
......@@ -144,7 +144,7 @@ public class Walze {
*
* @param ringstellung : int : Punkt an dem die Nachbarwalze umspringt
*/
public void setRingstellung(int ringstellung) {
void setRingstellung(int ringstellung) {
if ((ringstellung > 0) && (ringstellung <= 26)) {
this.ringstellung = this.alphabet.charAt(ringstellung - 1);
} else {
......@@ -158,7 +158,7 @@ public class Walze {
*
* @param buchstabe : Character : Einstellung der Walze
*/
public void setPosition(Character buchstabe) {
void setPosition(Character buchstabe) {
this.turns = alphabet.indexOf(buchstabe);
}
//endregion
......@@ -169,8 +169,12 @@ public class Walze {
*
* @return char : Ermittelte stelle im Alphabet, anhand der aktuellen Anzahl der Drehungen
*/
public Character getPosition() {
Character getPosition() {
return this.alphabet.charAt(turns % 26);
}
int getWalzenNr() {
return this.walzenNr;
}
//endregion
}
\ No newline at end of file
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;
}
}
package projekt.enigma.view;
import java.awt.*;
import javax.swing.*;
public class ChkBoxPanel extends JPanel {
/*private static JPanel panel = new JPanel();*/
private static JCheckBox[] checkbox;
private static Character[] alphabet;/* = {'A','B','C','D'};*/
private static int charSize;
public ChkBoxPanel(Character[] alphabet) {
this.charSize = alphabet.length;
this.alphabet = alphabet;
/*this.setTitle("Vertausche Buchstaben");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);*/
this.setSize(30, charSize * 25);
//this.setLocation(getMousePosition()/*.x, getMousePosition().y+this.getHeight()+30*/);
initializeComponents();
}
private void initializeComponents() {
this.checkbox = new JCheckBox[charSize];
GridLayout panelLayout = new GridLayout();
this.setLayout(panelLayout);
if (!(charSize % 2 == 0)) {
this.setSize(30, (charSize + 1) * 20);
panelLayout.setRows((charSize + 1) / 2);
} else {
this.setSize(30, charSize * 10);
panelLayout.setRows(charSize / 2);
}
panelLayout.setColumns(2);
//panelLayout.setVgap(5);
//panelLayout.setHgap(-5);
for (int i = 0; i < charSize; i++) {
checkbox[i] = new JCheckBox(alphabet[i] + "");
checkbox[i].setSize(15, 20);
checkbox[i].setHorizontalTextPosition(SwingConstants.CENTER);
checkbox[i].setVerticalTextPosition(SwingConstants.TOP);
/* if (!(i%2==0)){
}*/
checkbox[i].setMargin(new Insets(0, 20, 0, 20));
//checkbox[i].setLocation(20, (i + 1) * 30);
this.add(checkbox[i]);
}
/* this.getContentPane().add(panel);*/
checkbox[0].setSelected(true);
//this.add(panel);
//this.setLocation(100, 100);
this.setVisible(true);
}
private int isChecked() {
for (int i = 0; i < charSize; i++) {
if (checkbox[i].isSelected()) {
// do something...
} else {
// do something else...
}
}
return 0;
}
}
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