!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 = jtextfield(expression), 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 }); S s = gtt(tfInput); print("Evaluating: " + s); setField(expression := s); try { setFields(value := javaEval(s), error := null); print(); print(value); } catch e { setFields(value := null, error := e); printStackTrace2(e); } } }