diff --git a/gui/src/main/java/io/bisq/gui/components/AutoTooltipRadioButton.java b/gui/src/main/java/io/bisq/gui/components/AutoTooltipRadioButton.java new file mode 100644 index 0000000000..e42361d268 --- /dev/null +++ b/gui/src/main/java/io/bisq/gui/components/AutoTooltipRadioButton.java @@ -0,0 +1,35 @@ +package io.bisq.gui.components; + +import com.sun.javafx.scene.control.skin.RadioButtonSkin; +import javafx.scene.control.RadioButton; +import javafx.scene.control.Skin; + +import static io.bisq.gui.components.TooltipUtil.showTooltipIfTruncated; + +public class AutoTooltipRadioButton extends RadioButton { + + public AutoTooltipRadioButton() { + super(); + } + + public AutoTooltipRadioButton(String text) { + super(text); + } + + @Override + protected Skin createDefaultSkin() { + return new AutoTooltipRadioButtonSkin(this); + } + + private class AutoTooltipRadioButtonSkin extends RadioButtonSkin { + public AutoTooltipRadioButtonSkin(RadioButton radioButton) { + super(radioButton); + } + + @Override + protected void layoutChildren(double x, double y, double w, double h) { + super.layoutChildren(x, y, w, h); + showTooltipIfTruncated(this, getSkinnable()); + } + } +} diff --git a/gui/src/main/java/io/bisq/gui/main/funds/withdrawal/WithdrawalView.fxml b/gui/src/main/java/io/bisq/gui/main/funds/withdrawal/WithdrawalView.fxml index b7fb2bd3be..992979aa13 100644 --- a/gui/src/main/java/io/bisq/gui/main/funds/withdrawal/WithdrawalView.fxml +++ b/gui/src/main/java/io/bisq/gui/main/funds/withdrawal/WithdrawalView.fxml @@ -21,6 +21,7 @@ + @@ -41,22 +42,22 @@ - + - - + + - + - - + + { Label distributionLabel = addLabel(gridPane, ++rowIndex, Res.get("disputeSummaryWindow.payout"), 10); GridPane.setValignment(distributionLabel, VPos.TOP); - buyerGetsTradeAmountRadioButton = new RadioButton(Res.get("disputeSummaryWindow.payout.getsTradeAmount", + buyerGetsTradeAmountRadioButton = new AutoTooltipRadioButton(Res.get("disputeSummaryWindow.payout.getsTradeAmount", Res.get("shared.buyer"))); - buyerGetsAllRadioButton = new RadioButton(Res.get("disputeSummaryWindow.payout.getsAll", + buyerGetsAllRadioButton = new AutoTooltipRadioButton(Res.get("disputeSummaryWindow.payout.getsAll", Res.get("shared.buyer"))); - sellerGetsTradeAmountRadioButton = new RadioButton(Res.get("disputeSummaryWindow.payout.getsTradeAmount", + sellerGetsTradeAmountRadioButton = new AutoTooltipRadioButton(Res.get("disputeSummaryWindow.payout.getsTradeAmount", Res.get("shared.seller"))); - sellerGetsAllRadioButton = new RadioButton(Res.get("disputeSummaryWindow.payout.getsAll", + sellerGetsAllRadioButton = new AutoTooltipRadioButton(Res.get("disputeSummaryWindow.payout.getsAll", Res.get("shared.seller"))); - customRadioButton = new RadioButton(Res.get("disputeSummaryWindow.payout.custom")); + customRadioButton = new AutoTooltipRadioButton(Res.get("disputeSummaryWindow.payout.custom")); VBox radioButtonPane = new VBox(); radioButtonPane.setSpacing(10); radioButtonPane.getChildren().addAll(buyerGetsTradeAmountRadioButton, buyerGetsAllRadioButton, @@ -392,13 +393,13 @@ public class DisputeSummaryWindow extends Overlay { private void addReasonControls() { Label label = addLabel(gridPane, ++rowIndex, Res.get("disputeSummaryWindow.reason"), 10); GridPane.setValignment(label, VPos.TOP); - reasonWasBugRadioButton = new RadioButton(Res.get("disputeSummaryWindow.reason.bug")); - reasonWasUsabilityIssueRadioButton = new RadioButton(Res.get("disputeSummaryWindow.reason.usability")); - reasonProtocolViolationRadioButton = new RadioButton(Res.get("disputeSummaryWindow.reason.protocolViolation")); - reasonNoReplyRadioButton = new RadioButton(Res.get("disputeSummaryWindow.reason.noReply")); - reasonWasScamRadioButton = new RadioButton(Res.get("disputeSummaryWindow.reason.scam")); - reasonWasBankRadioButton = new RadioButton(Res.get("disputeSummaryWindow.reason.bank")); - reasonWasOtherRadioButton = new RadioButton(Res.get("disputeSummaryWindow.reason.other")); + reasonWasBugRadioButton = new AutoTooltipRadioButton(Res.get("disputeSummaryWindow.reason.bug")); + reasonWasUsabilityIssueRadioButton = new AutoTooltipRadioButton(Res.get("disputeSummaryWindow.reason.usability")); + reasonProtocolViolationRadioButton = new AutoTooltipRadioButton(Res.get("disputeSummaryWindow.reason.protocolViolation")); + reasonNoReplyRadioButton = new AutoTooltipRadioButton(Res.get("disputeSummaryWindow.reason.noReply")); + reasonWasScamRadioButton = new AutoTooltipRadioButton(Res.get("disputeSummaryWindow.reason.scam")); + reasonWasBankRadioButton = new AutoTooltipRadioButton(Res.get("disputeSummaryWindow.reason.bank")); + reasonWasOtherRadioButton = new AutoTooltipRadioButton(Res.get("disputeSummaryWindow.reason.other")); HBox feeRadioButtonPane = new HBox(); feeRadioButtonPane.setSpacing(20); diff --git a/gui/src/main/java/io/bisq/gui/main/settings/network/NetworkSettingsView.fxml b/gui/src/main/java/io/bisq/gui/main/settings/network/NetworkSettingsView.fxml index ca9e53d093..1eabe705e6 100644 --- a/gui/src/main/java/io/bisq/gui/main/settings/network/NetworkSettingsView.fxml +++ b/gui/src/main/java/io/bisq/gui/main/settings/network/NetworkSettingsView.fxml @@ -45,9 +45,9 @@ - - - + + + diff --git a/gui/src/main/java/io/bisq/gui/util/FormBuilder.java b/gui/src/main/java/io/bisq/gui/util/FormBuilder.java index 4f8125f891..657206075d 100644 --- a/gui/src/main/java/io/bisq/gui/util/FormBuilder.java +++ b/gui/src/main/java/io/bisq/gui/util/FormBuilder.java @@ -489,7 +489,7 @@ public class FormBuilder { /////////////////////////////////////////////////////////////////////////////////////////// public static RadioButton addRadioButton(GridPane gridPane, int rowIndex, ToggleGroup toggleGroup, String title) { - RadioButton radioButton = new RadioButton(title); + RadioButton radioButton = new AutoTooltipRadioButton(title); radioButton.setToggleGroup(toggleGroup); GridPane.setRowIndex(radioButton, rowIndex); GridPane.setColumnIndex(radioButton, 1); @@ -505,7 +505,7 @@ public class FormBuilder { radioButtonTitle) { Label label = addLabel(gridPane, rowIndex, title, 0); - RadioButton radioButton = new RadioButton(radioButtonTitle); + RadioButton radioButton = new AutoTooltipRadioButton(radioButtonTitle); radioButton.setToggleGroup(toggleGroup); radioButton.setPadding(new Insets(6, 0, 0, 0)); GridPane.setRowIndex(radioButton, rowIndex); @@ -528,11 +528,11 @@ public class FormBuilder { String radioButtonTitle2) { Label label = addLabel(gridPane, rowIndex, title, 0); - RadioButton radioButton1 = new RadioButton(radioButtonTitle1); + RadioButton radioButton1 = new AutoTooltipRadioButton(radioButtonTitle1); radioButton1.setToggleGroup(toggleGroup); radioButton1.setPadding(new Insets(6, 0, 0, 0)); - RadioButton radioButton2 = new RadioButton(radioButtonTitle2); + RadioButton radioButton2 = new AutoTooltipRadioButton(radioButtonTitle2); radioButton2.setToggleGroup(toggleGroup); radioButton2.setPadding(new Insets(6, 0, 0, 0));