!7 sclass JavaEval extends DynPrintLog { S expression; transient bool calculating; transient O value; transient JTextField tfInput; transient Throwable error; JComponent visualize() { ret northAndCenterWithMargins( centerAndEastWithMarginInbetween( tfInput = onEnter(jtextfield(expression), rThread evalIt), hstackWithSpacing( jbutton("Eval", rThread evalIt), jbutton("Refresh", rThread refresh))), super.visualize()); } void refresh { veryQuickJava_refresh(); print("Refreshed translator."); } void evalIt { if (calculating) ret; calculating = true; temp tempAfterwards(r { calculating = false }); set transpileRaw_verySilent; S s = gtt(tfInput); print("\nEvaluating: " + s); logQuoted(programFile("expressions.txt"), s); setField(expression := s); try { toEvaluate = "time(func { " + s + "})"); setFields(value := javaEval_dependent(toEvaluate), error := null); print(); pcall { logStructure(programFile("with-results.txt"), ll(s, value)); } print(value); } catch e { setFields(value := null, error := e); printStackTrace2(e); } } }