mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-09-14 14:26:43 -04:00
commit
a0ff843d0c
@ -45,7 +45,6 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -53,6 +52,7 @@ public final class VersionSettingsController {
|
|||||||
private VersionSetting lastVersionSetting = null;
|
private VersionSetting lastVersionSetting = null;
|
||||||
private Profile profile;
|
private Profile profile;
|
||||||
private String versionId;
|
private String versionId;
|
||||||
|
private boolean javaItemsLoaded;
|
||||||
|
|
||||||
@FXML private VBox rootPane;
|
@FXML private VBox rootPane;
|
||||||
@FXML private ScrollPane scroll;
|
@FXML private ScrollPane scroll;
|
||||||
@ -90,6 +90,7 @@ public final class VersionSettingsController {
|
|||||||
(variables.<List<JavaVersion>>get("list")).stream()
|
(variables.<List<JavaVersion>>get("list")).stream()
|
||||||
.map(javaVersion -> javaItem.createChildren(javaVersion.getVersion(), javaVersion.getBinary().getAbsolutePath(), javaVersion))
|
.map(javaVersion -> javaItem.createChildren(javaVersion.getVersion(), javaVersion.getBinary().getAbsolutePath(), javaVersion))
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList()));
|
||||||
|
javaItemsLoaded = true;
|
||||||
initializeSelectedJava();
|
initializeSelectedJava();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -212,23 +213,34 @@ public final class VersionSettingsController {
|
|||||||
|
|
||||||
private void initializeSelectedJava() {
|
private void initializeSelectedJava() {
|
||||||
if (lastVersionSetting == null
|
if (lastVersionSetting == null
|
||||||
|| !JavaVersion.getJREsImmediately().isPresent() /* JREs are still being loaded */) {
|
|| !javaItemsLoaded /* JREs are still being loaded */) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean flag = false;
|
List<Toggle> toggles = javaItem.getGroup().getToggles();
|
||||||
Toggle defaultToggle = null;
|
if ("Custom".equals(lastVersionSetting.getJava())) {
|
||||||
for (Toggle toggle : javaItem.getGroup().getToggles()) {
|
toggles.stream()
|
||||||
if (toggle.getUserData() == Lang.invoke(lastVersionSetting::getJavaVersion)) {
|
.filter(javaItem::isCustomToggle)
|
||||||
toggle.setSelected(true);
|
.findFirst()
|
||||||
flag = true;
|
.get().setSelected(true);
|
||||||
} else if (toggle.getUserData() == JavaVersion.fromCurrentEnvironment()) {
|
} else {
|
||||||
defaultToggle = toggle;
|
JavaVersion selectedJava;
|
||||||
|
try {
|
||||||
|
selectedJava = lastVersionSetting.getJavaVersion();
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
toggles.stream()
|
||||||
|
.filter(it -> it.getUserData() == selectedJava)
|
||||||
if (!flag) {
|
.findFirst()
|
||||||
Optional.ofNullable(defaultToggle).ifPresent(t -> t.setSelected(true));
|
.orElseGet( // fallback to select current java
|
||||||
|
() -> toggles.stream()
|
||||||
|
.filter(it -> it.getUserData() == JavaVersion.fromCurrentEnvironment())
|
||||||
|
.findFirst()
|
||||||
|
.get())
|
||||||
|
.setSelected(true);
|
||||||
|
;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user