Search in sources :

Example 11 with InputTextField

use of bisq.desktop.components.InputTextField in project bisq-desktop by bisq-network.

the class TakeOfferView method addAmountPriceFields.

private void addAmountPriceFields() {
    // amountBox
    Tuple3<HBox, InputTextField, Label> amountValueCurrencyBoxTuple = getAmountCurrencyBox(Res.get("takeOffer.amount.prompt"));
    HBox amountValueCurrencyBox = amountValueCurrencyBoxTuple.first;
    amountTextField = amountValueCurrencyBoxTuple.second;
    amountCurrency = amountValueCurrencyBoxTuple.third;
    Tuple2<Label, VBox> amountInputBoxTuple = getTradeInputBox(amountValueCurrencyBox, model.getAmountDescription());
    amountDescriptionLabel = amountInputBoxTuple.first;
    VBox amountBox = amountInputBoxTuple.second;
    // x
    Label xLabel = new AutoTooltipLabel("x");
    xLabel.setFont(Font.font("Helvetica-Bold", 20));
    xLabel.setPadding(new Insets(14, 3, 0, 3));
    // price
    Tuple3<HBox, TextField, Label> priceValueCurrencyBoxTuple = getNonEditableValueCurrencyBox();
    HBox priceValueCurrencyBox = priceValueCurrencyBoxTuple.first;
    priceTextField = priceValueCurrencyBoxTuple.second;
    priceCurrencyLabel = priceValueCurrencyBoxTuple.third;
    Tuple2<Label, VBox> priceInputBoxTuple = getTradeInputBox(priceValueCurrencyBox, Res.get("takeOffer.amountPriceBox.priceDescription"));
    priceDescriptionLabel = priceInputBoxTuple.first;
    VBox priceBox = priceInputBoxTuple.second;
    // =
    Label resultLabel = new AutoTooltipLabel("=");
    resultLabel.setFont(Font.font("Helvetica-Bold", 20));
    resultLabel.setPadding(new Insets(14, 2, 0, 2));
    // volume
    Tuple3<HBox, TextField, Label> volumeValueCurrencyBoxTuple = getNonEditableValueCurrencyBox();
    HBox volumeValueCurrencyBox = volumeValueCurrencyBoxTuple.first;
    volumeTextField = volumeValueCurrencyBoxTuple.second;
    volumeCurrencyLabel = volumeValueCurrencyBoxTuple.third;
    Tuple2<Label, VBox> volumeInputBoxTuple = getTradeInputBox(volumeValueCurrencyBox, model.volumeDescriptionLabel.get());
    volumeDescriptionLabel = volumeInputBoxTuple.first;
    VBox volumeBox = volumeInputBoxTuple.second;
    HBox hBox = new HBox();
    hBox.setSpacing(5);
    hBox.setAlignment(Pos.CENTER_LEFT);
    hBox.getChildren().addAll(amountBox, xLabel, priceBox, resultLabel, volumeBox);
    GridPane.setRowIndex(hBox, gridRow);
    GridPane.setColumnIndex(hBox, 1);
    GridPane.setMargin(hBox, new Insets(Layout.FIRST_ROW_AND_GROUP_DISTANCE, 10, 0, 0));
    GridPane.setColumnSpan(hBox, 2);
    gridPane.getChildren().add(hBox);
}
Also used : HBox(javafx.scene.layout.HBox) Insets(javafx.geometry.Insets) InputTextField(bisq.desktop.components.InputTextField) AutoTooltipLabel(bisq.desktop.components.AutoTooltipLabel) Label(javafx.scene.control.Label) BalanceTextField(bisq.desktop.components.BalanceTextField) InputTextField(bisq.desktop.components.InputTextField) TextField(javafx.scene.control.TextField) FundsTextField(bisq.desktop.components.FundsTextField) AddressTextField(bisq.desktop.components.AddressTextField) AutoTooltipLabel(bisq.desktop.components.AutoTooltipLabel) VBox(javafx.scene.layout.VBox)

Example 12 with InputTextField

use of bisq.desktop.components.InputTextField in project bisq-desktop by bisq-network.

the class EmptyWalletWindow method addContent.

