예제 #1
0
 @Override
 public ZLTextPosition getEndPosition() {
   if (isEmpty()) {
     return null;
   }
   final ZLTextParagraphCursor cursor =
       ZLTextParagraphCursor.cursor(myView.getModel(), myRightMostRegionSoul.ParagraphIndex);
   final ZLTextElement element = cursor.getElement(myRightMostRegionSoul.EndElementIndex);
   return new ZLTextFixedPosition(
       myRightMostRegionSoul.ParagraphIndex,
       myRightMostRegionSoul.EndElementIndex,
       element instanceof ZLTextWord ? ((ZLTextWord) element).Length : 0);
 }
예제 #2
0
  private void addBookmark() {
    final FBReader fbreader = (FBReader) FBReader.Instance();
    final ZLTextView textView = fbreader.getTextView();
    final ZLTextWordCursor cursor = textView.getStartCursor();

    if (cursor.isNull()) {
      // TODO: implement
      return;
    }

    // TODO: text edit dialog
    final Bookmark bookmark =
        new Bookmark(
            fbreader.Model.Book, createBookmarkText(cursor), textView.getModel().getId(), cursor);
    myThisBookBookmarks.add(0, bookmark);
    AllBooksBookmarks.add(0, bookmark);
    invalidateAllViews();
  }
예제 #3
0
  public void traverse(ZLTextPosition from, ZLTextPosition to) {
    final int fromParagraph = from.getParagraphIndex();
    final int toParagraph = to.getParagraphIndex();
    ZLTextParagraphCursor cursor = ZLTextParagraphCursor.cursor(myView.getModel(), fromParagraph);
    for (int i = fromParagraph; i <= toParagraph; ++i) {
      final int fromElement = i == fromParagraph ? from.getElementIndex() : 0;
      final int toElement =
          i == toParagraph ? to.getElementIndex() : cursor.getParagraphLength() - 1;

      for (int j = fromElement; j <= toElement; j++) {
        final ZLTextElement element = cursor.getElement(j);
        if (element == ZLTextElement.HSpace) {
          processSpace();
        } else if (element instanceof ZLTextWord) {
          processWord((ZLTextWord) element);
        }
      }
      if (i < toParagraph) {
        processEndOfParagraph();
        cursor = cursor.next();
      }
    }
  }