Fix Account/VersionListItem can be unselected
This commit is contained in:
@@ -18,8 +18,8 @@
|
|||||||
package org.jackhuang.hmcl.ui.account;
|
package org.jackhuang.hmcl.ui.account;
|
||||||
|
|
||||||
import javafx.beans.property.*;
|
import javafx.beans.property.*;
|
||||||
|
import javafx.scene.control.RadioButton;
|
||||||
import javafx.scene.control.Skin;
|
import javafx.scene.control.Skin;
|
||||||
import javafx.scene.control.ToggleButton;
|
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import org.jackhuang.hmcl.auth.Account;
|
import org.jackhuang.hmcl.auth.Account;
|
||||||
import org.jackhuang.hmcl.auth.authlibinjector.AuthlibInjectorAccount;
|
import org.jackhuang.hmcl.auth.authlibinjector.AuthlibInjectorAccount;
|
||||||
@@ -32,7 +32,7 @@ import org.jackhuang.hmcl.task.Schedulers;
|
|||||||
|
|
||||||
import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
|
import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
|
||||||
|
|
||||||
public class AccountListItem extends ToggleButton {
|
public class AccountListItem extends RadioButton {
|
||||||
|
|
||||||
private final Account account;
|
private final Account account;
|
||||||
private final StringProperty title = new SimpleStringProperty();
|
private final StringProperty title = new SimpleStringProperty();
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import javafx.scene.control.SkinBase;
|
|||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.layout.BorderPane;
|
import javafx.scene.layout.BorderPane;
|
||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.StackPane;
|
|
||||||
import org.jackhuang.hmcl.setting.Theme;
|
import org.jackhuang.hmcl.setting.Theme;
|
||||||
import org.jackhuang.hmcl.ui.FXUtils;
|
import org.jackhuang.hmcl.ui.FXUtils;
|
||||||
import org.jackhuang.hmcl.ui.SVG;
|
import org.jackhuang.hmcl.ui.SVG;
|
||||||
@@ -41,23 +40,23 @@ public class AccountListItemSkin extends SkinBase<AccountListItem> {
|
|||||||
|
|
||||||
BorderPane root = new BorderPane();
|
BorderPane root = new BorderPane();
|
||||||
|
|
||||||
JFXRadioButton chkSelected = new JFXRadioButton();
|
JFXRadioButton chkSelected = new JFXRadioButton() {
|
||||||
|
@Override
|
||||||
|
public void fire() {
|
||||||
|
skinnable.fire();
|
||||||
|
}
|
||||||
|
};
|
||||||
BorderPane.setAlignment(chkSelected, Pos.CENTER);
|
BorderPane.setAlignment(chkSelected, Pos.CENTER);
|
||||||
chkSelected.selectedProperty().bindBidirectional(skinnable.selectedProperty());
|
chkSelected.selectedProperty().bind(skinnable.selectedProperty());
|
||||||
root.setLeft(chkSelected);
|
root.setLeft(chkSelected);
|
||||||
|
|
||||||
HBox center = new HBox();
|
HBox center = new HBox();
|
||||||
center.setSpacing(8);
|
center.setSpacing(8);
|
||||||
center.setAlignment(Pos.CENTER_LEFT);
|
center.setAlignment(Pos.CENTER_LEFT);
|
||||||
|
|
||||||
StackPane imageViewContainer = new StackPane();
|
|
||||||
FXUtils.setLimitWidth(imageViewContainer, 32);
|
|
||||||
FXUtils.setLimitHeight(imageViewContainer, 32);
|
|
||||||
|
|
||||||
ImageView imageView = new ImageView();
|
ImageView imageView = new ImageView();
|
||||||
FXUtils.limitSize(imageView, 32, 32);
|
FXUtils.limitSize(imageView, 32, 32);
|
||||||
imageView.imageProperty().bind(skinnable.imageProperty());
|
imageView.imageProperty().bind(skinnable.imageProperty());
|
||||||
imageViewContainer.getChildren().setAll(imageView);
|
|
||||||
|
|
||||||
TwoLineListItem item = new TwoLineListItem();
|
TwoLineListItem item = new TwoLineListItem();
|
||||||
BorderPane.setAlignment(item, Pos.CENTER);
|
BorderPane.setAlignment(item, Pos.CENTER);
|
||||||
|
|||||||
@@ -19,13 +19,13 @@ package org.jackhuang.hmcl.ui.profile;
|
|||||||
|
|
||||||
import javafx.beans.property.SimpleStringProperty;
|
import javafx.beans.property.SimpleStringProperty;
|
||||||
import javafx.beans.property.StringProperty;
|
import javafx.beans.property.StringProperty;
|
||||||
|
import javafx.scene.control.RadioButton;
|
||||||
import javafx.scene.control.Skin;
|
import javafx.scene.control.Skin;
|
||||||
import javafx.scene.control.ToggleButton;
|
|
||||||
|
|
||||||
import org.jackhuang.hmcl.setting.Profile;
|
import org.jackhuang.hmcl.setting.Profile;
|
||||||
import org.jackhuang.hmcl.setting.Profiles;
|
import org.jackhuang.hmcl.setting.Profiles;
|
||||||
|
|
||||||
public class ProfileListItem extends ToggleButton {
|
public class ProfileListItem extends RadioButton {
|
||||||
private final Profile profile;
|
private final Profile profile;
|
||||||
private final StringProperty title = new SimpleStringProperty();
|
private final StringProperty title = new SimpleStringProperty();
|
||||||
private final StringProperty subtitle = new SimpleStringProperty();
|
private final StringProperty subtitle = new SimpleStringProperty();
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import javafx.scene.image.Image;
|
|||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.layout.BorderPane;
|
import javafx.scene.layout.BorderPane;
|
||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.StackPane;
|
|
||||||
import org.jackhuang.hmcl.setting.Theme;
|
import org.jackhuang.hmcl.setting.Theme;
|
||||||
import org.jackhuang.hmcl.ui.FXUtils;
|
import org.jackhuang.hmcl.ui.FXUtils;
|
||||||
import org.jackhuang.hmcl.ui.SVG;
|
import org.jackhuang.hmcl.ui.SVG;
|
||||||
@@ -39,23 +38,23 @@ public class ProfileListItemSkin extends SkinBase<ProfileListItem> {
|
|||||||
|
|
||||||
BorderPane root = new BorderPane();
|
BorderPane root = new BorderPane();
|
||||||
|
|
||||||
JFXRadioButton chkSelected = new JFXRadioButton();
|
JFXRadioButton chkSelected = new JFXRadioButton() {
|
||||||
|
@Override
|
||||||
|
public void fire() {
|
||||||
|
skinnable.fire();
|
||||||
|
}
|
||||||
|
};
|
||||||
BorderPane.setAlignment(chkSelected, Pos.CENTER);
|
BorderPane.setAlignment(chkSelected, Pos.CENTER);
|
||||||
chkSelected.selectedProperty().bindBidirectional(skinnable.selectedProperty());
|
chkSelected.selectedProperty().bind(skinnable.selectedProperty());
|
||||||
root.setLeft(chkSelected);
|
root.setLeft(chkSelected);
|
||||||
|
|
||||||
HBox center = new HBox();
|
HBox center = new HBox();
|
||||||
center.setSpacing(8);
|
center.setSpacing(8);
|
||||||
center.setAlignment(Pos.CENTER_LEFT);
|
center.setAlignment(Pos.CENTER_LEFT);
|
||||||
|
|
||||||
StackPane imageViewContainer = new StackPane();
|
|
||||||
FXUtils.setLimitWidth(imageViewContainer, 32);
|
|
||||||
FXUtils.setLimitHeight(imageViewContainer, 32);
|
|
||||||
|
|
||||||
ImageView imageView = new ImageView();
|
ImageView imageView = new ImageView();
|
||||||
FXUtils.limitSize(imageView, 32, 32);
|
FXUtils.limitSize(imageView, 32, 32);
|
||||||
imageView.imageProperty().set(new Image("/assets/img/craft_table.png"));
|
imageView.imageProperty().set(new Image("/assets/img/craft_table.png"));
|
||||||
imageViewContainer.getChildren().setAll(imageView);
|
|
||||||
|
|
||||||
TwoLineListItem item = new TwoLineListItem();
|
TwoLineListItem item = new TwoLineListItem();
|
||||||
BorderPane.setAlignment(item, Pos.CENTER);
|
BorderPane.setAlignment(item, Pos.CENTER);
|
||||||
|
|||||||
Reference in New Issue
Block a user