private void addContent() {
    addMultilineLabel(gridPane, ++rowIndex, Res.get("emptyWalletWindow.info"), 10);
    Coin totalBalance = walletService.getAvailableBalance();
    balanceTextField = addLabelTextField(gridPane, ++rowIndex, Res.get("emptyWalletWindow.balance"), formatter.formatCoinWithCode(totalBalance), 10).second;
    Tuple2<Label, InputTextField> tuple = addLabelInputTextField(gridPane, ++rowIndex, Res.get("emptyWalletWindow.address"));
    addressInputTextField = tuple.second;
    emptyWalletButton = new AutoTooltipButton(Res.get("emptyWalletWindow.button"));
    boolean isBalanceSufficient = Restrictions.isAboveDust(totalBalance);
    emptyWalletButton.setDefaultButton(isBalanceSufficient);
    emptyWalletButton.setDisable(!isBalanceSufficient && addressInputTextField.getText().length() > 0);
    emptyWalletButton.setOnAction(e -> {
        if (addressInputTextField.getText().length() > 0 && isBalanceSufficient) {
            if (walletService.isEncrypted()) {
                walletPasswordWindow.onAesKey(this::doEmptyWallet).onClose(this::blurAgain).show();
            } else {
                doEmptyWallet(null);
            }
        }
    });
    closeButton = new AutoTooltipButton(Res.get("shared.cancel"));
    closeButton.setOnAction(e -> {
        hide();
        closeHandlerOptional.ifPresent(Runnable::run);
    });
    closeButton.setDefaultButton(!isBalanceSufficient);
    HBox hBox = new HBox();
    hBox.setSpacing(10);
    GridPane.setRowIndex(hBox, ++rowIndex);
    GridPane.setColumnIndex(hBox, 1);
    hBox.getChildren().addAll(emptyWalletButton, closeButton);
    gridPane.getChildren().add(hBox);
    GridPane.setMargin(hBox, new Insets(10, 0, 0, 0));
}
Also used : Coin(org.bitcoinj.core.Coin) HBox(javafx.scene.layout.HBox) Insets(javafx.geometry.Insets) FormBuilder.addLabelInputTextField(bisq.desktop.util.FormBuilder.addLabelInputTextField) InputTextField(bisq.desktop.components.InputTextField) Label(javafx.scene.control.Label) FormBuilder.addMultilineLabel(bisq.desktop.util.FormBuilder.addMultilineLabel) AutoTooltipButton(bisq.desktop.components.AutoTooltipButton)

Example 13 with InputTextField

use of bisq.desktop.components.InputTextField in project bisq-desktop by bisq-network.

the class FilterWindow method addContent.

