Color colorLineCurrentPerson = OptionData.instance.getColor(OptionData.COLOR_LINE_CURRENT_PERSON);
Color colorLineOtherPerson = OptionData.instance.getColor(OptionData.COLOR_LINE_OTHER_PERSON);
// Bei einer Ehe und einem leiblichen Kind wird die Linie durchgezeichnet,
// sonst gestrichelt.
Relationship relship = pc1.person.getRelationship(pc2.person);
boolean bFullLine = relship.getValue(Relationship.TYPE, "option").equals(RelationshipPartners.MARRIAGE);
bFullLine |= relship.getValue(Relationship.TYPE, "option").equals(RelationshipParentChild.BIOLOGICAL);
// Grenzen der beiden Composites holen, die miteinander verbunden werden
// sollen.
Rectangle rc1 = pc1.getBounds();
Rectangle rc2 = pc2.getBounds();
// Die aktuelle Person sowie die ihr direkt zugeordneten blau zeichnen, die
// anderen normal schwarz.
if (pc1.person == currentMainPerson || pc2.person == currentMainPerson) {
gc.setForeground(colorLineCurrentPerson);
}
else {
gc.setForeground(colorLineOtherPerson);
}
// Strichart setzen.
if (bFullLine) {
gc.setLineStyle(SWT.LINE_SOLID);
}
else {
gc.setLineStyle(SWT.LINE_DASH);
}
// Beziehungslinienstil setzen.
String sLineStyle = Integer.toString(SWT.LINE_SOLID);
String relType = relship.getType();
if (relship instanceof RelationshipPartners) {
if (relType.equals(RelationshipPartners.MARRIAGE)) {
sLineStyle = OptionData.instance.getComboKey(OptionData.LINE_TYPE_PARTNER_MARRIAGE);
}
else if (relType.equals(RelationshipPartners.ENGAGEMENT)) {