srecord noeq G22AnalysisPanel(G22Utils g22utils) > MetaWithChangeListeners is Swingable { transient SingleComponentPanel scp; transient ReliableSingleThread rstStartAnalysis = new(r _startAnalysis); settableWithVar BufferedImage image; settableWithVar G22Recognizer analyzer; cachedVisualize { scp = singleComponentPanel(); varAnalyzer().onChange(rstStartAnalysis); varImage().onChangeAndNow(rstStartAnalysis); ret northAndCenterWithMargins( withLabel("Analyzer", jTypedComboBox(nullPlus(list(g22utils.concepts(), G22Recognizer))), analyzer), scp ); } void _startAnalysis { scp.set(new G22RunSingleAnalyzerPanel(image, analyzer)); } }