private void addContent() {
    InputTextField keyInputTextField = addLabelInputTextField(gridPane, ++rowIndex, Res.get("shared.unlock"), 10).second;
    if (useDevPrivilegeKeys)
        keyInputTextField.setText(DevEnv.DEV_PRIVILEGE_PRIV_KEY);
    InputTextField offerIdsInputTextField = addLabelInputTextField(gridPane, ++rowIndex, Res.get("filterWindow.offers")).second;
    InputTextField nodesInputTextField = addLabelInputTextField(gridPane, ++rowIndex, Res.get("filterWindow.onions")).second;
    // Do not translate
    nodesInputTextField.setPromptText("E.g. zqnzx6o3nifef5df.onion:9999");
    InputTextField paymentAccountFilterInputTextField = addLabelInputTextField(gridPane, ++rowIndex, Res.get("filterWindow.accounts")).second;
    GridPane.setHalignment(paymentAccountFilterInputTextField, HPos.RIGHT);
    // Do not translate
    paymentAccountFilterInputTextField.setPromptText("E.g. PERFECT_MONEY|getAccountNr|12345");
    InputTextField bannedCurrenciesInputTextField = addLabelInputTextField(gridPane, ++rowIndex, Res.get("filterWindow.bannedCurrencies")).second;
    InputTextField bannedPaymentMethodsInputTextField = addLabelInputTextField(gridPane, ++rowIndex, Res.get("filterWindow.bannedPaymentMethods")).second;
    // Do not translate
    bannedPaymentMethodsInputTextField.setPromptText("E.g. PERFECT_MONEY");
    InputTextField arbitratorsInputTextField = addLabelInputTextField(gridPane, ++rowIndex, Res.get("filterWindow.arbitrators")).second;
    InputTextField seedNodesInputTextField = addLabelInputTextField(gridPane, ++rowIndex, Res.get("filterWindow.seedNode")).second;
    InputTextField priceRelayNodesInputTextField = addLabelInputTextField(gridPane, ++rowIndex, Res.get("filterWindow.priceRelayNode")).second;
    InputTextField btcNodesInputTextField = addLabelInputTextField(gridPane, ++rowIndex, Res.get("filterWindow.btcNode")).second;
    CheckBox preventPublicBtcNetworkCheckBox = addLabelCheckBox(gridPane, ++rowIndex, Res.get("filterWindow.preventPublicBtcNetwork")).second;
    final Filter filter = filterManager.getDevelopersFilter();
    if (filter != null) {
        offerIdsInputTextField.setText(filter.getBannedOfferIds().stream().collect(Collectors.joining(", ")));
        nodesInputTextField.setText(filter.getBannedNodeAddress().stream().collect(Collectors.joining(", ")));
        if (filter.getBannedPaymentAccounts() != null) {
            StringBuilder sb = new StringBuilder();
            filter.getBannedPaymentAccounts().stream().forEach(e -> {
                if (e != null && e.getPaymentMethodId() != null) {
                    sb.append(e.getPaymentMethodId()).append("|").append(e.getGetMethodName()).append("|").append(e.getValue()).append(", ");
                }
            });
            paymentAccountFilterInputTextField.setText(sb.toString());
        }
        if (filter.getBannedCurrencies() != null)
            bannedCurrenciesInputTextField.setText(filter.getBannedCurrencies().stream().collect(Collectors.joining(", ")));
        if (filter.getBannedPaymentMethods() != null)
            bannedPaymentMethodsInputTextField.setText(filter.getBannedPaymentMethods().stream().collect(Collectors.joining(", ")));
        if (filter.getArbitrators() != null)
            arbitratorsInputTextField.setText(filter.getArbitrators().stream().collect(Collectors.joining(", ")));
        if (filter.getSeedNodes() != null)
            seedNodesInputTextField.setText(filter.getSeedNodes().stream().collect(Collectors.joining(", ")));
        if (filter.getPriceRelayNodes() != null)
            priceRelayNodesInputTextField.setText(filter.getPriceRelayNodes().stream().collect(Collectors.joining(", ")));
        if (filter.getBtcNodes() != null)
            btcNodesInputTextField.setText(filter.getBtcNodes().stream().collect(Collectors.joining(", ")));
        preventPublicBtcNetworkCheckBox.setSelected(filter.isPreventPublicBtcNetwork());
    }
    Button sendButton = new AutoTooltipButton(Res.get("filterWindow.add"));
    sendButton.setOnAction(e -> {
        List<String> offerIds = new ArrayList<>();
        List<String> nodes = new ArrayList<>();
        List<PaymentAccountFilter> paymentAccountFilters = new ArrayList<>();
        List<String> bannedCurrencies = new ArrayList<>();
        List<String> bannedPaymentMethods = new ArrayList<>();
        List<String> arbitrators = new ArrayList<>();
        List<String> seedNodes = new ArrayList<>();
        List<String> priceRelayNodes = new ArrayList<>();
        List<String> btcNodes = new ArrayList<>();
        if (!offerIdsInputTextField.getText().isEmpty()) {
            offerIds = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(offerIdsInputTextField.getText()).split(",")));
        }
        if (!nodesInputTextField.getText().isEmpty()) {
            nodes = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(nodesInputTextField.getText()).replace(":9999", "").replace(".onion", "").split(",")));
        }
        if (!paymentAccountFilterInputTextField.getText().isEmpty()) {
            paymentAccountFilters = new ArrayList<>(Arrays.asList(paymentAccountFilterInputTextField.getText().replace(", ", ",").split(",")).stream().map(item -> {
                String[] list = item.split("\\|");
                if (list.length == 3)
                    return new PaymentAccountFilter(list[0], list[1], list[2]);
                else
                    return new PaymentAccountFilter("", "", "");
            }).collect(Collectors.toList()));
        }
        if (!bannedCurrenciesInputTextField.getText().isEmpty()) {
            bannedCurrencies = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(bannedCurrenciesInputTextField.getText()).split(",")));
        }
        if (!bannedPaymentMethodsInputTextField.getText().isEmpty()) {
            bannedPaymentMethods = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(bannedPaymentMethodsInputTextField.getText()).split(",")));
        }
        if (!arbitratorsInputTextField.getText().isEmpty()) {
            arbitrators = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(arbitratorsInputTextField.getText()).replace(":9999", "").replace(".onion", "").split(",")));
        }
        if (!seedNodesInputTextField.getText().isEmpty()) {
            seedNodes = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(seedNodesInputTextField.getText()).replace(":9999", "").replace(".onion", "").split(",")));
        }
        if (!priceRelayNodesInputTextField.getText().isEmpty()) {
            priceRelayNodes = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(priceRelayNodesInputTextField.getText()).replace(":9999", "").replace(".onion", "").split(",")));
        }
        if (!btcNodesInputTextField.getText().isEmpty()) {
            btcNodes = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(btcNodesInputTextField.getText()).split(",")));
        }
        if (sendFilterMessageHandler.handle(new Filter(offerIds, nodes, paymentAccountFilters, bannedCurrencies, bannedPaymentMethods, arbitrators, seedNodes, priceRelayNodes, preventPublicBtcNetworkCheckBox.isSelected(), btcNodes), keyInputTextField.getText()))
            hide();
        else
            new Popup<>().warning(Res.get("shared.invalidKey")).width(300).onClose(this::blurAgain).show();
    });
    Button removeFilterMessageButton = new AutoTooltipButton(Res.get("filterWindow.remove"));
    removeFilterMessageButton.setOnAction(e -> {
        if (keyInputTextField.getText().length() > 0) {
            if (removeFilterMessageHandler.handle(keyInputTextField.getText()))
                hide();
            else
                new Popup<>().warning(Res.get("shared.invalidKey")).width(300).onClose(this::blurAgain).show();
        }
    });
    closeButton = new AutoTooltipButton(Res.get("shared.close"));
    closeButton.setOnAction(e -> {
        hide();
        closeHandlerOptional.ifPresent(Runnable::run);
    });
    HBox hBox = new HBox();
    hBox.setSpacing(10);
    GridPane.setRowIndex(hBox, ++rowIndex);
    GridPane.setColumnIndex(hBox, 1);
    hBox.getChildren().addAll(sendButton, removeFilterMessageButton, closeButton);
    gridPane.getChildren().add(hBox);
    GridPane.setMargin(hBox, new Insets(10, 0, 0, 0));
}
Also used : Button(javafx.scene.control.Button) Scene(javafx.scene.Scene) KeyCode(javafx.scene.input.KeyCode) HBox(javafx.scene.layout.HBox) HPos(javafx.geometry.HPos) Popup(bisq.desktop.main.overlays.popups.Popup) Arrays(java.util.Arrays) PaymentAccountFilter(bisq.core.filter.PaymentAccountFilter) FilterManager(bisq.core.filter.FilterManager) CheckBox(javafx.scene.control.CheckBox) StringUtils(org.apache.commons.lang3.StringUtils) Collectors(java.util.stream.Collectors) FormBuilder.addLabelInputTextField(bisq.desktop.util.FormBuilder.addLabelInputTextField) ArrayList(java.util.ArrayList) List(java.util.List) Insets(javafx.geometry.Insets) InputTextField(bisq.desktop.components.InputTextField) DevEnv(bisq.common.app.DevEnv) Res(bisq.core.locale.Res) AutoTooltipButton(bisq.desktop.components.AutoTooltipButton) Overlay(bisq.desktop.main.overlays.Overlay) Filter(bisq.core.filter.Filter) FormBuilder.addLabelCheckBox(bisq.desktop.util.FormBuilder.addLabelCheckBox) GridPane(javafx.scene.layout.GridPane) HBox(javafx.scene.layout.HBox) Insets(javafx.geometry.Insets) FormBuilder.addLabelInputTextField(bisq.desktop.util.FormBuilder.addLabelInputTextField) InputTextField(bisq.desktop.components.InputTextField) ArrayList(java.util.ArrayList) AutoTooltipButton(bisq.desktop.components.AutoTooltipButton) PaymentAccountFilter(bisq.core.filter.PaymentAccountFilter) Filter(bisq.core.filter.Filter) Button(javafx.scene.control.Button) AutoTooltipButton(bisq.desktop.components.AutoTooltipButton) CheckBox(javafx.scene.control.CheckBox) FormBuilder.addLabelCheckBox(bisq.desktop.util.FormBuilder.addLabelCheckBox) PaymentAccountFilter(bisq.core.filter.PaymentAccountFilter)

