sclass G22AnalyzersPanel { transient settable G22Utils g22utils; *(G22Utils *g22utils) {} transient SimpleCRUD_v2 recognizerCRUD; transient SingleComponentPanel scpIDE; transient G22AnalyzerIDE recognizerIDE; cachedVisualize { recognizerCRUD = new SimpleCRUD_v2<>(g22utils.concepts(), G22Analyzer); recognizerCRUD.entityName = -> "Analyzer"; g22utils.setupScriptCRUD(recognizerCRUD); scpIDE = singleComponentPanel(); var recognizerCRUDVis = recognizerCRUD.visualize(); recognizerCRUD.onSelectionChanged(-> { recognizerIDE = new G22AnalyzerIDE(g22utils); recognizerIDE.setScript(recognizerCRUD.selected()); scpIDE.set(recognizerIDE); }); ret jvsplit( jCenteredSection("Analyzers", recognizerCRUDVis), scpIDE); } void updateCount { recognizerCRUD.update(); } void edit(G22Analyzer analyzer) { recognizerCRUD.setSelected(analyzer); } }