!7 sclass LatestChangedSnippets extends DynTable { L data; JComponent visualize() { JComponent c = super.visualize(); ret withCenteredButtons(c, tableDependentButton(table, "Add Module", r { S id = strOrNull(selectedTableCell(table, "ID")); if (isSnippetID(id)) dm_addDynamicModuleDialog2(id); })); } void start { ownTimer(doEvery(10.0, r actualUpdate)); } void actualUpdate { temp enter(); actualCalc(); } L calc() { ret data != null ? data : actualCalc(); } L actualCalc() ctex { time "Get Latest Snippets" { L l = recentlyChangedSnippets(); } ret setFieldAndReturn(data := map(l, func(Snippet s) { humanizeKeys(putKeysFirst(objectAsMap(s), "title", "id")) })); } }