srecord noeq G22RunSingleAnalyzerPanel(G22Utils g22utils, BufferedImage image, G22Recognizer analyzer) is Swingable { transient ReliableSingleThread rst = new(r _run); transient SingleComponentPanel scp = singleComponentPanel(); visual { reRun(); ret scp; } void reRun() { rst.trigger(); } void _run { if (analyzer == null) ret with scp.set(jcenteredlabel("Please select an analyzer")); if (image == null) ret with scp.set(jcenteredlabel("No image")); var compiled = analyzer.compileForAutoRun(); if (compiled == null) ret with scp.set(jcenteredlabel(analyzer + " is not cleared for auto-run")); if (compiled.compileError != null) ret with scp.set(jErrorView(compiled.compileError)); scp.set(jcenteredlabel("Running analyzer...")); try { var result = compiled.get(image); scp.set(jcenteredlabel(shorten(g22utils.stringify(result)))); } catch e { scp.set(jErrorView(e)); } } }