mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-09-15 14:56:05 -04:00
Rename WeakListenerHelper to WeakListenerHolder
This commit is contained in:
parent
4a5ac1b899
commit
09287f9c72
@ -29,7 +29,7 @@ import org.jackhuang.hmcl.game.HMCLCacheRepository;
|
|||||||
import org.jackhuang.hmcl.game.HMCLGameRepository;
|
import org.jackhuang.hmcl.game.HMCLGameRepository;
|
||||||
import org.jackhuang.hmcl.game.Version;
|
import org.jackhuang.hmcl.game.Version;
|
||||||
import org.jackhuang.hmcl.mod.ModManager;
|
import org.jackhuang.hmcl.mod.ModManager;
|
||||||
import org.jackhuang.hmcl.ui.WeakListenerHelper;
|
import org.jackhuang.hmcl.ui.WeakListenerHolder;
|
||||||
import org.jackhuang.hmcl.util.*;
|
import org.jackhuang.hmcl.util.*;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -43,7 +43,7 @@ import static org.jackhuang.hmcl.ui.FXUtils.onInvalidating;
|
|||||||
* @author huangyuhui
|
* @author huangyuhui
|
||||||
*/
|
*/
|
||||||
public final class Profile implements Observable {
|
public final class Profile implements Observable {
|
||||||
private final WeakListenerHelper helper = new WeakListenerHelper();
|
private final WeakListenerHolder listenerHolder = new WeakListenerHolder();
|
||||||
private final HMCLGameRepository repository;
|
private final HMCLGameRepository repository;
|
||||||
private final ModManager modManager;
|
private final ModManager modManager;
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ public final class Profile implements Observable {
|
|||||||
|
|
||||||
gameDir.addListener((a, b, newValue) -> repository.changeDirectory(newValue));
|
gameDir.addListener((a, b, newValue) -> repository.changeDirectory(newValue));
|
||||||
this.selectedVersion.addListener(o -> checkSelectedVersion());
|
this.selectedVersion.addListener(o -> checkSelectedVersion());
|
||||||
helper.add(EventBus.EVENT_BUS.channel(RefreshedVersionsEvent.class).registerWeak(event -> checkSelectedVersion()));
|
listenerHolder.add(EventBus.EVENT_BUS.channel(RefreshedVersionsEvent.class).registerWeak(event -> checkSelectedVersion()));
|
||||||
|
|
||||||
addPropertyChangedListener(onInvalidating(this::invalidate));
|
addPropertyChangedListener(onInvalidating(this::invalidate));
|
||||||
}
|
}
|
||||||
|
@ -27,10 +27,10 @@ import javafx.collections.WeakListChangeListener;
|
|||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class WeakListenerHelper {
|
public class WeakListenerHolder {
|
||||||
List<Object> refs = new LinkedList<>();
|
private List<Object> refs = new LinkedList<>();
|
||||||
|
|
||||||
public WeakListenerHelper() {
|
public WeakListenerHolder() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public WeakInvalidationListener weak(InvalidationListener listener) {
|
public WeakInvalidationListener weak(InvalidationListener listener) {
|
@ -24,7 +24,7 @@ import org.jackhuang.hmcl.event.EventBus;
|
|||||||
import org.jackhuang.hmcl.event.RefreshedVersionsEvent;
|
import org.jackhuang.hmcl.event.RefreshedVersionsEvent;
|
||||||
import org.jackhuang.hmcl.setting.Profile;
|
import org.jackhuang.hmcl.setting.Profile;
|
||||||
import org.jackhuang.hmcl.setting.Profiles;
|
import org.jackhuang.hmcl.setting.Profiles;
|
||||||
import org.jackhuang.hmcl.ui.WeakListenerHelper;
|
import org.jackhuang.hmcl.ui.WeakListenerHolder;
|
||||||
import org.jackhuang.hmcl.ui.construct.AdvancedListItem;
|
import org.jackhuang.hmcl.ui.construct.AdvancedListItem;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -32,16 +32,16 @@ import java.io.File;
|
|||||||
import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
|
import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
|
||||||
|
|
||||||
public class GameAdvancedListItem extends AdvancedListItem {
|
public class GameAdvancedListItem extends AdvancedListItem {
|
||||||
private final WeakListenerHelper helper = new WeakListenerHelper();
|
private final WeakListenerHolder listenerHolder = new WeakListenerHolder();
|
||||||
|
|
||||||
private Profile profile;
|
private Profile profile;
|
||||||
private InvalidationListener listener = o -> loadVersion();
|
private InvalidationListener listener = o -> loadVersion();
|
||||||
|
|
||||||
public GameAdvancedListItem() {
|
public GameAdvancedListItem() {
|
||||||
Profiles.selectedProfileProperty().addListener(helper.weak((a, b, newValue) -> {
|
Profiles.selectedProfileProperty().addListener(listenerHolder.weak((a, b, newValue) -> {
|
||||||
JFXUtilities.runInFX(() -> loadProfile(newValue));
|
JFXUtilities.runInFX(() -> loadProfile(newValue));
|
||||||
}));
|
}));
|
||||||
helper.add(EventBus.EVENT_BUS.channel(RefreshedVersionsEvent.class).registerWeak(event -> {
|
listenerHolder.add(EventBus.EVENT_BUS.channel(RefreshedVersionsEvent.class).registerWeak(event -> {
|
||||||
JFXUtilities.runInFX(() -> {
|
JFXUtilities.runInFX(() -> {
|
||||||
if (profile != null && profile.getRepository() == event.getSource())
|
if (profile != null && profile.getRepository() == event.getSource())
|
||||||
loadVersion();
|
loadVersion();
|
||||||
|
@ -31,7 +31,7 @@ import org.jackhuang.hmcl.game.HMCLGameRepository;
|
|||||||
import org.jackhuang.hmcl.setting.Profile;
|
import org.jackhuang.hmcl.setting.Profile;
|
||||||
import org.jackhuang.hmcl.setting.Profiles;
|
import org.jackhuang.hmcl.setting.Profiles;
|
||||||
import org.jackhuang.hmcl.ui.Controllers;
|
import org.jackhuang.hmcl.ui.Controllers;
|
||||||
import org.jackhuang.hmcl.ui.WeakListenerHelper;
|
import org.jackhuang.hmcl.ui.WeakListenerHolder;
|
||||||
import org.jackhuang.hmcl.ui.decorator.DecoratorPage;
|
import org.jackhuang.hmcl.ui.decorator.DecoratorPage;
|
||||||
import org.jackhuang.hmcl.ui.download.DownloadWizardProvider;
|
import org.jackhuang.hmcl.ui.download.DownloadWizardProvider;
|
||||||
import org.jackhuang.hmcl.util.VersionNumber;
|
import org.jackhuang.hmcl.util.VersionNumber;
|
||||||
@ -70,8 +70,8 @@ public class GameList extends Control implements DecoratorPage {
|
|||||||
|
|
||||||
private void loadVersions(HMCLGameRepository repository) {
|
private void loadVersions(HMCLGameRepository repository) {
|
||||||
toggleGroup = new ToggleGroup();
|
toggleGroup = new ToggleGroup();
|
||||||
WeakListenerHelper helper = new WeakListenerHelper();
|
WeakListenerHolder listenerHolder = new WeakListenerHolder();
|
||||||
toggleGroup.getProperties().put("ReferenceHolder", helper);
|
toggleGroup.getProperties().put("ReferenceHolder", listenerHolder);
|
||||||
List<GameListItem> children = repository.getVersions().parallelStream()
|
List<GameListItem> children = repository.getVersions().parallelStream()
|
||||||
.filter(version -> !version.isHidden())
|
.filter(version -> !version.isHidden())
|
||||||
.sorted((a, b) -> VersionNumber.COMPARATOR.compare(VersionNumber.asVersion(a.getId()), VersionNumber.asVersion(b.getId())))
|
.sorted((a, b) -> VersionNumber.COMPARATOR.compare(VersionNumber.asVersion(a.getId()), VersionNumber.asVersion(b.getId())))
|
||||||
@ -83,7 +83,7 @@ public class GameList extends Control implements DecoratorPage {
|
|||||||
items.setAll(children);
|
items.setAll(children);
|
||||||
children.forEach(GameListItem::checkSelection);
|
children.forEach(GameListItem::checkSelection);
|
||||||
|
|
||||||
profile.selectedVersionProperty().addListener(helper.weak((a, b, newValue) -> {
|
profile.selectedVersionProperty().addListener(listenerHolder.weak((a, b, newValue) -> {
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
children.forEach(it -> it.selectedProperty().set(false));
|
children.forEach(it -> it.selectedProperty().set(false));
|
||||||
children.stream()
|
children.stream()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user