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