Formatting
* Split applyTheme method in applyTheme and autoscroll. * Added Javadoc
This commit is contained in:
parent
2405d4a6ad
commit
4d235c2cd9
@ -250,6 +250,7 @@ public class ChatWindow extends JFrame {
|
||||
messageList.setBackground(theme.getCellColor());
|
||||
// scrollPane
|
||||
scrollPane.applyTheme(theme);
|
||||
scrollPane.autoscroll();
|
||||
|
||||
// messageEnterTextArea
|
||||
messageEnterTextArea.setCaretColor(theme.getTypingMessageColor());
|
||||
|
@ -8,6 +8,7 @@ import javax.swing.JScrollPane;
|
||||
* Created: <strong>15 Dec 2019</strong><br>
|
||||
*
|
||||
* @author Kai S. K. Engelbart
|
||||
* @author Maximilian Käfer
|
||||
*/
|
||||
public class PrimaryScrollPane extends JScrollPane {
|
||||
|
||||
@ -18,6 +19,12 @@ public class PrimaryScrollPane extends JScrollPane {
|
||||
|
||||
public PrimaryScrollPane() { setBorder(null); }
|
||||
|
||||
/**
|
||||
* Styles the vertical and horizontal scroll bars.
|
||||
*
|
||||
* @param theme
|
||||
* @since Envoy v0.2-alpha
|
||||
*/
|
||||
public void applyTheme(Theme theme) {
|
||||
setForeground(theme.getBackgroundColor());
|
||||
setBackground(theme.getCellColor());
|
||||
@ -26,7 +33,22 @@ public class PrimaryScrollPane extends JScrollPane {
|
||||
getVerticalScrollBar().setUI(new PrimaryScrollBar(theme, true));
|
||||
getHorizontalScrollBar().setBackground(theme.getCellColor());
|
||||
getHorizontalScrollBar().setUI(new PrimaryScrollBar(theme, false));
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements <b>autoscroll functionality</b> for the vertical scroll bar. </br>
|
||||
* </br>
|
||||
* Functionality to automatically scroll down when user views </br>
|
||||
* the bottom of the chat while there are new messages added. </br>
|
||||
* </br>
|
||||
* When chat is opened, the vertical scroll bar starts at the bottom. </br>
|
||||
* </br>
|
||||
* When rereading messages, the chat doesn't scroll down if new messages </br>
|
||||
* are added. (Besides see first point)
|
||||
*
|
||||
* @since Envoy v0.2-alpha
|
||||
*/
|
||||
public void autoscroll() {
|
||||
// Automatic scrolling to the bottom
|
||||
getVerticalScrollBar().addAdjustmentListener(e -> {
|
||||
if (verticalScrollBarMaximum == e.getAdjustable().getMaximum()) return;
|
||||
|
Reference in New Issue
Block a user