"SteuerFenster.KanteNeu"));
} else if (cmd.equals(Messages.getString(
"SteuerFenster.AusSequenz"))) {
int autNum = this.aktGrph.getAktAut();
String condS = this.aktGrph.getConditions()[autNum];
Condition cond = StaticMethods.ausBed(condS);
this.aktGrph.getRob().erzeugeAusSequenz(
this.aktGrph.getAktAut(),
this.aktGrph.holeAktTxtSeq(),
cond,
this.aktGrph.getRob().getAktTAut(),
true);
this.loescheSelKnot();
StaticMethods.log(
StaticMethods.LOG_DEBUG,
"Aus Sequenz mit aktuellem Translator.",
this.pars);
} else if (cmd.equals("Aus Std-Sequenz")) {
int autNum = this.aktGrph.getAktAut();
String condS = this.aktGrph.getConditions()[autNum];
Condition cond = StaticMethods.ausBed(condS);
this.aktGrph.getRob().erzeugeAusSequenz(
this.aktGrph.getAktAut(),
this.aktGrph.holeAktTxtSeq(),
cond,
true);
this.loescheSelKnot();
StaticMethods.log(
StaticMethods.LOG_DEBUG,
"Aus Sequenz mit Standardkodierung "
+ "ohne Translator.",
this.pars);
} else if (cmd.equals(Messages.getString(
"SteuerFenster.AusSequenzen"))) {
this.aktGrph.erzeugeAlleAusSeq(
this.aktGrph.getSeqs(),
StaticMethods.ausBeds(this.aktGrph.getConditions()),
true);
this.loescheSelKnot();
} else if (cmd.equals(Messages.getString(
"SteuerFenster.GraphLoeschen"))) {
GeneralDialog nachfrage;
ArrayList<String> buttons = new ArrayList<String>();
buttons.add(Messages.getString("SteuerFenster.OK"));
buttons.add(Messages.getString("SteuerFenster.Abbrechen"));
nachfrage = new GeneralDialog(
this,
"Soll der aktuelle Endliche Automat "
+ "<" + this.aktGrph
+ "> wirklich von der Festplatte gelöscht"
+ " UND aus der Darstellung entfernt "
+ "werden?",
Messages.getString(
"SteuerFenster.GraphLoeschen"),
buttons,
null);
nachfrage.setVisible(true);
if (nachfrage.getResult().equals(Messages.getString(
"SteuerFenster.OK"))) {
this.loescheGraph(this.aktGrph, true);
this.waehleGraph(0);
}
} else if (cmd.equals(Messages.getString(
"SteuerFenster.NeuerGraph"))) {
this.neuerGraph();
this.waehleGraph(this.graphZaehl - 1);
} else if (cmd.equals(Messages.getString(
"SteuerFenster.GraphLeeren"))) {
GeneralDialog nachfrage;
ArrayList<String> buttons = new ArrayList<String>();
buttons.add(Messages.getString("SteuerFenster.OK"));
buttons.add(Messages.getString("SteuerFenster.Abbrechen"));
nachfrage = new GeneralDialog(
this,
"Sollen ALLE KNOTEN des aktuellen "
+ "Endlichen Automaten "
+ "<" + this.aktGrph
+ "> wirklich gelöscht"
+ " werden?",
Messages.getString(
"SteuerFenster.GraphLeeren"),
buttons,
null);
nachfrage.setVisible(true);
if (nachfrage.getResult().equals(Messages.getString(
"SteuerFenster.OK"))) {
this.aktGrph.leereAktGraph();
this.selKn(null);
}
} else if (cmd.equals(Messages.getString(
"SteuerFenster.AlleLeeren"))) {
GeneralDialog nachfrage;
ArrayList<String> buttons = new ArrayList<String>();
buttons.add(Messages.getString("SteuerFenster.OK"));
buttons.add(Messages.getString("SteuerFenster.Abbrechen"));
nachfrage = new GeneralDialog(
this,
"Sollen ALLE KNOTEN ALLER AUTOMATEN "
+ " wirklich gelöscht werden?",
Messages.getString(
"SteuerFenster.AlleLeeren"),
buttons,
null);
nachfrage.setVisible(true);
if (nachfrage.getResult().equals(Messages.getString(
"SteuerFenster.OK"))) {
Vis aktGraph;
Iterator<Vis> it = this.graphen.iterator();
while (it.hasNext()) {
aktGraph = it.next();
aktGraph.leereAlleGraphen();
aktGraph.neuZeichnen();
}
this.selKn(null);
}
} else if (cmd.equals(Messages.getString(
"SteuerFenster.GraphKopieren"))) {
String[] seq = this.aktGrph.getRob().erzeugeStrSeqs();
Condition[] conds = this.aktGrph.getRob().getConds();
DarstModEA[] darAlt;
darAlt = (DarstModEA[])
StaticMethods.seriaClone(this.aktGrph.getDarstellArt());
this.neuerGraph();
this.waehleGraph(this.graphZaehl - 1);
this.aktGrph.setzeAlleSeq(seq);
this.aktGrph.getRob().erzeugeAusSequenzen(seq,
conds,
null,
false);
this.aktGrph.setDarstellArt(darAlt);
} else if (cmd.equals(Messages.getString(
"SteuerFenster.GraphSpeichern"))) {
this.aktGrph.speichereGraph(
Messages.getString("Vis.All"));
} else if (cmd.equals(Messages.getString(
"SteuerFenster.GraphLaden"))) {
GeneralDialog nachfrage;
ArrayList<String> buttons = new ArrayList<String>();
buttons.add(Messages.getString("SteuerFenster.OK"));
buttons.add(Messages.getString("SteuerFenster.Abbrechen"));
nachfrage = new GeneralDialog(
this,
Messages.getString("SteuerFenster."
+ "SollNeuLaden")
+ " <" + this.aktGrph
+ ">.",
Messages.getString(
"SteuerFenster.GraphLaden"),
buttons,
null);
nachfrage.setVisible(true);
if (nachfrage.getResult().equals(Messages.getString(
"SteuerFenster.OK"))) {
this.aktGrph.ladeRob();
this.loescheSelKnot();
}
} else if (cmd.equals(Messages.getString(
"SteuerFenster.SIM"))) {
this.simStarten(false);
} else if (cmd.equals(Messages.getString(
"SteuerFenster.EVO"))) {
this.simStarten(true);
} else if (cmd.equals(
Messages.getString("SteuerFenster.GraphUmbenennen"))) {
GeneralDialog dia;
ArrayList<String> buttons = new ArrayList<String>();
buttons.add(Messages.getString("SteuerFenster.OK"));
buttons.add(Messages.getString("SteuerFenster.Abbrechen"));
dia = new GeneralDialog(
this,
null,
Messages.getString("SteuerFenster."
+ "SollUmbenennen"),
buttons,
this.aktGrph.getGraphName(),
1,
50,
true);
dia.setVisible(true);
if (dia.getResult().equals(
Messages.getString("SteuerFenster.OK"))) {
String name = dia.getText();
boolean ok = true;
Iterator<Vis> it = this.graphen.iterator();
while (it.hasNext()) {
Vis aktG = it.next();
if (aktG.getGraphName().equals(name)) {
ok = false;
}
}
if (ok) {
int index = this.grAuswahl.getSelectedIndex();
int max = this.grAuswahl.getItemCount();
ArrayList<String> strings = new ArrayList<String>();
for (int i = 0; i < max; i++) {
if (i == index) {
strings.add(name);
} else {
strings.add(this.grAuswahl.getItem(i));
}
}
this.grAuswahl.removeAll();
this.aktGrph.setGraphName(name);
for (int i = 0; i < max; i++) {
this.grAuswahl.add(strings.get(i));
}
this.grAuswahl.select(index);
}
}
} else if (cmd.equals(
Messages.getString("SteuerFenster.Mutation"))) {
this.aktGrph.mutiere();
} else if (cmd.equals(
Messages.getString("SteuerFenster.Rekombination"))) {
ArrayList<String> a = new ArrayList<String>();
Iterator<Vis> it = this.graphen.iterator();
while (it.hasNext()) {
Vis v = it.next();
a.add(v.toString());
}
GeneralDialog dia = new GeneralDialog(
this,
"Rekombination",
"Bitte die zu rekombinierenden\nGraphen wählen.",
a,
Messages.getString("SteuerFenster.Abbrechen"),
Messages.getString("SteuerFenster.OK"),
true,
-1);
dia.setVisible(true);
if (dia.getResult()
== Messages.getString("SteuerFenster.OK")) {
String[] str = dia.getListe().getSelectedItems();
RobEA[] pop = new RobEA[str.length];
Vis v;
for (int i = 0; i < str.length; i++) {
it = this.graphen.iterator();
while (it.hasNext()) {
v = it.next();
if (v.toString().equals(str[i])) {
pop[i] = v.getRob();
for (int j = 0;
j < v.getRob().vAuts().length;
j++) {
ArrayList<String> b
= new ArrayList<String>(1);
b.add(Messages.getString(
"SteuerFenster.OK"));
GeneralDialog dia2
= new GeneralDialog(
this,
"",
"Fitness " + j
+ " ("
+ str[i]
+ ")",
b,
"" + pop[i].getFitness()[0],
1,
50,
true);
dia2.setVisible(true);
pop[i].setFitness(j,
Integer.parseInt(dia2.getText()));
}
break;
}
}
}
RobCode[] r = this.rekombArt.rekombEinz(pop);
for (int i = 0; i < r.length; i++) {
v = this.neuerGraph();
v.erzeugeAlleAusSeq(
r[i].getVStdCodes(),
null,
false);
this.selGraph(v);
}
}
} else if (cmd.equals(
Messages.getString("SteuerFenster.ErzeugeHEX"))) {
FileDialog dia;
dia = new FileDialog(this,
Messages.getString("SteuerFenster."
+ "ErzeugeHEXTitel"),
FileDialog.SAVE);
dia.setVisible(true);
if (!(dia.getDirectory() == null)
&& !(dia.getFile() == null)) {
LinkedList<Integer> seq
= this.aktGrph.getRob().erzeugeSequenz(
this.aktGrph.getAktAut());
FileWriter f = new FileWriter(dia.getDirectory()
+ File.separatorChar
+ dia.getFile());
Iterator<Integer> it = seq.iterator();
while (it.hasNext()) {
f.write(it.next().intValue());
}
f.close();
}
} else if (cmd.equals(
Messages.getString("SteuerFenster.Vereinfache"))) {
this.aktGrph.getRob().vAuts()[
this.aktGrph.getAktAut()].vereinfache();
Condition condSimp =
this.aktGrph.getRob().getConds()[
this.aktGrph.getAktAut()].simplify();
this.aktGrph.getRob().setCond(this.aktGrph.getAktAut(),
condSimp);
} else if (cmd.equals(
Messages.getString("SteuerFenster.VereinfacheAlle"))) {
Iterator<Vis> it = this.graphen.iterator();
Condition condSimp;
Vis aktVis;
while (it.hasNext()) {
aktVis = it.next();
for (int i = 0;
i < aktVis.getRob().vAuts().length;