diff --git a/src/org/zlibrary/text/view/impl/ZLTextLineInfo.java b/src/org/zlibrary/text/view/impl/ZLTextLineInfo.java index b18897174..16db6b4db 100644 --- a/src/org/zlibrary/text/view/impl/ZLTextLineInfo.java +++ b/src/org/zlibrary/text/view/impl/ZLTextLineInfo.java @@ -1,6 +1,10 @@ package org.zlibrary.text.view.impl; class ZLTextLineInfo { + + /*This class has public fields like struct in C++. + Should I remove prefix "my", or should I make "getters" and "setters" for all the fields, making them private?*/ + public ZLTextWordCursor myStart; public ZLTextWordCursor myRealStart; public ZLTextWordCursor myEnd; diff --git a/src/org/zlibrary/text/view/impl/ZLTextParagraphCursor.java b/src/org/zlibrary/text/view/impl/ZLTextParagraphCursor.java index 711f94919..8bfa62774 100644 --- a/src/org/zlibrary/text/view/impl/ZLTextParagraphCursor.java +++ b/src/org/zlibrary/text/view/impl/ZLTextParagraphCursor.java @@ -2,10 +2,44 @@ package org.zlibrary.text.view.impl; import org.zlibrary.text.model.ZLTextModel; import org.zlibrary.text.model.ZLTextParagraph; +import org.zlibrary.text.model.entry.ZLTextParagraphEntry; +import org.zlibrary.text.model.entry.ZLTextEntry; import java.util.*; abstract class ZLTextParagraphCursor { + + + private static abstract class Processor { + protected ZLTextParagraph myParagraph; + protected List myElements; + protected int myOffset; + + protected Processor(ZLTextParagraph paragraph, int index, List elements) { + myParagraph = paragraph; + myElements = elements; + myOffset = 0; + } + + public void fill() { + List entries = myParagraph.getEntries(); + for (ZLTextParagraphEntry entry : entries) { + // switch (entry.Kind) { + // case ZLTextParagraphEntry.Kind.TEXT_ENTRY: { + processTextEntry((ZLTextEntry) entry); + // break; + // } + // } + } + } + + public abstract void processTextEntry(ZLTextEntry textEntry); + + protected void addWord(String s, int offset, int len) { + myElements.add(new ZLTextWord(s, (short) len, offset)); + } + } + protected ZLTextModel myModel; protected int myIndex; protected List myElements; diff --git a/src/org/zlibrary/text/view/impl/ZLTextViewImpl.java b/src/org/zlibrary/text/view/impl/ZLTextViewImpl.java index d08adbbfb..6a84f8744 100644 --- a/src/org/zlibrary/text/view/impl/ZLTextViewImpl.java +++ b/src/org/zlibrary/text/view/impl/ZLTextViewImpl.java @@ -1,11 +1,30 @@ package org.zlibrary.text.view.impl; +import org.zlibrary.text.model.*; import org.zlibrary.text.view.ZLTextView; class ZLTextViewImpl implements ZLTextView { - ZLTextLineInfo processTextLine(ZLTextWordCursor start, ZLTextWordCursor end) { + private ZLTextModel myModel; + +/* ZLTextLineInfo processTextLine(ZLTextWordCursor start, ZLTextWordCursor end) { ZLTextLineInfo info = new ZLTextLineInfo(start); + ZLTextWordCursor current = start; + final ZLTextParagraphCursor paragraphCursor = current.getParagraphCursor(); + final boolean isFirstLine = current.isStartOfParagraph(); + + if (isFirstLine) { + + } + + if (info.myRealStart.equalWordNumber(length)) { + info.myEnd = info.myRealStart; + return info; + } + + int newWidth = info.myWidth; + int newHeight = info.myHeight; + return info; - } + }*/ } diff --git a/src/org/zlibrary/text/view/impl/ZLTextWord.java b/src/org/zlibrary/text/view/impl/ZLTextWord.java index b3de6cf52..93c9b670f 100644 --- a/src/org/zlibrary/text/view/impl/ZLTextWord.java +++ b/src/org/zlibrary/text/view/impl/ZLTextWord.java @@ -1,12 +1,14 @@ package org.zlibrary.text.view.impl; -class ZLTextWord extends ZLTextElement { +/*package*/ class ZLTextWord extends ZLTextElement { public String myData; public short mySize; public short myLength; public int myParagraphOffset; - - private ZLTextWord(String data, short size, int paragraphOffset) { + + /*Temporarily made public to avoid implementing ZLTextElementPool with all its messy allocators, wtf is it?*/ + + public ZLTextWord(String data, short size, int paragraphOffset) { myData = data; mySize = size; myLength = (short) data.length();