srecord noeq JGazelleVScriptRunner(SimpleLiveValue lvScript) { GazelleVScript parsedScript; O result; SingleComponentPanel scpScriptResult; new WeakVar isScriptResult; JComponent scriptAndResultPanel() { ret northAndCenter( withMargin(withLabel("Gazelle V Script:", jLiveTextField(lvScript))), scpScriptResult = singleComponentPanel() ); } void showScriptOutput { //print(result := className(result)); if (result cast BWImage) { var c = scpScriptResult.getComponent(); if (isShowing(isScriptResult!)) { isScriptResult->setImage(result); } else { var is = stdImageSurface(); is.setImage(result); scpScriptResult.set(jscroll_centered(is)); isScriptResult.set(is); } } else scpScriptResult.set(jcenteredlabel(shorten(1000, str(result)))); } ImageSurface stdImageSurface() { ret pixelatedImageSurface().setAutoZoomToDisplay(true).repaintInThread(false); } void parse { parsedScript = new GazelleVScript(script); } void runOn(IBWIntegralImage ii) { var run = parsedScript.new Run(); run.setIntegralImage(ii); run.run(); result = run.result(); } }