This commit is contained in:
huangyuhui 2018-08-22 02:08:49 +08:00
parent c7bfb9a11d
commit ad568d2b9f
3 changed files with 14 additions and 4 deletions

View File

@ -47,7 +47,7 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh
private final DownloadProvider downloadProvider; private final DownloadProvider downloadProvider;
private final String libraryId; private final String libraryId;
private final String title; private final String title;
private final Runnable callback; private final WizardController controller;
@FXML @FXML
private JFXListView<VersionsPageItem> list; private JFXListView<VersionsPageItem> list;
@ -77,7 +77,7 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh
this.gameVersion = gameVersion; this.gameVersion = gameVersion;
this.downloadProvider = downloadProvider; this.downloadProvider = downloadProvider;
this.libraryId = libraryId; this.libraryId = libraryId;
this.callback = callback; this.controller = controller;
this.versionList = downloadProvider.getVersionListById(libraryId); this.versionList = downloadProvider.getVersionListById(libraryId);
FXUtils.loadFXML(this, "/assets/fxml/download/versions.fxml"); FXUtils.loadFXML(this, "/assets/fxml/download/versions.fxml");
@ -160,5 +160,5 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh
} }
@FXML @FXML
private void onBack() { callback.run(); } private void onBack() { controller.onPrev(true); }
} }

View File

@ -70,7 +70,7 @@ public abstract class VersionList<T extends RemoteVersion> {
}); });
} }
private Collection<T> getVersionsImpl(String gameVersion) { protected Collection<T> getVersionsImpl(String gameVersion) {
lock.readLock().lock(); lock.readLock().lock();
try { try {
return versions.get(gameVersion); return versions.get(gameVersion);

View File

@ -44,6 +44,16 @@ public final class GameVersionList extends VersionList<GameRemoteVersion> {
return true; return true;
} }
@Override
protected Collection<GameRemoteVersion> getVersionsImpl(String gameVersion) {
lock.readLock().lock();
try {
return versions.values();
} finally {
lock.readLock().unlock();
}
}
@Override @Override
public Task refreshAsync(DownloadProvider downloadProvider) { public Task refreshAsync(DownloadProvider downloadProvider) {
GetTask task = new GetTask(NetworkUtils.toURL(downloadProvider.getVersionListURL())); GetTask task = new GetTask(NetworkUtils.toURL(downloadProvider.getVersionListURL()));