From 2f820efca79fc62fe6d396074afa4d43a724a8c3 Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Sun, 2 Dec 2007 12:56:21 +0000 Subject: [PATCH] optimzation (?) git-svn-id: https://only.mawhrin.net/repos/FBReaderJ/trunk@287 6a642e6f-84f6-412e-ac94-c4a38d5a04b0 --- .../text/view/impl/ZLTextElement.java | 3 ++- .../text/view/impl/ZLTextHSpaceElement.java | 6 ----- .../text/view/impl/ZLTextParagraphCursor.java | 5 ++-- .../text/view/impl/ZLTextViewImpl.java | 24 +++++++++---------- 4 files changed, 16 insertions(+), 22 deletions(-) delete mode 100644 src/org/zlibrary/text/view/impl/ZLTextHSpaceElement.java diff --git a/src/org/zlibrary/text/view/impl/ZLTextElement.java b/src/org/zlibrary/text/view/impl/ZLTextElement.java index ee0a61195..34fdd8c5e 100644 --- a/src/org/zlibrary/text/view/impl/ZLTextElement.java +++ b/src/org/zlibrary/text/view/impl/ZLTextElement.java @@ -1,6 +1,7 @@ package org.zlibrary.text.view.impl; -public class ZLTextElement { +class ZLTextElement { + final static ZLTextElement HSpace = new ZLTextElement(); /* enum Kind { WORD_ELEMENT, diff --git a/src/org/zlibrary/text/view/impl/ZLTextHSpaceElement.java b/src/org/zlibrary/text/view/impl/ZLTextHSpaceElement.java deleted file mode 100644 index a6fcbd33d..000000000 --- a/src/org/zlibrary/text/view/impl/ZLTextHSpaceElement.java +++ /dev/null @@ -1,6 +0,0 @@ -package org.zlibrary.text.view.impl; - -public class ZLTextHSpaceElement extends ZLTextElement { -} - - diff --git a/src/org/zlibrary/text/view/impl/ZLTextParagraphCursor.java b/src/org/zlibrary/text/view/impl/ZLTextParagraphCursor.java index c3569dede..0da9de081 100644 --- a/src/org/zlibrary/text/view/impl/ZLTextParagraphCursor.java +++ b/src/org/zlibrary/text/view/impl/ZLTextParagraphCursor.java @@ -49,6 +49,7 @@ public abstract class ZLTextParagraphCursor { Is spaceInserted variable used for inserting one separator instead of multiple spaces?*/ public void processTextEntry(ZLTextEntry textEntry) { + final ZLTextElement hSpace = ZLTextElement.HSpace; int dataLength = textEntry.getDataLength(); if (dataLength != 0) { final String data = textEntry.getData(); @@ -60,11 +61,11 @@ public abstract class ZLTextParagraphCursor { if (current == ' ') { if (firstNonSpace != -1) { addWord(data, firstNonSpace, charPos); - myElements.add(new ZLTextHSpaceElement()); + myElements.add(hSpace); spaceInserted = true; firstNonSpace = -1; } else if (!spaceInserted) { - myElements.add(new ZLTextHSpaceElement()); + myElements.add(hSpace); spaceInserted = true; } } else if (firstNonSpace == -1) { diff --git a/src/org/zlibrary/text/view/impl/ZLTextViewImpl.java b/src/org/zlibrary/text/view/impl/ZLTextViewImpl.java index ecbbaa41b..6ef266f4c 100644 --- a/src/org/zlibrary/text/view/impl/ZLTextViewImpl.java +++ b/src/org/zlibrary/text/view/impl/ZLTextViewImpl.java @@ -75,8 +75,6 @@ public class ZLTextViewImpl extends ZLTextView { public int elementWidth(ZLTextElement element, int charNumber) { if (element instanceof ZLTextWord) { return wordWidth((ZLTextWord) element, charNumber, -1, false); - } else if (element instanceof ZLTextHSpaceElement) { - return 0;//myContext.getSpaceWidth(); } return 0; } @@ -173,17 +171,17 @@ public class ZLTextViewImpl extends ZLTextView { ZLTextWordCursor cursor; for (cursor = info.Start; !cursor.equalWordNumber(info.End) && !cursor.isEndOfParagraph(); cursor.nextWord()) { ZLTextElement element = cursor.getElement(); - if (element instanceof ZLTextWord) { - wordOccurred = true; - ZLTextWord word = (ZLTextWord)element; - context.drawString(w, h + info.Height, word.Data, word.Offset, word.Length); - w += word.getWidth(context); - } else if (element instanceof ZLTextHSpaceElement) { + if (element == ZLTextElement.HSpace) { if (wordOccurred) { w += context.getSpaceWidth(); spaces++; wordOccurred = false; } + } else if (element instanceof ZLTextWord) { + wordOccurred = true; + ZLTextWord word = (ZLTextWord)element; + context.drawString(w, h + info.Height, word.Data, word.Offset, word.Length); + w += word.getWidth(context); } else if (element instanceof ZLTextControlElement) { myStyle.applyControl((ZLTextControlElement) element); } @@ -278,17 +276,17 @@ public class ZLTextViewImpl extends ZLTextView { newWidth += myStyle.elementWidth(element, current.getCharNumber()); newHeight = Math.max(newHeight, myStyle.elementHeight(element)); newDescent = Math.max(newDescent, myStyle.elementDescent(element)); - if (element instanceof ZLTextWord) { - wordOccurred = true; - isVisible = true; - //System.out.println("Word = " + ((ZLTextWord) element).Data + " FontSize = " + myStyle.getTextStyle().fontSize()); - } else if (element instanceof ZLTextHSpaceElement) { + if (element == ZLTextElement.HSpace) { if (wordOccurred) { wordOccurred = false; internalSpaceCounter++; lastSpaceWidth = myStyle.getPaintContext().getSpaceWidth(); newWidth += lastSpaceWidth; } + } else if (element instanceof ZLTextWord) { + wordOccurred = true; + isVisible = true; + //System.out.println("Word = " + ((ZLTextWord) element).Data + " FontSize = " + myStyle.getTextStyle().fontSize()); } else if (element instanceof ZLTextControlElement) { myStyle.applyControl((ZLTextControlElement) element); }