package org.nightlabs.jfire.contact.ui; import javax.jdo.FetchPlan; import org.nightlabs.jdo.NLJDOHelper; import org.nightlabs.jfire.base.ui.entity.editor.ActiveEntityEditor; import org.nightlabs.jfire.person.Person; import org.nightlabs.jfire.prop.PropertySet; import org.nightlabs.jfire.prop.dao.PropertySetDAO; import org.nightlabs.jfire.prop.id.PropertySetID; import org.nightlabs.progress.ProgressMonitor; /** * @author Chairat Kongarayawetchakun <!-- chairat [AT] nightlabs [DOT] de --> */ public class ContactEditor extends ActiveEntityEditor { public static final String EDITOR_ID = ContactEditor.class.getName(); private static final String[] FETCH_GROUPS = new String[] { FetchPlan.DEFAULT, PropertySet.FETCH_GROUP_FULL_DATA }; @Override protected String getEditorTitleFromEntity(Object entity) { if (entity instanceof Person) { Person person = (Person)entity; String titleString = person.getDisplayName(); // return "(ID:" + ObjectIDUtil.longObjectIDFieldToString(person.getPropertySetID()) + ") " + titleString; // @Yo: Either we put the complete ID into the string or none at all. For the complete ID, we can omit the organisationID, if it is local - but only then. return titleString; } return null; } @Override protected Object retrieveEntityForEditorTitle(ProgressMonitor monitor) { PropertySetID personID = ((ContactEditorInput)getEditorInput()).getJDOObjectID(); assert personID != null; return PropertySetDAO.sharedInstance().getPropertySet(personID, FETCH_GROUPS, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor); } @Override protected String getEditorTooltipFromEntity(Object entity) { if (entity instanceof Person) { Person person = (Person)entity; String tooltipString = person.getDisplayName();; return tooltipString; } return null; } }