!7 module PossibleLogFiles > DynObjectTable { start { fS home = addSlash(userHome()); itemToMap = func(File f) -> Map { long time = f.lastModified(); ret litorderedmap( "Log File" := dropPrefix(home, f.getPath()), "Program" := unnull(snippetTitle_cached(firstSnippetIDFromPath(f))), "Size" := toK(fileSize(f)) + " K", "Changed" := /*howManySecondsAgo(time) + " (" +*/ renderHowLongAgo(time) /* + ")"*/, "Last Line" := simplifyLogLineForDisplay(lastLineOfFile(f))); }; doEveryAndNow(60.0, r fullUpdate); doEvery(3.0, r updateTable); } afterVisualize { addRowSorter_desc(table, 3); rowSorter_setComparators(table, 2, alphaNumComparator(), 3, howLongAgo_comparator()); } void fullUpdate() { setData(findProbableQuotedLogs()); } }