Rename WeakListenerHelper to WeakListenerHolder

This commit is contained in:
yushijinhun 2018-09-15 23:24:42 +08:00
parent 4a5ac1b899
commit 09287f9c72
No known key found for this signature in database
GPG Key ID: 5BC167F73EA558E4
4 changed files with 14 additions and 14 deletions

View File

@ -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));
} }

View File

@ -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) {

View File

@ -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();

View File

@ -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()