/**
*
*/
package com.jediterm.terminal.debug;
import com.jediterm.terminal.ui.TerminalSession;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
public class BufferPanel extends JPanel {
public BufferPanel(final TerminalSession terminal) {
super(new BorderLayout());
final JTextArea area = new JTextArea();
area.setEditable(false);
add(area, BorderLayout.NORTH);
final DebugBufferType[] choices = DebugBufferType.values();
final JComboBox chooser = new JComboBox(choices);
add(chooser, BorderLayout.NORTH);
area.setFont(Font.decode("Monospaced-14"));
add(new JScrollPane(area), BorderLayout.CENTER);
class Updater implements ActionListener, ItemListener {
private String myLastUpdate = "";
void update() {
final DebugBufferType type = (DebugBufferType) chooser.getSelectedItem();
final String text = terminal.getBufferText(type);
if (!text.equals(myLastUpdate)) {
area.setText(text);
myLastUpdate = text;
}
}
public void actionPerformed(final ActionEvent e) {
update();
}
public void itemStateChanged(final ItemEvent e) {
update();
}
}
final Updater up = new Updater();
chooser.addItemListener(up);
final Timer timer = new Timer(1000, up);
timer.setRepeats(true);
timer.start();
}
}