%import com.twosigma.beakerx.widget.Output
out = new Output()
OutputManager.setOutput(out)
t = new Thread({
println("background thread start")
for (i = 0; i < 20 ; i++) {
Thread.sleep(1000)
println("tick " + i)
if (i % 5 == 3) System.err.println("stderr!")
if (i % 6 == 2) display(HTML('any MIME type'))
if (i % 7 == 4) out.display(new Plot(initHeight:150) << new Line(y: [0,5,2,3,11]))
}});
println("ready set go")
t.start()
println("some other cell")
display(HTML('any MIME type'))
display(new Plot(initHeight:150) << new Line(y: [0,11,2,8,1]))
OutputManager.clearOutput()
OutputManager.setOutput(null)
t.stop()
OutputManager.setStandardOutput(new Output())
println("only stdout is captured")
System.err.println("stderr goes to its own cell")
OutputManager.clear()
OutputManager.setStandardOutput(null)
OutputManager.setStandardError(new Output())
println("stdout goes to its own cell")
System.err.println("only stderr is captured")
OutputManager.clear()
OutputManager.setStandardError(null)