Example 14 with InputTextField

use of bisq.desktop.components.InputTextField in project bisq-desktop by bisq-network.

the class ManualPayoutTxWindow method addContent.

private void addContent() {
    // We dont translate here as it is for dev only purpose
    InputTextField depositTxHex = addLabelInputTextField(gridPane, ++rowIndex, "depositTxHex:").second;
    InputTextField buyerPayoutAmount = addLabelInputTextField(gridPane, ++rowIndex, "buyerPayoutAmount:").second;
    InputTextField sellerPayoutAmount = addLabelInputTextField(gridPane, ++rowIndex, "sellerPayoutAmount:").second;
    InputTextField arbitratorPayoutAmount = addLabelInputTextField(gridPane, ++rowIndex, "arbitratorPayoutAmount:").second;
    InputTextField txFee = addLabelInputTextField(gridPane, ++rowIndex, "Tx fee:").second;
    InputTextField buyerAddressString = addLabelInputTextField(gridPane, ++rowIndex, "buyerAddressString:").second;
    InputTextField sellerAddressString = addLabelInputTextField(gridPane, ++rowIndex, "sellerAddressString:").second;
    InputTextField arbitratorAddressString = addLabelInputTextField(gridPane, ++rowIndex, "arbitratorAddressString:").second;
    InputTextField buyerPrivateKeyAsHex = addLabelInputTextField(gridPane, ++rowIndex, "buyerPrivateKeyAsHex:").second;
    InputTextField sellerPrivateKeyAsHex = addLabelInputTextField(gridPane, ++rowIndex, "sellerPrivateKeyAsHex:").second;
    InputTextField arbitratorPrivateKeyAsHex = addLabelInputTextField(gridPane, ++rowIndex, "arbitratorPrivateKeyAsHex:").second;
    InputTextField buyerPubKeyAsHex = addLabelInputTextField(gridPane, ++rowIndex, "buyerPubKeyAsHex:").second;
    InputTextField sellerPubKeyAsHex = addLabelInputTextField(gridPane, ++rowIndex, "sellerPubKeyAsHex:").second;
    InputTextField arbitratorPubKeyAsHex = addLabelInputTextField(gridPane, ++rowIndex, "arbitratorPubKeyAsHex:").second;
    InputTextField P2SHMultiSigOutputScript = addLabelInputTextField(gridPane, ++rowIndex, "P2SHMultiSigOutputScript:").second;
    // Notes:
    // Open with alt+g and enable DEV mode
    // Priv key is only visible if pw protection is removed (wallet details data (alt+j))
    // Take P2SHMultiSigOutputScript from depositTx in blockexplorer
    // Take missing buyerPubKeyAsHex and sellerPubKeyAsHex from contract data!
    // Lookup sellerPrivateKeyAsHex associated with sellerPubKeyAsHex (or buyers) in wallet details data
    // sellerPubKeys/buyerPubKeys are auto generated if used the fields below
    // Never set the priv arbitr. key here!
    depositTxHex.setText("");
    P2SHMultiSigOutputScript.setText("");
    buyerPayoutAmount.setText("");
    sellerPayoutAmount.setText("");
    arbitratorPayoutAmount.setText("0");
    buyerAddressString.setText("");
    buyerPubKeyAsHex.setText("");
    buyerPrivateKeyAsHex.setText("");
    sellerAddressString.setText("");
    sellerPubKeyAsHex.setText("");
    sellerPrivateKeyAsHex.setText("");
    arbitratorAddressString.setText("");
    arbitratorPubKeyAsHex.setText("");
    actionButtonText("Sign and publish transaction");
    FutureCallback<Transaction> callback = new FutureCallback<Transaction>() {

        @Override
        public void onSuccess(@Nullable Transaction result) {
            log.error("onSuccess");
            UserThread.execute(() -> {
                String txId = result != null ? result.getHashAsString() : "null";
                new Popup<>().information("Transaction successful published. Transaction ID: " + txId).show();
            });
        }

        @Override
        public void onFailure(@NotNull Throwable t) {
            log.error(t.toString());
            log.error("onFailure");
            UserThread.execute(() -> new Popup<>().warning(t.toString()).show());
        }
    };
    onAction(() -> {
        if (GUIUtil.isReadyForTxBroadcast(p2PService, walletsSetup)) {
            try {
                tradeWalletService.emergencySignAndPublishPayoutTx(depositTxHex.getText(), Coin.parseCoin(buyerPayoutAmount.getText()), Coin.parseCoin(sellerPayoutAmount.getText()), Coin.parseCoin(arbitratorPayoutAmount.getText()), Coin.parseCoin(txFee.getText()), buyerAddressString.getText(), sellerAddressString.getText(), arbitratorAddressString.getText(), buyerPrivateKeyAsHex.getText(), sellerPrivateKeyAsHex.getText(), arbitratorPrivateKeyAsHex.getText(), buyerPubKeyAsHex.getText(), sellerPubKeyAsHex.getText(), arbitratorPubKeyAsHex.getText(), P2SHMultiSigOutputScript.getText(), callback);
            } catch (AddressFormatException | WalletException | TransactionVerificationException e) {
                log.error(e.toString());
                e.printStackTrace();
                UserThread.execute(() -> new Popup<>().warning(e.toString()).show());
            }
        } else {
            GUIUtil.showNotReadyForTxBroadcastPopups(p2PService, walletsSetup);
        }
    });
}
Also used : WalletException(bisq.core.btc.exceptions.WalletException) AddressFormatException(org.bitcoinj.core.AddressFormatException) TransactionVerificationException(bisq.core.btc.exceptions.TransactionVerificationException) FormBuilder.addLabelInputTextField(bisq.desktop.util.FormBuilder.addLabelInputTextField) InputTextField(bisq.desktop.components.InputTextField) NotNull(org.jetbrains.annotations.NotNull) Transaction(org.bitcoinj.core.Transaction) Popup(bisq.desktop.main.overlays.popups.Popup) FutureCallback(com.google.common.util.concurrent.FutureCallback) Nullable(javax.annotation.Nullable)

