sclass G22ScriptsPanel { transient settable G22Utils g22utils; *(G22Utils *g22utils) {} transient SimpleCRUD_v2 scriptCRUD; transient SingleComponentPanel scpIDE; transient G22LAScriptIDE scriptIDE; cachedVisualize { scriptCRUD = new SimpleCRUD_v2<>(g22utils.concepts(), G22LeftArrowScript); scriptCRUD.entityName = -> "Script"; g22utils.setupScriptCRUD(scriptCRUD); scpIDE = singleComponentPanel(); var scriptCRUDVis = scriptCRUD.visualize(); scriptCRUD.onSelectionChanged(-> { scriptIDE = new G22LAScriptIDE(g22utils); scriptIDE.setScript(scriptCRUD.selected()); scpIDE.set(scriptIDE); }); ret jvsplit( jCenteredSection("Scripts", scriptCRUDVis), scpIDE); } void updateCount { scriptCRUD.update(); } void edit(G22LeftArrowScript script) { scriptCRUD.setSelected(script); } }