Warning: session_start(): open(/var/lib/php/sessions/sess_o41jrklm7ik4cpvjf4gusg4hb9, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
sclass FilesInDirectory extends DynSCP {
new DynModuleRef mate;
S dir;
L files;
transient JTable table;
File dirObject() { ret newFile(dir); }
JComponent visualize2() {
if (table == null) { table = sexyTable(); updateTable(); }
if (mate! == null) ret jcenteredlabel("Need directory");
ret table;
}
void update {
int oldChangeCount = mate! == null ? -1 : changeCount;
try {
if (mate! != null && !dm_moduleStillThere(mate!)) mate.set(null);
if (mate! == null)
if (setField(mate := DynModuleRef(print("Mate: ", dm_findMateOfType(this, 'DirectoryInfo)))))
revisualize2();
if (mate == null) ret;
setField(dir := (S) call(mate!, 'getDir));
L files = castCall(mate!, 'getFiles);
if (this.files != files) {
setField(+files);
}
} finally {
if (changeCount != oldChangeCount) updateTable();
}
}
void updateTable {
if (dir == null || table == null) ret with setModuleName("Files in directory");
L l = sortFilesByDate(
fileNamesInDirToFile(new File(dir), files);
dataToTable_uneditable(map(func(File f) -> Map {
litorderedmap("Name" := f.getName(), "Size" := f.isDirectory() ? "Directory" : toK(fileSize(f)) + " K")
}, l), table);
setModuleName(files == null
? "Not allowed to look in directory " + fileName(dirObject())
: n2(l, "element") + " in directory " + fileName(dirObject()));
}
}