23 package com.realtime.crossfire.jxclient.gui.log;
25 import java.util.Collection;
26 import org.jetbrains.annotations.NotNull;
41 private final Object
sync =
new Object();
89 final int bufferHeight = buffer.getTotalHeight();
91 final int oldHeight =
height;
93 if (bufferHeight <=
height) {
99 }
else if (topOffset < 0 || scrollPos > bufferHeight-
height ||
scrollPos == bufferHeight-oldHeight) {
110 public void update(@NotNull
final Buffer buffer,
final int oldBufferHeight) {
111 final int bufferHeight = buffer.getTotalHeight();
112 synchronized (
sync) {
113 if (bufferHeight <=
height) {
119 }
else if (topOffset < 0 || scrollPos > bufferHeight-
height ||
scrollPos == oldBufferHeight-
height) {
131 synchronized (
sync) {
148 synchronized (
sync) {
162 final int bufferHeight = buffer.getTotalHeight();
163 synchronized (
sync) {
164 if (bufferHeight <=
height) {
172 for (
Line line : lines) {
196 synchronized (
sync) {
206 synchronized (
sync) {
216 synchronized (
sync) {
226 synchronized (
sync) {
236 synchronized (
sync) {
246 synchronized (
sync) {
259 synchronized (
sync) {
272 final int bufferHeight = buffer.getTotalHeight();
273 synchronized (
sync) {
274 if (bufferHeight >
height) {
279 final int lineHeight = buffer.getLine(
topIndex).getHeight();
280 if (yPos < lineHeight) {
302 final int bufferHeight = buffer.getTotalHeight();
303 synchronized (
sync) {
304 if (bufferHeight <=
height) {
316 y -= buffer.getLine(
topIndex).getHeight();