Example 15 with InputTextField

use of bisq.desktop.components.InputTextField in project bisq-desktop by bisq-network.

the class SendAlertMessageWindow method addContent.

private void addContent() {
    InputTextField keyInputTextField = addLabelInputTextField(gridPane, ++rowIndex, Res.get("shared.unlock"), 10).second;
    if (useDevPrivilegeKeys)
        keyInputTextField.setText(DevEnv.DEV_PRIVILEGE_PRIV_KEY);
    Tuple2<Label, TextArea> labelTextAreaTuple2 = addLabelTextArea(gridPane, ++rowIndex, Res.get("sendAlertMessageWindow.alertMsg"), Res.get("sendAlertMessageWindow.enterMsg"));
    TextArea alertMessageTextArea = labelTextAreaTuple2.second;
    Label first = labelTextAreaTuple2.first;
    first.setMinWidth(150);
    CheckBox isUpdateCheckBox = addLabelCheckBox(gridPane, ++rowIndex, Res.get("sendAlertMessageWindow.isUpdate"), "").second;
    isUpdateCheckBox.setSelected(true);
    InputTextField versionInputTextField = addLabelInputTextField(gridPane, ++rowIndex, Res.get("sendAlertMessageWindow.version")).second;
    versionInputTextField.disableProperty().bind(isUpdateCheckBox.selectedProperty().not());
    Button sendButton = new AutoTooltipButton(Res.get("sendAlertMessageWindow.send"));
    sendButton.setOnAction(e -> {
        final String version = versionInputTextField.getText();
        boolean versionOK = false;
        final boolean isUpdate = isUpdateCheckBox.isSelected();
        if (isUpdate) {
            final String[] split = version.split("\\.");
            versionOK = split.length == 3;
            if (// Do not translate as only used by devs
            !versionOK)
                new Popup<>().warning("Version number must be in semantic version format (contain 2 '.'). version=" + version).onClose(this::blurAgain).show();
        }
        if (!isUpdate || versionOK) {
            if (alertMessageTextArea.getText().length() > 0 && keyInputTextField.getText().length() > 0) {
                if (sendAlertMessageHandler.handle(new Alert(alertMessageTextArea.getText(), isUpdate, version), keyInputTextField.getText()))
                    hide();
                else
                    new Popup<>().warning(Res.get("shared.invalidKey")).width(300).onClose(this::blurAgain).show();
            }
        }
    });
    Button removeAlertMessageButton = new AutoTooltipButton(Res.get("sendAlertMessageWindow.remove"));
    removeAlertMessageButton.setOnAction(e -> {
        if (keyInputTextField.getText().length() > 0) {
            if (removeAlertMessageHandler.handle(keyInputTextField.getText()))
                hide();
            else
                new Popup<>().warning(Res.get("shared.invalidKey")).width(300).onClose(this::blurAgain).show();
        }
    });
    closeButton = new AutoTooltipButton(Res.get("shared.close"));
    closeButton.setOnAction(e -> {
        hide();
        closeHandlerOptional.ifPresent(Runnable::run);
    });
    HBox hBox = new HBox();
    hBox.setSpacing(10);
    GridPane.setRowIndex(hBox, ++rowIndex);
    GridPane.setColumnIndex(hBox, 1);
    hBox.getChildren().addAll(sendButton, removeAlertMessageButton, closeButton);
    gridPane.getChildren().add(hBox);
    GridPane.setMargin(hBox, new Insets(10, 0, 0, 0));
}
Also used : HBox(javafx.scene.layout.HBox) Insets(javafx.geometry.Insets) TextArea(javafx.scene.control.TextArea) FormBuilder.addLabelTextArea(bisq.desktop.util.FormBuilder.addLabelTextArea) FormBuilder.addLabelInputTextField(bisq.desktop.util.FormBuilder.addLabelInputTextField) InputTextField(bisq.desktop.components.InputTextField) Label(javafx.scene.control.Label) AutoTooltipButton(bisq.desktop.components.AutoTooltipButton) Button(javafx.scene.control.Button) AutoTooltipButton(bisq.desktop.components.AutoTooltipButton) CheckBox(javafx.scene.control.CheckBox) FormBuilder.addLabelCheckBox(bisq.desktop.util.FormBuilder.addLabelCheckBox) Popup(bisq.desktop.main.overlays.popups.Popup) Alert(bisq.core.alert.Alert)

Aggregations

InputTextField (bisq.desktop.components.InputTextField)35 Label (javafx.scene.control.Label)23 HBox (javafx.scene.layout.HBox)19 AutoTooltipLabel (bisq.desktop.components.AutoTooltipLabel)17 Insets (javafx.geometry.Insets)15 TradeCurrency (bisq.core.locale.TradeCurrency)11 InfoInputTextField (bisq.desktop.components.InfoInputTextField)11 FormBuilder.addLabelInputTextField (bisq.desktop.util.FormBuilder.addLabelInputTextField)11 Popup (bisq.desktop.main.overlays.popups.Popup)8 Tuple3 (bisq.common.util.Tuple3)6 AutoTooltipButton (bisq.desktop.components.AutoTooltipButton)6 Button (javafx.scene.control.Button)5 TextField (javafx.scene.control.TextField)5 CheckBox (javafx.scene.control.CheckBox)4 Country (bisq.core.locale.Country)3 AddressTextField (bisq.desktop.components.AddressTextField)3 VBox (javafx.scene.layout.VBox)3 BalanceTextField (bisq.desktop.components.BalanceTextField)2 FundsTextField (bisq.desktop.components.FundsTextField)2 TitledGroupBg (bisq.desktop.components.TitledGroupBg)2