From 71d54955adc0b2b06e8608df385cd054653ba6c1 Mon Sep 17 00:00:00 2001 From: Glavo Date: Thu, 28 Aug 2025 20:21:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20TaskListPane.StatusChangeL?= =?UTF-8?q?istener=20=E6=8C=81=E6=9C=89=20ListCell=20=E7=9A=84=E5=BC=BA?= =?UTF-8?q?=E5=BC=95=E7=94=A8=E7=9A=84=E9=97=AE=E9=A2=98=20(#4347)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmcl/ui/construct/TaskListPane.java | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/TaskListPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/TaskListPane.java index abad96e49..9c5311d53 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/TaskListPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/TaskListPane.java @@ -279,7 +279,7 @@ public final class TaskListPane extends StackPane { private final JFXProgressBar bar = new JFXProgressBar(); private WeakReference prevStageNodeRef; - private ChangeListener statusChangeListener; + private StatusChangeListener statusChangeListener; private Cell() { setPadding(new Insets(0, 0, 4, 0)); @@ -364,32 +364,32 @@ public final class TaskListPane extends StackPane { pane.setBottom(null); } } + } - private final class StatusChangeListener implements ChangeListener, WeakListener { + private static final class StatusChangeListener implements ChangeListener, WeakListener { - private final WeakReference cellRef; + private final WeakReference cellRef; - private StatusChangeListener(Cell cell) { - this.cellRef = new WeakReference<>(cell); - } - - @Override - public boolean wasGarbageCollected() { - return cellRef.get() == null; - } - - @Override - public void changed(ObservableValue observable, - StageNode.Status oldValue, - StageNode.Status newValue) { - Cell cell = cellRef.get(); - if (cell == null) { - if (observable != null) - observable.removeListener(this); - return; - } - cell.updateLeftIcon(newValue); + private StatusChangeListener(Cell cell) { + this.cellRef = new WeakReference<>(cell); + } + + @Override + public boolean wasGarbageCollected() { + return cellRef.get() == null; + } + + @Override + public void changed(ObservableValue observable, + StageNode.Status oldValue, + StageNode.Status newValue) { + Cell cell = cellRef.get(); + if (cell == null) { + if (observable != null) + observable.removeListener(this); + return; } + cell.updateLeftIcon(newValue); } }