001package com.ganteater.ae.desktop.view; 002 003import java.awt.BorderLayout; 004import java.util.Properties; 005 006import javax.swing.JScrollBar; 007import javax.swing.JScrollPane; 008import javax.swing.JTextArea; 009 010import com.ganteater.ae.AEManager; 011 012public class TextPanel extends PresentationPanel { 013 private static final long serialVersionUID = -6679978094828718987L; 014 private JTextArea fTextArrea = new JTextArea(); 015 JScrollPane scroll = new JScrollPane(fTextArrea); 016 017 public TextPanel(Properties params, AEManager manager) { 018 super(params); 019 fTextArrea.setEditable(true); 020 add(scroll, BorderLayout.CENTER); 021 } 022 023 @Override 024 public void out(Object value, Properties properties) { 025 int length = fTextArrea.getText().length(); 026 boolean scrollOn = fTextArrea.getCaretPosition() == length || length == 0; 027 fTextArrea.append(value + "\n"); 028 if (scrollOn) { 029 length = fTextArrea.getText().length(); 030 fTextArrea.setCaretPosition(length); 031 JScrollBar verticalScrollBar = scroll.getVerticalScrollBar(); 032 verticalScrollBar.setValue(verticalScrollBar.getMaximum()); 033 } 034 } 035 036}