Add more context to buy BSQ button

This commit is contained in:
Christoph Atteneder 2021-10-06 12:16:12 +02:00
parent 9e2be92787
commit 5527208894
No known key found for this signature in database
GPG key ID: CD5DC1C529CDFD3B
3 changed files with 40 additions and 20 deletions

View file

@ -41,11 +41,15 @@ public class HyperlinkWithIcon extends Hyperlink {
this(text, AwesomeIcon.INFO_SIGN);
}
public HyperlinkWithIcon(String text, AwesomeIcon awesomeIcon) {
public HyperlinkWithIcon(String text, String fontSize) {
this(text, AwesomeIcon.INFO_SIGN, fontSize);
}
public HyperlinkWithIcon(String text, AwesomeIcon awesomeIcon, String fontSize) {
super(text);
Label icon = new Label();
AwesomeDude.setIcon(icon, awesomeIcon);
AwesomeDude.setIcon(icon, awesomeIcon, fontSize);
icon.setMinWidth(20);
icon.setOpacity(0.7);
icon.getStyleClass().addAll("hyperlink", "no-underline");
@ -55,6 +59,10 @@ public class HyperlinkWithIcon extends Hyperlink {
setIcon(icon);
}
public HyperlinkWithIcon(String text, AwesomeIcon awesomeIcon) {
this(text, awesomeIcon, "1.231em");
}
public HyperlinkWithIcon(String text, GlyphIcons icon) {
this(text, icon, null);
}

View file

@ -137,7 +137,7 @@ public abstract class MutableOfferView<M extends MutableOfferViewModel<?>> exten
private TitledGroupBg payFundsTitledGroupBg, setDepositTitledGroupBg, paymentTitledGroupBg;
protected TitledGroupBg amountTitledGroupBg;
private BusyAnimation waitingForFundsSpinner;
private AutoTooltipButton nextButton, cancelButton1, cancelButton2, placeOfferButton, buyBsqButton;
private AutoTooltipButton nextButton, cancelButton1, cancelButton2, placeOfferButton;
private Button priceTypeToggleButton;
private InputTextField fixedPriceTextField, marketBasedPriceTextField, triggerPriceInputTextField;
protected InputTextField amountTextField, minAmountTextField, volumeTextField, buyerSecurityDepositInputTextField;
@ -153,7 +153,7 @@ public abstract class MutableOfferView<M extends MutableOfferViewModel<?>> exten
private ComboBox<PaymentAccount> paymentAccountsComboBox;
private ComboBox<TradeCurrency> currencyComboBox;
private ImageView qrCodeImageView;
private VBox currencySelection, fixedPriceBox, percentagePriceBox, currencyTextFieldBox, triggerPriceVBox;
private VBox currencySelection, fixedPriceBox, percentagePriceBox, currencyTextFieldBox, triggerPriceVBox, buyBsqBox;
private HBox fundingHBox, firstRowHBox, secondRowHBox, placeOfferBox, amountValueCurrencyBox,
priceAsPercentageValueCurrencyBox, volumeValueCurrencyBox, priceValueCurrencyBox,
minAmountValueCurrencyBox, advancedOptionsBox, triggerPriceHBox;
@ -270,8 +270,8 @@ public abstract class MutableOfferView<M extends MutableOfferViewModel<?>> exten
tradeFeeInBtcToggle.setManaged(false);
tradeFeeInBsqToggle.setVisible(false);
tradeFeeInBsqToggle.setManaged(false);
buyBsqButton.setVisible(false);
buyBsqButton.setManaged(false);
buyBsqBox.setVisible(false);
buyBsqBox.setManaged(false);
}
Label popOverLabel = OfferViewUtil.createPopOverLabel(Res.get("createOffer.triggerPrice.tooltip"));
@ -405,9 +405,8 @@ public abstract class MutableOfferView<M extends MutableOfferViewModel<?>> exten
cancelButton1.setVisible(false);
cancelButton1.setManaged(false);
cancelButton1.setOnAction(null);
buyBsqButton.setVisible(false);
buyBsqButton.setManaged(false);
buyBsqButton.setOnAction(null);
buyBsqBox.setVisible(false);
buyBsqBox.setManaged(false);
tradeFeeInBtcToggle.setMouseTransparent(true);
tradeFeeInBsqToggle.setMouseTransparent(true);
@ -896,7 +895,7 @@ public abstract class MutableOfferView<M extends MutableOfferViewModel<?>> exten
tradeFeeInBtcToggle.setVisible(newValue);
tradeFeeInBsqToggle.setVisible(newValue);
if (model.isShowBuyBsqHint()) {
buyBsqButton.setVisible(newValue);
buyBsqBox.setVisible(newValue);
}
}
};
@ -1102,10 +1101,10 @@ public abstract class MutableOfferView<M extends MutableOfferViewModel<?>> exten
Tuple2<AutoTooltipButton, VBox> buyBsqButtonBox = OfferViewUtil.createBuyBsqButtonBox(
navigation, preferences);
buyBsqButton = buyBsqButtonBox.first;
buyBsqButton.setVisible(false);
buyBsqBox = buyBsqButtonBox.second;
buyBsqBox.setVisible(false);
advancedOptionsBox.getChildren().addAll(getBuyerSecurityDepositBox(), getTradeFeeFieldsBox(), buyBsqButtonBox.second);
advancedOptionsBox.getChildren().addAll(getBuyerSecurityDepositBox(), getTradeFeeFieldsBox(), buyBsqBox);
Tuple2<Button, Button> tuple = add2ButtonsAfterGroup(gridPane, ++gridRow,
Res.get("shared.nextStep"), Res.get("shared.cancel"));

