diff options
Diffstat (limited to 'bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextLineBreakingReader.java')
-rw-r--r-- | bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextLineBreakingReader.java | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextLineBreakingReader.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextLineBreakingReader.java deleted file mode 100644 index 7fe3debf01..0000000000 --- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextLineBreakingReader.java +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.sse.ui.internal; - - - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.Reader; - -import org.eclipse.swt.graphics.GC; - -/* - * Not a real reader. Could change if requested - */ -public class StructuredTextLineBreakingReader { - private GC fGC; - private int fIndex; - private String fLine; - private int fMaxWidth; - - private BufferedReader fReader; - - /** - * Creates a reader that breaks an input text to fit in a given width. - * - * @param reader - * Reader of the input text - * @param gc - * The graphic context that defines the currently used font - * sizes - * @param maxLineWidth - * The max width (pixes) where the text has to fit in - */ - public StructuredTextLineBreakingReader(Reader reader, GC gc, int maxLineWidth) { - fReader = new BufferedReader(reader); - fGC = gc; - fMaxWidth = maxLineWidth; - fLine = null; - fIndex = 0; - } - - private int findNextBreakIndex(int currIndex) { - int currWidth = 0; - int lineLength = fLine.length(); - - while (currIndex < lineLength) { - char ch = fLine.charAt(currIndex); - int nextIndex = currIndex + 1; - // leading whitespaces are counted to the following word - if (Character.isWhitespace(ch)) { - while (nextIndex < lineLength && Character.isWhitespace(fLine.charAt(nextIndex))) { - nextIndex++; - } - } - while (nextIndex < lineLength && !Character.isWhitespace(fLine.charAt(nextIndex))) { - nextIndex++; - } - String word = fLine.substring(currIndex, nextIndex); - int wordWidth = fGC.textExtent(word).x; - int nextWidth = wordWidth + currWidth; - if (nextWidth > fMaxWidth && wordWidth < fMaxWidth) { - return currIndex; - } - currWidth = nextWidth; - currIndex = nextIndex; - } - return currIndex; - } - - private int findWordBegin(int idx) { - while (idx < fLine.length() && Character.isWhitespace(fLine.charAt(idx))) { - idx++; - } - return idx; - } - - /** - * Reads the next line. The lengths of the line will not exceed the gived - * maximum width. - */ - public String readLine() throws IOException { - if (fLine == null) { - String line = fReader.readLine(); - if (line == null) { - return null; - } - int lineLen = fGC.textExtent(line).x; - if (lineLen < fMaxWidth) { - return line; - } - fLine = line; - fIndex = 0; - } - int breakIdx = findNextBreakIndex(fIndex); - String res = fLine.substring(fIndex, breakIdx); - if (breakIdx < fLine.length()) { - fIndex = findWordBegin(breakIdx); - } else { - fLine = null; - } - return res; - } -} |