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}