+ // autoscroll
+ DefaultCaret caret = (DefaultCaret) textArea.getCaret();
+ caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
+ // toggle autoscroll by clicking on the text area
+ Border pausedBorder = BorderFactory.createMatteBorder(2, 2, 2, 2,
+ textArea.getForeground());
+ Border noBorder = BorderFactory.createEmptyBorder(2, 2, 2, 2);
+ JScrollPane scrollPane = new JScrollPane(textArea);
+ scrollPane.setBorder(noBorder);
+ textArea.addMouseListener(new MouseAdapter()
+ {
+ @Override
+ public void mouseClicked(MouseEvent e)
+ {
+ if (e.getButton() == MouseEvent.BUTTON1)
+ {
+ if (caret.getUpdatePolicy() == DefaultCaret.ALWAYS_UPDATE)
+ {
+ caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
+ scrollPane.setBorder(pausedBorder);
+ }
+ else
+ {
+ caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
+ textArea.setCaretPosition(textArea.getDocument().getLength());
+ scrollPane.setBorder(noBorder);
+ }
+ }
+ }
+ });
+
+ JButton clearButton = new JButton(
+ MessageManager.getString("action.clear"));
+ JButton copyToClipboardButton = new JButton(
+ MessageManager.getString("label.copy_to_clipboard"));
+ copyToClipboardButton.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ copyConsoleTextToClipboard();
+ }
+ });
+ copyToClipboardButton.addMouseListener(new MouseAdapter()
+ {
+ private Color bg = textArea.getBackground();
+
+ private Color fg = textArea.getForeground();
+
+ @Override
+ public void mousePressed(MouseEvent e)
+ {
+ textArea.setBackground(textArea.getSelectionColor());
+ textArea.setForeground(textArea.getSelectedTextColor());
+ }
+
+ @Override
+ public void mouseReleased(MouseEvent e)
+ {
+ textArea.setBackground(bg);
+ textArea.setForeground(fg);
+ }
+
+ });
+ copyToClipboardButton.setToolTipText(
+ MessageManager.getString("label.copy_to_clipboard_tooltip"));
+
+ JLabel logLevelLabel = new JLabel(
+ MessageManager.getString("label.log_level") + ":");
+
+ // logLevelCombo.addItem(LogLevel.ALL);
+ logLevelCombo.addItem(LogLevel.TRACE);
+ logLevelCombo.addItem(LogLevel.DEBUG);
+ logLevelCombo.addItem(LogLevel.INFO);
+ logLevelCombo.addItem(LogLevel.WARN);
+ // logLevelCombo.addItem(LogLevel.ERROR);
+ // logLevelCombo.addItem(LogLevel.FATAL);
+ // logLevelCombo.addItem(LogLevel.ERROR);
+ // logLevelCombo.addItem(LogLevel.OFF);
+ // set startingLogLevel
+
+ if (jalview.bin.Console.getLogger() == null)
+ {
+ startingLogLevel = jalview.bin.Console.getCachedLogLevel();
+ }
+ else
+ {
+ startingLogLevel = jalview.bin.Console.getLogger().getLevel();
+ }
+ setChosenLogLevelCombo();
+ logLevelCombo.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ if (jalview.bin.Console.log != null)
+ {
+ jalview.bin.Console.log
+ .setLevel((LogLevel) logLevelCombo.getSelectedItem());
+ }
+ }
+
+ });