chore: fix checkstyle

This commit is contained in:
Carl-Robert Linnupuu 2024-06-24 17:34:07 +03:00
parent 36cb730db4
commit 7fe101ff16

View file

@ -1,41 +1,43 @@
package ee.carlrobert.codegpt.toolwindow.chat.ui;
import javax.swing.*;
import javax.swing.text.DefaultCaret;
import javax.swing.text.JTextComponent;
import java.awt.*;
import java.awt.Component;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import javax.swing.BoundedRangeModel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.text.DefaultCaret;
import javax.swing.text.JTextComponent;
/**
* SmartScroller taken from http://tips4java.wordpress.com/2013/03/03/smart-scrolling/
* SmartScroller taken from http://tips4java.wordpress.com/2013/03/03/smart-scrolling/
*
* The SmartScroller will attempt to keep the viewport positioned based on
* the users interaction with the scrollbar. The normal behaviour is to keep
* the viewport positioned to see new data as it is dynamically added.
* <p>The SmartScroller will attempt to keep the viewport positioned based on the users interaction
* with the scrollbar. The normal behaviour is to keep the viewport positioned to see new data as it
* is dynamically added.
*
* Assuming vertical scrolling and data is added to the bottom:
* <p>Assuming vertical scrolling and data is added to the bottom:
*
* - when the viewport is at the bottom and new data is added,
* then automatically scroll the viewport to the bottom
* - when the viewport is not at the bottom and new data is added,
* then do nothing with the viewport
* <p>- when the viewport is at the bottom and new data is added, then automatically scroll the
* viewport to the bottom
* - when the viewport is not at the bottom and new data is added, then do nothing with the viewport
*
* Assuming vertical scrolling and data is added to the top:
* <p>Assuming vertical scrolling and data is added to the top:
*
* - when the viewport is at the top and new data is added,
* then do nothing with the viewport
* - when the viewport is not at the top and new data is added, then adjust
* the viewport to the relative position it was at before the data was added
* <p>- when the viewport is at the top and new data is added, then do nothing with the viewport
* - when the viewport is not at the top and new data is added, then adjust the viewport to the
* relative position it was at before the data was added
*
* Similiar logic would apply for horizontal scrolling.
* <p>Similar logic would apply for horizontal scrolling.
*/
public class SmartScroller implements AdjustmentListener {
public final static int HORIZONTAL = 0;
public final static int VERTICAL = 1;
public final static int START = 0;
public final static int END = 1;
public static final int HORIZONTAL = 0;
public static final int VERTICAL = 1;
public static final int START = 0;
public static final int END = 1;
private int viewportPosition;
@ -46,8 +48,7 @@ public class SmartScroller implements AdjustmentListener {
private int previousMaximum = -1;
/**
* Convenience constructor.
* Scroll direction is VERTICAL and viewport position is at the END.
* Convenience constructor. Scroll direction is VERTICAL and viewport position is at the END.
*
* @param scrollPane the scroll pane to monitor
*/
@ -56,8 +57,7 @@ public class SmartScroller implements AdjustmentListener {
}
/**
* Convenience constructor.
* Scroll direction is VERTICAL.
* Convenience constructor. Scroll direction is VERTICAL.
*
* @param scrollPane the scroll pane to monitor
* @param viewportPosition valid values are START and END
@ -70,27 +70,29 @@ public class SmartScroller implements AdjustmentListener {
* Specify how the SmartScroller will function.
*
* @param scrollPane the scroll pane to monitor
* @param scrollDirection indicates which JScrollBar to monitor.
* Valid values are HORIZONTAL and VERTICAL.
* @param viewportPosition indicates where the viewport will normally be
* positioned as data is added.
* Valid values are START and END
* @param scrollDirection indicates which JScrollBar to monitor. Valid values are HORIZONTAL and
* VERTICAL.
* @param viewportPosition indicates where the viewport will normally be positioned as data is
* added. Valid values are START and END
*/
public SmartScroller(JScrollPane scrollPane, int scrollDirection, int viewportPosition) {
if (scrollDirection != HORIZONTAL
&& scrollDirection != VERTICAL)
&& scrollDirection != VERTICAL) {
throw new IllegalArgumentException("invalid scroll direction specified");
}
if (viewportPosition != START
&& viewportPosition != END)
&& viewportPosition != END) {
throw new IllegalArgumentException("invalid viewport position specified");
}
this.viewportPosition = viewportPosition;
if (scrollDirection == HORIZONTAL)
if (scrollDirection == HORIZONTAL) {
scrollBar = scrollPane.getHorizontalScrollBar();
else
} else {
scrollBar = scrollPane.getVerticalScrollBar();
}
scrollBar.addAdjustmentListener(this);
@ -134,10 +136,11 @@ public class SmartScroller implements AdjustmentListener {
// Check if the user has manually repositioned the scrollbar
if (valueChanged && !maximumChanged) {
if (viewportPosition == START)
if (viewportPosition == START) {
adjustScrollBar = value != 0;
else
} else {
adjustScrollBar = value + extent >= maximum;
}
}
// Reset the "value" so we can reposition the viewport and