srecord noeq G22AnalysisPanel(G22Utils g22utils) > MetaWithChangeListeners is Swingable { transient SingleComponentPanel scp; transient ReliableSingleThread rstStartAnalysis = new(r _startAnalysis); gettable BufferedImage image; settableWithVar G22Recognizer analyzer; // we may be getting the same instance again but it still means // there was a change in the image public void setImage(BufferedImage image) { this.image = image; rstStartAnalysis.trigger(); } cachedVisualize { scp = singleComponentPanel(); varAnalyzer().onChangeAndNow(rstStartAnalysis); //varImage().onChangeAndNow(rstStartAnalysis); ret northAndCenterWithMargins( withLabel("Analyzer", bindComboBoxToVar(varAnalyzer(), jTypedComboBox(nullPlus(list(g22utils.concepts(), G22Recognizer)), analyzer))), scp ); } void _startAnalysis { scp.set(new G22RunSingleAnalyzerPanel(g22utils, image, analyzer)); } }