package org.nightlabs.jfire.asterisk.ui.asteriskserver; import javax.jdo.FetchPlan; import org.nightlabs.jdo.NLJDOHelper; import org.nightlabs.jfire.asterisk.AsteriskServer; import org.nightlabs.jfire.base.login.ui.part.ICloseOnLogoutEditorPart; import org.nightlabs.jfire.base.ui.entity.editor.ActiveEntityEditor; import org.nightlabs.jfire.pbx.dao.PhoneSystemDAO; import org.nightlabs.jfire.pbx.id.PhoneSystemID; import org.nightlabs.progress.ProgressMonitor; /** * @author Chairat Kongarayawetchakun <!-- chairat [AT] nightlabs [DOT] de --> */ public class AsteriskServerEditor extends ActiveEntityEditor implements ICloseOnLogoutEditorPart { public static final String EDITOR_ID = AsteriskServerEditor.class.getName(); private static final String[] FETCH_GROUPS = new String[] { FetchPlan.DEFAULT, AsteriskServer.FETCH_GROUP_NAME }; @Override protected String getEditorTitleFromEntity(Object entity) { return entity instanceof AsteriskServer ? ((AsteriskServer)entity).getName().getText() : null; } @Override protected Object retrieveEntityForEditorTitle(ProgressMonitor monitor) { PhoneSystemID asteriskServerID = ((AsteriskServerEditorInput)getEditorInput()).getJDOObjectID(); assert asteriskServerID != null; return PhoneSystemDAO.sharedInstance().getPhoneSystem(asteriskServerID, FETCH_GROUPS, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor); } @Override public void dispose() { super.dispose(); } }