import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
+import javax.swing.SwingUtilities;
import javax.swing.border.Border;
import javax.swing.text.DefaultCaret;
-import jalview.bin.Cache;
import jalview.log.JLoggerI.LogLevel;
import jalview.log.JLoggerLog4j;
import jalview.log.JalviewAppender;
// logLevelCombo.addItem(LogLevel.ERROR);
// logLevelCombo.addItem(LogLevel.OFF);
// set startingLogLevel
- if (jalview.bin.Console.log == null)
+
+ if (jalview.bin.Console.getLogger() == null)
{
- try
- {
- startingLogLevel = LogLevel
- .valueOf(Cache.getDefault(Cache.JALVIEWLOGLEVEL, null));
- } catch (IllegalArgumentException e1)
- {
- jalview.bin.Console.debug(
- "Invalid value for preference " + Cache.JALVIEWLOGLEVEL);
- } catch (NullPointerException e2)
- {
- // no value in preferences
- } finally
- {
- if (startingLogLevel == null)
- {
- startingLogLevel = LogLevel.INFO;
- }
- }
+ startingLogLevel = jalview.bin.Console.getCachedLogLevel();
}
else
{
- startingLogLevel = jalview.bin.Console.log.getLevel();
+ startingLogLevel = jalview.bin.Console.getLogger().getLevel();
}
setChosenLogLevelCombo();
logLevelCombo.addActionListener(new ActionListener()
{
try
{
- this.wait(100); // ##### implicated BLOCKED
- if (pin.available() == 0)
- {
- trimBuffer(false);
- }
+ this.wait(100);
} catch (InterruptedException ie)
{
jalview.bin.Console.debug("pin.available() error", ie);
// check string buffer - if greater than console, clear console and
// replace with last segment of content, otherwise, append all to
// content.
- long count;
while (displayPipe.length() > 0)
{
- count = 0;
StringBuffer tmp = new StringBuffer(), replace;
synchronized (displayPipe)
{
replace = displayPipe;
displayPipe = tmp;
}
- // simply append whole buffer
- textArea.append(replace.toString()); // ##### implicated BLOCKED
- count += replace.length();
- if (count > byteslim)
+ // Append formatted message to textarea using the Swing Thread.
+ SwingUtilities.invokeLater(new Runnable()
{
- trimBuffer(false);
- }
+ public void run()
+ {
+ textArea.append(replace.toString());
+ trimBuffer(false);
+ }
+ });
}
if (displayPipe.length() == 0)
{
this.wait(100);
if (displayPipe.length() == 0)
{
- trimBuffer(false);
+ // post a trim on Swing Thread.
+ SwingUtilities.invokeLater(new Runnable()
+ {
+ public void run()
+ {
+ trimBuffer(false);
+ }
+ });
}
} catch (InterruptedException e)
{
@Override
public void run()
{
- displayPipe.append(input); // change to stringBuffer
- // displayPipe.flush();
-
+ displayPipe.append(input);
}
});
// stderr.println("Time taken to Spawnappend:\t" + (System.nanoTime() -