View file

@ -20,6 +20,7 @@ package bisq.desktop.main.offer.bisq_v1;
import bisq.desktop.Navigation;
import bisq.desktop.components.AutoTooltipButton;
import bisq.desktop.components.AutoTooltipLabel;
import bisq.desktop.components.HyperlinkWithIcon;
import bisq.desktop.main.MainView;
import bisq.desktop.main.offer.offerbook.OfferBookView;
import bisq.desktop.main.overlays.popups.Popup;
@ -33,6 +34,7 @@ import bisq.common.util.Tuple2;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.geometry.HPos;
@ -88,21 +90,32 @@ public class OfferViewUtil {
var buyBsqButton = new AutoTooltipButton(buyBsqText);
buyBsqButton.getStyleClass().add("action-button");
buyBsqButton.getStyleClass().add("tiny-button");
buyBsqButton.setOnAction(e -> new Popup().headLine(buyBsqText)
buyBsqButton.setOnAction(e -> openBuyBsqOfferBook(navigation, preferences)
);
var info = new AutoTooltipLabel("BSQ is colored BTC that helps fund Bisq developers.");
var learnMore = new HyperlinkWithIcon("Learn More");
learnMore.setOnAction(e -> new Popup().headLine(buyBsqText)
.information(Res.get("createOffer.buyBsq.popupMessage"))
.actionButtonText(buyBsqText)
.buttonAlignment(HPos.CENTER)
.onAction(() -> {
preferences.setSellScreenCurrencyCode("BSQ");
navigation.navigateTo(
MainView.class, SellOfferView.class, OfferBookView.class);
}).show());
.onAction(() -> openBuyBsqOfferBook(navigation, preferences)).show());
final VBox buyBsqButtonVBox = new VBox(buyBsqButton);
final HBox buyBsqBox = new HBox(buyBsqButton, info, learnMore);
buyBsqBox.setAlignment(Pos.BOTTOM_LEFT);
buyBsqBox.setSpacing(10);
final VBox buyBsqButtonVBox = new VBox(buyBsqBox);
buyBsqButtonVBox.setAlignment(Pos.BOTTOM_LEFT);
buyBsqButtonVBox.setPadding(new Insets(0, 0, 0, -20));
VBox.setMargin(buyBsqButton, new Insets(0, 0, 4, 0));
return new Tuple2<>(buyBsqButton, buyBsqButtonVBox);
}
private static void openBuyBsqOfferBook(Navigation navigation, Preferences preferences) {
preferences.setSellScreenCurrencyCode("BSQ");
navigation.navigateTo(
MainView.class, SellOfferView.class, OfferBookView.class);
}
}