feat: 移动并简化 VersionPage.wrap 方法 (#5218)

This commit is contained in:
mineDiamond
2026-01-15 22:00:33 +08:00
committed by GitHub
parent a19f147a6a
commit 83782f5628
7 changed files with 13 additions and 24 deletions

View File

@@ -299,6 +299,14 @@ public final class FXUtils {
}); });
} }
public static Node wrap(Node node) {
return limitingSize(node, 30, 20);
}
public static Node wrap(SVG svg) {
return wrap(svg.createIcon(20));
}
private static class ListenerPair<T> { private static class ListenerPair<T> {
private final ObservableValue<T> value; private final ObservableValue<T> value;
private final ChangeListener<? super T> listener; private final ChangeListener<? super T> listener;

View File

@@ -54,7 +54,7 @@ import org.jackhuang.hmcl.util.javafx.MappedObservableList;
import java.util.Locale; import java.util.Locale;
import static org.jackhuang.hmcl.setting.ConfigHolder.globalConfig; import static org.jackhuang.hmcl.setting.ConfigHolder.globalConfig;
import static org.jackhuang.hmcl.ui.versions.VersionPage.wrap; import static org.jackhuang.hmcl.ui.FXUtils.wrap;
import static org.jackhuang.hmcl.util.i18n.I18n.i18n; import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
import static org.jackhuang.hmcl.util.javafx.ExtendedProperties.createSelectedItemPropertyFor; import static org.jackhuang.hmcl.util.javafx.ExtendedProperties.createSelectedItemPropertyFor;
import static org.jackhuang.hmcl.util.logging.Logger.LOG; import static org.jackhuang.hmcl.util.logging.Logger.LOG;

View File

@@ -30,7 +30,6 @@ import org.jackhuang.hmcl.ui.FXUtils;
import org.jackhuang.hmcl.ui.SVG; import org.jackhuang.hmcl.ui.SVG;
import org.jackhuang.hmcl.ui.animation.ContainerAnimations; import org.jackhuang.hmcl.ui.animation.ContainerAnimations;
import org.jackhuang.hmcl.ui.animation.TransitionPane; import org.jackhuang.hmcl.ui.animation.TransitionPane;
import org.jackhuang.hmcl.ui.versions.VersionPage;
import java.util.function.Consumer; import java.util.function.Consumer;
@@ -75,7 +74,7 @@ public class AdvancedListBox extends ScrollPane {
item.setActionButtonVisible(false); item.setActionButtonVisible(false);
item.setTitle(title); item.setTitle(title);
if (leftGraphic != null) { if (leftGraphic != null) {
item.setLeftGraphic(VersionPage.wrap(leftGraphic)); item.setLeftGraphic(FXUtils.wrap(leftGraphic));
} }
return item; return item;
} }

View File

@@ -67,7 +67,7 @@ import java.util.Locale;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.jackhuang.hmcl.ui.FXUtils.runInFX; import static org.jackhuang.hmcl.ui.FXUtils.runInFX;
import static org.jackhuang.hmcl.ui.versions.VersionPage.wrap; import static org.jackhuang.hmcl.ui.FXUtils.wrap;
import static org.jackhuang.hmcl.util.i18n.I18n.i18n; import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
import static org.jackhuang.hmcl.util.logging.Logger.LOG; import static org.jackhuang.hmcl.util.logging.Logger.LOG;

View File

@@ -28,7 +28,6 @@ import org.jackhuang.hmcl.ui.FXUtils;
import org.jackhuang.hmcl.ui.SVG; import org.jackhuang.hmcl.ui.SVG;
import org.jackhuang.hmcl.ui.construct.RipplerContainer; import org.jackhuang.hmcl.ui.construct.RipplerContainer;
import org.jackhuang.hmcl.ui.construct.TwoLineListItem; import org.jackhuang.hmcl.ui.construct.TwoLineListItem;
import org.jackhuang.hmcl.ui.versions.VersionPage;
public class ProfileListItemSkin extends SkinBase<ProfileListItem> { public class ProfileListItemSkin extends SkinBase<ProfileListItem> {
private final PseudoClass SELECTED = PseudoClass.getPseudoClass("selected"); private final PseudoClass SELECTED = PseudoClass.getPseudoClass("selected");
@@ -47,7 +46,7 @@ public class ProfileListItemSkin extends SkinBase<ProfileListItem> {
FXUtils.onClicked(getSkinnable(), () -> getSkinnable().setSelected(true)); FXUtils.onClicked(getSkinnable(), () -> getSkinnable().setSelected(true));
Node left = VersionPage.wrap(SVG.FOLDER); Node left = FXUtils.wrap(SVG.FOLDER);
root.setLeft(left); root.setLeft(left);
BorderPane.setAlignment(left, Pos.CENTER_LEFT); BorderPane.setAlignment(left, Pos.CENTER_LEFT);

View File

@@ -70,7 +70,7 @@ public class GameListPage extends DecoratorAnimatedPage implements DecoratorPage
addProfileItem.getStyleClass().add("navigation-drawer-item"); addProfileItem.getStyleClass().add("navigation-drawer-item");
addProfileItem.setTitle(i18n("profile.new")); addProfileItem.setTitle(i18n("profile.new"));
addProfileItem.setActionButtonVisible(false); addProfileItem.setActionButtonVisible(false);
addProfileItem.setLeftGraphic(VersionPage.wrap(SVG.ADD_CIRCLE)); addProfileItem.setLeftGraphic(FXUtils.wrap(SVG.ADD_CIRCLE));
addProfileItem.setOnAction(e -> Controllers.navigate(new ProfilePage(null))); addProfileItem.setOnAction(e -> Controllers.navigate(new ProfilePage(null)));
pane.setFitToWidth(true); pane.setFitToWidth(true);

View File

@@ -21,11 +21,8 @@ import com.jfoenix.controls.JFXPopup;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.beans.binding.Bindings; import javafx.beans.binding.Bindings;
import javafx.beans.property.*; import javafx.beans.property.*;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Node; import javafx.scene.Node;
import javafx.scene.layout.Priority; import javafx.scene.layout.Priority;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import org.jackhuang.hmcl.event.EventBus; import org.jackhuang.hmcl.event.EventBus;
import org.jackhuang.hmcl.event.EventPriority; import org.jackhuang.hmcl.event.EventPriority;
@@ -305,20 +302,6 @@ public class VersionPage extends DecoratorAnimatedPage implements DecoratorPage
} }
} }
public static Node wrap(Node node) {
StackPane stackPane = new StackPane();
stackPane.setAlignment(Pos.CENTER);
FXUtils.setLimitWidth(stackPane, 30);
FXUtils.setLimitHeight(stackPane, 20);
stackPane.setPadding(new Insets(0, 0, 0, 0));
stackPane.getChildren().setAll(node);
return stackPane;
}
public static Node wrap(SVG svg) {
return wrap(svg.createIcon(20));
}
public interface VersionLoadable { public interface VersionLoadable {
void loadVersion(Profile profile, String version); void loadVersion(Profile profile, String version);
} }