package net.bible.android.control.footnoteandref;
import net.bible.android.control.ApplicationScope;
import net.bible.android.control.page.window.ActiveWindowPageManagerProvider;
import net.bible.service.common.CommonUtils;
import net.bible.service.common.Logger;
import net.bible.service.format.Note;
import net.bible.service.sword.SwordContentFacade;
import org.apache.commons.lang3.StringUtils;
import javax.inject.Inject;
/**
* @author Martin Denham [mjdenham at gmail dot com]
* @see gnu.lgpl.License for license details.<br>
* The copyright to this program is held by it's author.
*/
@ApplicationScope
public class NoteDetailCreator {
private final SwordContentFacade swordContentFacade;
private final ActiveWindowPageManagerProvider activeWindowPageManagerProvider;
private final Logger log = new Logger(this.getClass().getName());
@Inject
public NoteDetailCreator(SwordContentFacade swordContentFacade, ActiveWindowPageManagerProvider activeWindowPageManagerProvider) {
this.swordContentFacade = swordContentFacade;
this.activeWindowPageManagerProvider = activeWindowPageManagerProvider;
}
public String getDetail(Note note) {
String retval = "";
try {
if (Note.NoteType.TYPE_REFERENCE.equals(note.getNoteType())) {
String verse = StringUtils.isNotEmpty(note.getOsisRef()) ? note.getOsisRef() : note.getNoteText();
retval = swordContentFacade.getPlainText(activeWindowPageManagerProvider.getActiveWindowPageManager().getCurrentBible().getCurrentDocument(), verse, 1);
retval = CommonUtils.limitTextLength(retval);
}
} catch (Exception e) {
log.error("Error getting note detail for osisRef "+note.getOsisRef(), e);
}
return retval;
}
}