sclass G22ScriptsFromAllDBsPanel { G22Utils g22utils; JObjectTable table; ReliableSingleThread rstUpdate = new(r _updateTable); transient SingleComponentPanel scpDetail = singleComponentPanel(); *(G22Utils *g22utils) {} visualize { table = swing(-> new JObjectTable); table.itemToMap = script -> joinMaps(litorderedmap( "DB" := fileName(script._concepts.conceptsDir()), "ID" := str(script.id)), g22utils.scriptToMap(script)); var tbl = table.visualize(); rstUpdate!; ret withTopAndBottomMargin(jCenteredRaisedSection("Scripts from all databases", jvsplit(tbl, scpDetail))); } void _updateTable { table.setData_force(concatLists( map_pcall(g22utils.gazelleDBs(), db -> { var classFinder = g22utils.masterStuff.makeClassFinder(); var cc = newConceptsWithClassFinder(db.conceptsFile(), classFinder); cc.loadFromDisk(); ret list(cc, G22LeftArrowScript); }))); } }