!7 sclass DirectoryInfo extends DynModule { S dir; bool allowedToLook, exists, isFile; L filesContained; File dirObject() { ret newFile(dir); } JComponent visualize() { if (dir == null) ret jcenteredbutton("Select directory...", r { selectFile("Select directory to show", voidfunc(File dir) { setField(dir := f2s(dir)); revisualize(); }); }); ret makeForm(+dir, +allowedToLook, +exists, +isFile, "Files contained", l(filesContained)); } void update { if (dir != null && allowedToLook) { File dirObject = dirObject(); setField(exists := dirObject.isDirectory()); setField(isFile := dirObject.isFile()); if (filesContained == null) setField(filesContained := listFileNames(dirObject)); } } }