/** * @file IBookSearchCursor.java * * @revision: none * * @version 0.0.01 * @author: Zenki (zhajun), zenki2001cn@163.com * @date: 2011-6-13 上午11:27:09 */ package com.easyview.ebook.reader.engine.model; import java.util.List; import com.easyview.ebook.reader.engine.core.IAction; import com.easyview.ebook.reader.engine.model.BookSearchInfo.BookSearchResult; /** * 搜索操作接口. * <p> * * Example: * <p> * <p> IBookSearchCursor bookSearchOps = book.getBookSearchCursor(); * <p> // 設置搜索關鍵字 * <p> bookSearchOps.setSearchKeyword(keyword); * <p> // 進入搜索模式 * <p> mIEREngine.getAction().enterSearchMode(); * <p> // 搜索下一個結果 * <p> mIEREngine.getAction().searchGoNext(); * <p> // 搜索上一個結果 * <p> mIEREngine.getAction().searchGoPrevious(); */ public interface IBookSearchCursor { /** * 設置搜索關鍵字. * * @param key 搜索關鍵字 */ public void setSearchKeyword(String key); /** * 獲取搜索關鍵字. * * @return 搜索關鍵字 */ public String getSearchKeyword(); /** * 添加搜索結果. * * @param results 搜索結果列表. */ public void addResults(BookSearchResult[] results); /** * 獲取搜索結果列表. * * @return 搜索結果列表 */ public List<BookSearchResult> getResults(); /** * 獲取搜索歷史列表. * * @return 索歷史列表, List<String>類型 */ public List<String> getSeachHistory(); /** * 重置搜索結果. */ public void resetResults(); /** * 檢查是否有搜索結果. * * @return true, 結果不為空. false, 搜索為空. */ public boolean hasResults(); /** * 獲取下一個搜索結果. * * @return 下一個搜索結果 */ public BookSearchResult getNextResult(); /** * 獲取上一個搜索結果. * * @return 上一個搜索結果 */ public BookSearchResult getPreResult(); /** * 移動當前的搜索結果光標到搜索結果的末尾.<p> * 由于PDF書的搜索模式不是一次性搜索出所有結果,而是采用分段式,因此調用該方法後,<p> * 再調用 {@link IAction.searchGoNext} 方法會繼續搜索出更多結果.<p> * 其他格式書籍暫時無需考慮該方法. */ public void moveCursorToEnd(); }