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); var old = scriptCRUD.editableFieldsForItem; scriptCRUD.editableFieldsForItem = x -> listPlus(old.get(x), "runOnProjectOpen"); 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); } void setSelected(G22LeftArrowScript script) { scriptCRUD.setSelected(script); } }