!7 module DirectoryTree > DynSCP { File dir; JComponent visualize2() { if (dir == null) ret jcenteredbutton("Select directory...", rThread select); else { setDir(dir); ret getComponent(); } } void select { temp enter(); selectDir(voidfunc(File dir) { setDir(dir) }); } void setDir(File dir) { temp enter(); setField(+dir); setModuleName(f2s(dir) + " [Directory Tree]"); final JTree tree = jDynamicTree(dir, func(File d) -> L { listDirs(d) }); swing { tree.setCellRenderer(customToStringTreeCellRenderer(func(File f) -> S { fileName(f) })); } setComponent(tree); } }