abstract sclass DynPrintLog extends DynModule { transient JTextArea ta; transient Lock updatePrintLog_lock = lock(); JComponent visualize() { ret awtEvery( jSection("Log", ta = moveCaretToEnd(typeWriterTextArea(localPrintLog()))), 500, r updatePrintLog); } void updatePrintLog { // TODO: optimize lock updatePrintLog_lock; if (ta != null) setText(ta, localPrintLog()); } JTextArea myPrintLogComponent() { ret ta; } }