@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); }
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(); }
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(); } } }