private synchronized void addCommand(LogCommand command) {
   if (!myAlarm.isDisposed()) {
     myLog.add(command);
     myAlarm.cancelAllRequests();
     myAlarm.addRequest(myFlushLogRunnable, 100L);
   }
 }
 public void emptyAll() {
   myLog.clear();
   myCommandsProcessedCount = 0;
   myErrorCount = 0;
   myWarningCount = 0;
   myPlainTextView.clearAllMessages();
   myTreeView.clearAllMessages();
 }
 @Override
 public void run() {
   if (myTreeView != null && myCommandsProcessedCount < myLog.size()) {
     if (!myIsOutputPaused) {
       new OutputFlusher().doFlush();
       myTreeView.scrollToLastMessage();
     }
   }
 }