!7 concept Entry { S path; //LS alternatePaths; S comment; bool worthyOfBackup; } module UserDirectories > DynCRUD { *() { super(Entry); } start { // Add some default stuff add(userDir(), "Your home directory"); add(javaxDataDir(), "JavaX data directory"); add(javaxCachesDir(), "JavaX cache directory"); add(javaxCodeDir(), "JavaX code directory"); add(desktopDir(), "Your desktop"); add(downloadsDir(), "Your downloads"); } afterVisualize { makeSortable(); onTableCellLeftClick(table(), voidfunc(int col, int row) { if (col == 3) cset(selected(), worthyOfBackup := !selected().worthyOfBackup); }); } // API // only sets comment if it was empty void add(File dir, S comment) { Entry e = uniq(Entry, path := f2s(dir)); if (emptyAfterTrim(e.comment)) cset(e, +comment); } }