!7 !include once #1017126 // transpileRaw 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("Fresh", rThread { refresh(); evalIt() }), jbutton("Eval", rThread evalIt))), super.visualize()); } void refresh { call(dm_transpiler(), '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 { S toEvaluate = s; // "time(func { " + s + "})"; //O value = javaEval_dependent(toEvaluate); O value = dm_javaEval(toEvaluate); setFields(+value, error := null); print(); new L info; info.add(evalJava_myProgramID_main_time! + " ms"); if (value instanceof Collection || value instanceof Map) info.add("l=" + l(value)); print("[" + joinWithComma(info) + "]"); S string = str(value); pcall { logStructure(programFile("with-results.txt"), ll(s, string)); } print(shorten(1000, string)); } catch e { setFields(value := null, error := e); printStackTrace2(e); } } }