Uses 911K of libraries. Click here for Pure Java version (9959L/51K).
1 | !7 |
2 | |
3 | cmodule DirectoryTree > DynSCP {
|
4 | File dir; |
5 | |
6 | start {
|
7 | dm_onTopInput(voidfunc(fS s) {
|
8 | if (isAbsolutePath(s) && dirExists(s)) thread "Load Directory" {
|
9 | setDir(s); |
10 | } |
11 | }); |
12 | } |
13 | |
14 | JComponent visualize2() {
|
15 | if (dir == null) |
16 | ret jcenteredbutton("Select directory...", rThread select);
|
17 | else {
|
18 | thread "Load Directory" {
|
19 | sleepSeconds(1.0); // to avoid race condition |
20 | setDir(dir); |
21 | } |
22 | ret loadingLabel(); |
23 | } |
24 | } |
25 | |
26 | JLabel loadingLabel() { ret jcenteredlabel("Loading..."); }
|
27 | |
28 | void select {
|
29 | temp enter(); |
30 | selectDir(voidfunc(final File dir) { thread { setDir(dir); } });
|
31 | } |
32 | |
33 | void setDir(S dir) { setDir(newFile(dir)); }
|
34 | void setDir(File dir) enter {
|
35 | setComponent(loadingLabel()); |
36 | Tree<FileWithSize> dataTree = findDirsWithSizes_tree(dir); |
37 | sortTreeOfFilesWithSizeBySize(dataTree); |
38 | final JTree tree = jDynamicTreeFromTree(dataTree, makeChildrenIsFast := true); |
39 | setTreeCellRenderer(tree, customToStringTreeCellRenderer(func(Tree<FileWithSize> t) -> S {
|
40 | fileName(t.a.file) + " [" + str_toM(t.a.size) + "]" })); |
41 | |
42 | setField(+dir); |
43 | setModuleName(f2s(dir) + " [Directory Tree w/sizes]"); |
44 | setComponent(tree); |
45 | } |
46 | } |
Began life as a copy of #1019090
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt, xrpafgyirdlv
No comments. add comment
| Snippet ID: | #1019099 |
| Snippet name: | Directory Tree With Sizes [Dyn Module] |
| Eternal ID of this version: | #1019099/16 |
| Text MD5: | 9712088c0ec2e6a5e351437c57d931ef |
| Transpilation MD5: | d5efb9e6d429a9d775b36e16e4cc44eb |
| Author: | stefan |
| Category: | javax / stefan's os |
| Type: | JavaX source code (Dynamic Module) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2020-01-20 14:13:31 |
| Source code size: | 1282 bytes / 46 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 836 / 1303 |
| Version history: | 15 change(s) |
| Referenced in: | [show references] |