java.lang.Object com.realtime.crossfire.jxclient.gui.log.Buffer
public class Buffer
Manages the contents of the contents of a log window. It consists of a list
of Line
s.
Field Summary | |
---|---|
private java.awt.font.FontRenderContext |
context
The FontRenderContext to use. |
private Fonts |
fonts
The Fonts instance for looking up fonts. |
private java.awt.Color |
lastColor
The color of the previously added line of text. |
private int |
lastCount
The number of repetitions of the previously added line of text. |
private java.lang.String |
lastText
The contents of the previously added line of text. |
private java.util.List<Line> |
lines
The lines in display order. |
private java.util.Collection<BufferListener> |
listeners
The listeners to notify about changes. |
static int |
MAX_LINES
The maximum number of lines the buffer can hold. |
static int |
MIN_LINE_HEIGHT
The minimal height of a line in pixels. |
private int |
renderWidth
The width to render. |
private java.lang.Object |
sync
Object to synchronized access to lines and totalHeight . |
private int |
totalHeight
The total height of all lines . |
Constructor Summary | |
---|---|
Buffer(Fonts fonts,
java.awt.font.FontRenderContext context,
int renderWidth)
Create a new instance. |
Method Summary | |
---|---|
void |
addBufferListener(BufferListener listener)
Add a listener to notify of changes. |
void |
addLine(Line line)
Append a Line to the end of the buffer. |
private int |
calculateHeight(Line line)
Determine the height of a Line in pixels. |
void |
clear()
Clear all lines from the buffer. |
int |
getLastCount()
Returns the number of merged lines. |
Line |
getLine(int line)
Return one Line by line index. |
java.lang.Object |
getSyncObject()
Returns the object to synchronize on when calling iterator() or
listIterator(int) . |
int |
getTotalHeight()
Return the total height of all lines. |
java.util.Iterator<Line> |
iterator()
Return an Iterator for the lines in this buffer. |
java.util.ListIterator<Line> |
listIterator(int line)
Return a ListIterator for the lines in this buffer. |
boolean |
mergeLines(java.lang.String text,
java.awt.Color color)
Checks whether a new text line should be merged with a preceding line. |
void |
prune()
Prune excess lines. |
void |
removeBufferListener(BufferListener listener)
Removes a listener to be notified of changes. |
void |
replaceLine(Line line)
Replace the last Line of this buffer. |
void |
setRenderWidth(int renderWidth)
Updates the width to render. |
int |
size()
Return the number of lines. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
@NotNull private final java.awt.font.FontRenderContext context
FontRenderContext
to use.
@NotNull private final Fonts fonts
Fonts
instance for looking up fonts.
@Nullable private java.awt.Color lastColor
private int lastCount
@NotNull private java.lang.String lastText
@NotNull private final java.util.List<Line> lines
@NotNull private final java.util.Collection<BufferListener> listeners
public static final int MAX_LINES
public static final int MIN_LINE_HEIGHT
private int renderWidth
@NotNull private final java.lang.Object sync
lines
and totalHeight
.
private int totalHeight
lines
.
Constructor Detail |
---|
public Buffer(@NotNull Fonts fonts, @NotNull java.awt.font.FontRenderContext context, int renderWidth)
fonts
- The Fonts
instance for looking up fonts.context
- The FontRenderContext
to use.renderWidth
- The width to render.Method Detail |
---|
public void addBufferListener(@NotNull BufferListener listener)
listener
- The listener.public void addLine(@NotNull Line line)
Line
to the end of the buffer.
line
- The line to append.private int calculateHeight(@NotNull Line line)
Line
in pixels.
line
- The line to process.
public void clear()
public int getLastCount()
mergeLines(String, Color)
did freturn true
.
@NotNull public Line getLine(int line)
Line
by line index. The first line has the index
0
.
line
- The line index.
@NotNull public java.lang.Object getSyncObject()
iterator()
or
listIterator(int)
.
public int getTotalHeight()
@NotNull public java.util.Iterator<Line> iterator()
Iterator
for the lines in this buffer. The caller must
hold sync
's lock.
@NotNull public java.util.ListIterator<Line> listIterator(int line)
ListIterator
for the lines in this buffer.
line
- The initial line index of the list iterator.
public boolean mergeLines(@NotNull java.lang.String text, @Nullable java.awt.Color color)
text
- the text line contentscolor
- the text line color
public void prune()
public void removeBufferListener(@NotNull BufferListener listener)
listener
- the listenerpublic void replaceLine(@NotNull Line line)
Line
of this buffer.
line
- The replacing line.public void setRenderWidth(int renderWidth)
renderWidth
- the width to renderpublic int size()