public void handleEvent(Event event) {
// Vorneweg aktuelle Person merken.
Person current = Family.instance.getCurrentPerson();
// Dialog vorbereiten.
PersonChoiceShell pcs = new PersonChoiceShell(GUI.instance.shell, "Kind hinzuf�gen", "Als Kind eintragen",
"Neues Kind erzeugen", 2, false, null, false);
// Die Person selbst kann sich nicht als Kind haben, auch die Eltern nicht
// (und die vorhandenen Kinder sind es ohnehin
// schon).
pcs.removePerson(current);
for (Person person : current.getChildren()) {
pcs.removePerson(person);
}
for (Person person : current.getParents()) {
pcs.removePerson(person);
}
// Zu junge/alte Personen l�schen.
if (!current.getValueView(Person.BIRTHDAY).endsWith("?")) {
// Alle Person, die �lter als diese Person hier sind, l�schen.
String currBirth = current.getValueView(Person.BIRTHDAY);
if (currBirth.endsWith(".?")) {
// Versuchen, das Geburtsjahr zu erraten.
int year = current.getBirthYear(true);
if (year != Integer.MIN_VALUE) {
currBirth = currBirth.substring(0, currBirth.length() - 1) + year;
}
}
int minParentAge = OptionData.instance.getInt(OptionData.MIN_PARENT_AGE);
pcs.removePersonsBetweenDates(Person.BIRTHDAY, "0.0.0", currBirth, new int[] { 0, 0, -minParentAge });
// Alle Personen, die mindestens 90 Jahre nach der Geburt dieser Person
// geboren wurden entfernen.
int maxParentAge = OptionData.instance.getInt(OptionData.MAX_PARENT_AGE);
pcs.removePersonsBetweenDates(Person.BIRTHDAY, currBirth, "99.99.9999", new int[] { 0, 0, -maxParentAge });
}
// Alle Personen, die nach dem Todestag dieser Person geboren wurden,
// l�schen.
// Zehn Monate abziehen, weil der Vater ja vor der Geburt gestorben sein
// kann.
if (!current.getValueView(Person.DEATHDAY).endsWith("?")) {
pcs.removePersonsBetweenDates(Person.BIRTHDAY, current.getValueView(Person.DEATHDAY), "99.99.9999", new int[] {
0, -10, 0 });
}
// Dialog �ffnen.
pcs.open();
// Hier wird eventuell ein zugeordnetes Kind gespeichert.
Person child;
if (pcs.personChoice != null) {