Search in sources :

Example 1 with AddressTextField

use of io.bitsquare.gui.components.AddressTextField in project bitsquare by bitsquare.

the class DepositView method initialize.

@Override
public void initialize() {
    // trigger creation of at least 1 savings address
    walletService.getOrCreateAddressEntry(AddressEntry.Context.AVAILABLE);
    tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
    tableView.setPlaceholder(new Label("No deposit addresses have been generated yet"));
    tableViewSelectionListener = (observableValue, oldValue, newValue) -> {
        if (newValue != null)
            fillForm(newValue.getAddressString());
    };
    setSelectColumnCellFactory();
    setAddressColumnCellFactory();
    setBalanceColumnCellFactory();
    setUsageColumnCellFactory();
    setConfidenceColumnCellFactory();
    addressColumn.setComparator((o1, o2) -> o1.getAddressString().compareTo(o2.getAddressString()));
    balanceColumn.setComparator((o1, o2) -> o1.getBalanceAsCoin().compareTo(o2.getBalanceAsCoin()));
    confidenceColumn.setComparator((o1, o2) -> Double.valueOf(o1.getTxConfidenceIndicator().getProgress()).compareTo(o2.getTxConfidenceIndicator().getProgress()));
    usageColumn.setComparator((a, b) -> (a.getNumTxOutputs() < b.getNumTxOutputs()) ? -1 : ((a.getNumTxOutputs() == b.getNumTxOutputs()) ? 0 : 1));
    tableView.getSortOrder().add(usageColumn);
    tableView.setItems(sortedList);
    titledGroupBg = addTitledGroupBg(gridPane, gridRow, 3, "Fund your wallet");
    qrCodeLabel = addLabel(gridPane, gridRow, "", 0);
    //GridPane.setMargin(qrCodeLabel, new Insets(Layout.FIRST_ROW_DISTANCE - 9, 0, 0, 5));
    qrCodeImageView = new ImageView();
    qrCodeImageView.setStyle("-fx-cursor: hand;");
    Tooltip.install(qrCodeImageView, new Tooltip("Open large QR-Code window"));
    qrCodeImageView.setOnMouseClicked(e -> GUIUtil.showFeeInfoBeforeExecute(() -> UserThread.runAfter(() -> new QRCodeWindow(getBitcoinURI()).show(), 200, TimeUnit.MILLISECONDS)));
    GridPane.setRowIndex(qrCodeImageView, gridRow);
    GridPane.setColumnIndex(qrCodeImageView, 1);
    GridPane.setMargin(qrCodeImageView, new Insets(Layout.FIRST_ROW_DISTANCE, 0, 0, 0));
    gridPane.getChildren().add(qrCodeImageView);
    Tuple2<Label, AddressTextField> addressTuple = addLabelAddressTextField(gridPane, ++gridRow, "Address:");
    addressLabel = addressTuple.first;
    //GridPane.setValignment(addressLabel, VPos.TOP);
    //GridPane.setMargin(addressLabel, new Insets(3, 0, 0, 0));
    addressTextField = addressTuple.second;
    addressTextField.setPaymentLabel(paymentLabelString);
    Tuple2<Label, InputTextField> amountTuple = addLabelInputTextField(gridPane, ++gridRow, "Amount in BTC (optional):");
    amountLabel = amountTuple.first;
    amountTextField = amountTuple.second;
    if (DevFlags.DEV_MODE)
        amountTextField.setText("10");
    titledGroupBg.setVisible(false);
    titledGroupBg.setManaged(false);
    qrCodeLabel.setVisible(false);
    qrCodeLabel.setManaged(false);
    qrCodeImageView.setVisible(false);
    qrCodeImageView.setManaged(false);
    addressLabel.setVisible(false);
    addressLabel.setManaged(false);
    addressTextField.setVisible(false);
    addressTextField.setManaged(false);
    amountLabel.setVisible(false);
    amountTextField.setManaged(false);
    generateNewAddressButton = addButton(gridPane, ++gridRow, "Generate new address", -20);
    GridPane.setColumnIndex(generateNewAddressButton, 0);
    GridPane.setHalignment(generateNewAddressButton, HPos.LEFT);
    generateNewAddressButton.setOnAction(event -> {
        boolean hasUnUsedAddress = observableList.stream().filter(e -> e.getNumTxOutputs() == 0).findAny().isPresent();
        if (hasUnUsedAddress) {
            new Popup().warning("Please select an unused address from the table above rather than generating a new one.").show();
        } else {
            AddressEntry newSavingsAddressEntry = walletService.getOrCreateUnusedAddressEntry(AddressEntry.Context.AVAILABLE);
            updateList();
            observableList.stream().filter(depositListItem -> depositListItem.getAddressString().equals(newSavingsAddressEntry.getAddressString())).findAny().ifPresent(depositListItem -> tableView.getSelectionModel().select(depositListItem));
        }
    });
    balanceListener = new BalanceListener() {

        @Override
        public void onBalanceChanged(Coin balance, Transaction tx) {
            updateList();
        }
    };
}
Also used : Insets(javafx.geometry.Insets) BalanceListener(io.bitsquare.btc.listeners.BalanceListener) AddressEntry(io.bitsquare.btc.AddressEntry) AddressTextField(io.bitsquare.gui.components.AddressTextField) InputTextField(io.bitsquare.gui.components.InputTextField) QRCodeWindow(io.bitsquare.gui.main.overlays.windows.QRCodeWindow) Coin(org.bitcoinj.core.Coin) Transaction(org.bitcoinj.core.Transaction) Popup(io.bitsquare.gui.main.overlays.popups.Popup) ImageView(javafx.scene.image.ImageView)

Aggregations

AddressEntry (io.bitsquare.btc.AddressEntry)1 BalanceListener (io.bitsquare.btc.listeners.BalanceListener)1 AddressTextField (io.bitsquare.gui.components.AddressTextField)1 InputTextField (io.bitsquare.gui.components.InputTextField)1 Popup (io.bitsquare.gui.main.overlays.popups.Popup)1 QRCodeWindow (io.bitsquare.gui.main.overlays.windows.QRCodeWindow)1 Insets (javafx.geometry.Insets)1 ImageView (javafx.scene.image.ImageView)1 Coin (org.bitcoinj.core.Coin)1 Transaction (org.bitcoinj.core.Transaction)1