This commit is contained in:
Timi
2026-05-11 21:38:37 +08:00
parent 6837781383
commit 88f3e135ff
37 changed files with 358 additions and 658 deletions

View File

@@ -115,7 +115,7 @@ public class FileTreeView extends XTreeView<File> implements TimiFXUI.Colorful {
menuRefresh.disableProperty().bind(Bindings.createBooleanBinding(() -> {
List<TreeItem<File>> items = getSelectionModel().getSelectedItems();
// 没有选择、多选、选的不是文件时禁用
return items == null || items.size() != 1 || items.get(0).getValue().isFile();
return items == null || items.size() != 1 || items.getFirst().getValue().isFile();
}, getSelectionModel().selectedItemProperty()));
menuRefresh.setOnAction(e -> refreshItem(getSelectionModel().getSelectedItem()));
@@ -126,8 +126,8 @@ public class FileTreeView extends XTreeView<File> implements TimiFXUI.Colorful {
if (items.isEmpty()) {
return true;
}
for (int i = 0; i < items.size(); i++) {
if (roots.contains(items.get(i).getValue())) {
for (TreeItem<File> item : items) {
if (roots.contains(item.getValue())) {
return true;
}
}
@@ -168,8 +168,8 @@ public class FileTreeView extends XTreeView<File> implements TimiFXUI.Colorful {
});
// 默认磁盘根目录
for (int i = 0; i < roots.size(); i++) {
getRoots().add(new FileItem(roots.get(i)));
for (File root : roots) {
getRoots().add(new FileItem(root));
}
}
@@ -237,8 +237,8 @@ public class FileTreeView extends XTreeView<File> implements TimiFXUI.Colorful {
@Override
protected TreeItem<File> call() {
List<File> items = files.stream().map(TreeItem::getValue).toList();
for (int i = 0; i < items.size(); i++) {
IO.destroy(items.get(i));
for (File file : items) {
IO.destroy(file);
}
// 查找最高级节点刷新
int l = Integer.MAX_VALUE;
@@ -319,16 +319,16 @@ public class FileTreeView extends XTreeView<File> implements TimiFXUI.Colorful {
parent = new File("./").getAbsoluteFile();
}
do {
selectDeque.add(0, parent);
selectDeque.addFirst(parent);
} while ((parent = parent.getParentFile()) != null);
if (TimiJava.isNotEmpty(selectDeque)) {
ObservableList<TreeItem<File>> roots = getRoots();
for (int i = 0; i < roots.size(); i++) {
roots.get(i).setExpanded(false);
if (roots.get(i).getValue().equals(selectDeque.get(0))) {
selectDeque.remove(0);
roots.get(i).setExpanded(true);
for (TreeItem<File> root : roots) {
root.setExpanded(false);
if (root.getValue().equals(selectDeque.getFirst())) {
selectDeque.removeFirst();
root.setExpanded(true);
if (TimiJava.isEmpty(selectDeque)) {
break;
}
@@ -439,13 +439,13 @@ public class FileTreeView extends XTreeView<File> implements TimiFXUI.Colorful {
// 过滤
list:
for (int i = 0; i < fileList.size(); i++) {
for (int j = 0; j < itemFilters.size(); j++) {
if (!itemFilters.get(j).handler(fileList.get(i))) {
for (File file : fileList) {
for (CallbackArgReturn<File, Boolean> itemFilter : itemFilters) {
if (!itemFilter.handler(file)) {
continue list;
}
}
fileItems.add(new FileItem(fileList.get(i)));
fileItems.add(new FileItem(file));
}
}
return fileItems;
@@ -453,11 +453,11 @@ public class FileTreeView extends XTreeView<File> implements TimiFXUI.Colorful {
getChildren().setAll(items);
if (TimiJava.isNotEmpty(selectDeque)) {
File file = selectDeque.remove(0);
for (int i = 0; i < items.size(); i++) {
if (items.get(i).getValue().equals(file)) {
if (items.get(i).getValue().isDirectory()) {
items.get(i).setExpanded(true);
File file = selectDeque.removeFirst();
for (FileItem item : items) {
if (item.getValue().equals(file)) {
if (item.getValue().isDirectory()) {
item.setExpanded(true);
}
break;
}