From 77c86ed3bcf9e78f9fc1c892516d540937805bd3 Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Sat, 26 Jan 2019 13:17:45 +0800 Subject: [PATCH] Add tooltip for authlib-injector accounts --- .../hmcl/ui/account/AccountListItemSkin.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountListItemSkin.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountListItemSkin.java index 2ff6b2ace..bc900d2d3 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountListItemSkin.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountListItemSkin.java @@ -22,17 +22,21 @@ import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXRadioButton; import com.jfoenix.effects.JFXDepthManager; import javafx.geometry.Pos; +import javafx.scene.control.Label; import javafx.scene.control.SkinBase; import javafx.scene.image.ImageView; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; + import org.jackhuang.hmcl.setting.Theme; import org.jackhuang.hmcl.ui.FXUtils; import org.jackhuang.hmcl.ui.SVG; -import org.jackhuang.hmcl.ui.construct.TwoLineListItem; import static org.jackhuang.hmcl.util.i18n.I18n.i18n; +import org.jackhuang.hmcl.auth.authlibinjector.AuthlibInjectorAccount; + public class AccountListItemSkin extends SkinBase { public AccountListItemSkin(AccountListItem skinnable) { @@ -58,8 +62,19 @@ public class AccountListItemSkin extends SkinBase { FXUtils.limitSize(imageView, 32, 32); imageView.imageProperty().bind(skinnable.imageProperty()); - TwoLineListItem item = new TwoLineListItem(); + Label title = new Label(); + title.getStyleClass().add("title"); + title.textProperty().bind(skinnable.titleProperty()); + Label subtitle = new Label(); + subtitle.getStyleClass().add("subtitle"); + subtitle.textProperty().bind(skinnable.subtitleProperty()); + if (skinnable.getAccount() instanceof AuthlibInjectorAccount) { + FXUtils.installTooltip(subtitle, ((AuthlibInjectorAccount) skinnable.getAccount()).getServer().toString()); + } + VBox item = new VBox(title, subtitle); + item.getStyleClass().add("two-line-list-item"); BorderPane.setAlignment(item, Pos.CENTER); + center.getChildren().setAll(imageView, item); root.setCenter(center); @@ -83,8 +98,6 @@ public class AccountListItemSkin extends SkinBase { root.setStyle("-fx-background-color: white; -fx-padding: 8 8 8 0;"); JFXDepthManager.setDepth(root, 1); - item.titleProperty().bind(skinnable.titleProperty()); - item.subtitleProperty().bind(skinnable.subtitleProperty()); getChildren().setAll(root); }