package org.nightlabs.jfire.personrelation.ui.tree;
import org.eclipse.swt.graphics.Image;
import org.nightlabs.jdo.ObjectID;
import org.nightlabs.jfire.personrelation.PersonRelation;
import org.nightlabs.jfire.personrelation.PersonRelationType;
import org.nightlabs.jfire.personrelation.id.PersonRelationID;
import org.nightlabs.jfire.personrelation.ui.PersonRelationPlugin;
import org.nightlabs.util.NLLocale;
/**
* Default {@link IPersonRelationTreeLabelProviderDelegate} to display {@link PersonRelation}-information.
*
* @author Marco Schulze
* @author khaireel
* @author abieber
*/
public class DefaultPersonRelationTreeLabelProviderDelegatePersonRelation extends AbstractPersonRelationTreeLabelProviderDelegate {
private String languageID = NLLocale.getDefault().getLanguage();
public String getJDOObjectText(ObjectID jdoObjectID, Object jdoObject, int spanColIndex) {
if (jdoObject == null) {
if (jdoObjectID instanceof PersonRelationID) {
PersonRelationID personRelationID = (PersonRelationID) jdoObjectID;
switch (spanColIndex) {
case 0:
return personRelationID.organisationID + '/' + personRelationID.personRelationID;
default:
break;
}
}
else {
switch (spanColIndex) {
case 0:
return String.valueOf(jdoObjectID);
default:
break;
}
}
}
else {
if (jdoObject instanceof PersonRelation) {
PersonRelation personRelation = (PersonRelation) jdoObject;
switch (spanColIndex) {
case 0:
return getPersonRelationTypeDisplayText(personRelation);
case 1:
return getPersonRelationToDisplayText(personRelation);
default:
break;
}
}
else {
switch (spanColIndex) {
case 0:
return String.valueOf(jdoObject);
default:
break;
}
}
}
return null;
}
protected String getPersonRelationToDisplayText(PersonRelation personRelation) {
return personRelation.getTo().getDisplayName();
}
protected String getPersonRelationTypeDisplayText(PersonRelation personRelation) {
return personRelation.getPersonRelationType().getName().getText(languageID);
}
public Image getJDOObjectImage(ObjectID jdoObjectID, Object jdoObject, int spanColIndex)
{
if (jdoObject instanceof PersonRelation) {
PersonRelation personRelation = (PersonRelation) jdoObject;
if (spanColIndex == 0) {
PersonRelationType personRelationType = personRelation.getPersonRelationType();
return PersonRelationPlugin.getDefault().getPersonRelationTypeIcon(personRelationType);
}
else
return null;
}
return null;
}
@Override
public Class<? extends ObjectID> getJDOObjectIDClass() {
return PersonRelationID.class;
}
@Override
public Class<?> getJDOObjectClass() {
return PersonRelation.class;
}
@Override
public int[][] getJDOObjectColumnSpan(ObjectID jdoObjectID, Object jdoObject) {
if (jdoObjectID instanceof PersonRelationID)
return null; // null means each real column assigned to one visible column
return null;
}
}