mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 23:18:17 +01:00
Cleanup
This commit is contained in:
parent
565c44d94c
commit
cc46a81644
12 changed files with 77 additions and 194 deletions
|
@ -1,35 +0,0 @@
|
|||
package io.bitsquare.trade;
|
||||
|
||||
import io.bitsquare.btc.AddressEntry;
|
||||
import io.bitsquare.btc.WalletService;
|
||||
import org.bitcoinj.core.Coin;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class TradableHelper {
|
||||
private static final Logger log = LoggerFactory.getLogger(TradableHelper.class);
|
||||
|
||||
public static Stream<AddressEntry> getAddressEntriesForAvailableBalanceStream(WalletService walletService) {
|
||||
Stream<AddressEntry> availableOrPayout = Stream.concat(walletService.getAddressEntries(AddressEntry.Context.TRADE_PAYOUT).stream(), walletService.getFundedAvailableAddressEntries().stream());
|
||||
Stream<AddressEntry> available = Stream.concat(availableOrPayout, walletService.getAddressEntries(AddressEntry.Context.ARBITRATOR).stream());
|
||||
available = Stream.concat(available, walletService.getAddressEntries(AddressEntry.Context.OFFER_FUNDING).stream());
|
||||
return available
|
||||
.filter(addressEntry -> walletService.getBalanceForAddress(addressEntry.getAddress()).isPositive());
|
||||
}
|
||||
|
||||
public static Stream<Trade> getLockedTradeStream(TradeManager tradeManager) {
|
||||
return tradeManager.getTrades().stream()
|
||||
.filter(trade -> trade.getState().getPhase().ordinal() >= Trade.Phase.DEPOSIT_PAID.ordinal() &&
|
||||
trade.getState().getPhase().ordinal() < Trade.Phase.PAYOUT_PAID.ordinal());
|
||||
}
|
||||
|
||||
public static AddressEntry getLockedTradeAddressEntry(Trade trade, WalletService walletService) {
|
||||
return walletService.getOrCreateAddressEntry(trade.getId(), AddressEntry.Context.MULTI_SIG);
|
||||
}
|
||||
|
||||
public static Coin getReservedBalance(Tradable tradable, WalletService walletService) {
|
||||
return walletService.getBalanceForAddress(walletService.getOrCreateAddressEntry(tradable.getId(), AddressEntry.Context.RESERVED_FOR_TRADE).getAddress());
|
||||
}
|
||||
}
|
|
@ -61,6 +61,7 @@ import javax.inject.Inject;
|
|||
import javax.inject.Named;
|
||||
import java.io.File;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static io.bitsquare.util.Validator.nonEmptyStringOf;
|
||||
|
||||
|
@ -396,4 +397,18 @@ public class TradeManager {
|
|||
public Optional<Trade> getTradeById(String tradeId) {
|
||||
return trades.stream().filter(e -> e.getId().equals(tradeId)).findFirst();
|
||||
}
|
||||
|
||||
public Stream<AddressEntry> getAddressEntriesForAvailableBalanceStream() {
|
||||
Stream<AddressEntry> availableOrPayout = Stream.concat(walletService.getAddressEntries(AddressEntry.Context.TRADE_PAYOUT).stream(), walletService.getFundedAvailableAddressEntries().stream());
|
||||
Stream<AddressEntry> available = Stream.concat(availableOrPayout, walletService.getAddressEntries(AddressEntry.Context.ARBITRATOR).stream());
|
||||
available = Stream.concat(available, walletService.getAddressEntries(AddressEntry.Context.OFFER_FUNDING).stream());
|
||||
return available
|
||||
.filter(addressEntry -> walletService.getBalanceForAddress(addressEntry.getAddress()).isPositive());
|
||||
}
|
||||
|
||||
public Stream<Trade> getLockedTradeStream() {
|
||||
return getTrades().stream()
|
||||
.filter(trade -> trade.getState().getPhase().ordinal() >= Trade.Phase.DEPOSIT_PAID.ordinal() &&
|
||||
trade.getState().getPhase().ordinal() < Trade.Phase.PAYOUT_PAID.ordinal());
|
||||
}
|
||||
}
|
|
@ -21,16 +21,11 @@ public class AddressWithIconAndDirection extends AnchorPane {
|
|||
private final Label directionIcon;
|
||||
private final Label label;
|
||||
|
||||
public AddressWithIconAndDirection(String text, String address, AwesomeIcon awesomeIcon, boolean received, boolean isInternal) {
|
||||
public AddressWithIconAndDirection(String text, String address, AwesomeIcon awesomeIcon, boolean received) {
|
||||
directionIcon = new Label();
|
||||
directionIcon.setLayoutY(3);
|
||||
if (isInternal) {
|
||||
directionIcon.getStyleClass().add("internal-funds-icon");
|
||||
AwesomeDude.setIcon(directionIcon, AwesomeIcon.REPEAT);
|
||||
} else {
|
||||
directionIcon.getStyleClass().add(received ? "received-funds-icon" : "sent-funds-icon");
|
||||
AwesomeDude.setIcon(directionIcon, received ? AwesomeIcon.SIGNIN : AwesomeIcon.SIGNOUT);
|
||||
}
|
||||
directionIcon.getStyleClass().add(received ? "received-funds-icon" : "sent-funds-icon");
|
||||
AwesomeDude.setIcon(directionIcon, received ? AwesomeIcon.SIGNIN : AwesomeIcon.SIGNOUT);
|
||||
directionIcon.setMouseTransparent(true);
|
||||
|
||||
HBox hBox = new HBox();
|
||||
|
|
|
@ -26,6 +26,7 @@ import io.bitsquare.app.Version;
|
|||
import io.bitsquare.arbitration.ArbitratorManager;
|
||||
import io.bitsquare.arbitration.Dispute;
|
||||
import io.bitsquare.arbitration.DisputeManager;
|
||||
import io.bitsquare.btc.AddressEntry;
|
||||
import io.bitsquare.btc.TradeWalletService;
|
||||
import io.bitsquare.btc.WalletService;
|
||||
import io.bitsquare.btc.listeners.BalanceListener;
|
||||
|
@ -54,7 +55,6 @@ import io.bitsquare.p2p.network.Connection;
|
|||
import io.bitsquare.p2p.network.ConnectionListener;
|
||||
import io.bitsquare.p2p.peers.keepalive.messages.Ping;
|
||||
import io.bitsquare.payment.OKPayAccount;
|
||||
import io.bitsquare.trade.TradableHelper;
|
||||
import io.bitsquare.trade.Trade;
|
||||
import io.bitsquare.trade.TradeManager;
|
||||
import io.bitsquare.trade.closed.ClosedTradableManager;
|
||||
|
@ -65,6 +65,7 @@ import io.bitsquare.user.Preferences;
|
|||
import io.bitsquare.user.User;
|
||||
import javafx.beans.property.*;
|
||||
import javafx.collections.ListChangeListener;
|
||||
import org.bitcoinj.core.Address;
|
||||
import org.bitcoinj.core.Coin;
|
||||
import org.bitcoinj.core.Transaction;
|
||||
import org.bitcoinj.store.BlockStoreException;
|
||||
|
@ -683,7 +684,7 @@ public class MainViewModel implements ViewModel {
|
|||
}
|
||||
|
||||
private void updateAvailableBalance() {
|
||||
Coin totalAvailableBalance = Coin.valueOf(TradableHelper.getAddressEntriesForAvailableBalanceStream(walletService)
|
||||
Coin totalAvailableBalance = Coin.valueOf(tradeManager.getAddressEntriesForAvailableBalanceStream()
|
||||
.mapToLong(addressEntry -> walletService.getBalanceForAddress(addressEntry.getAddress()).getValue())
|
||||
.sum());
|
||||
availableBalance.set(formatter.formatCoinWithCode(totalAvailableBalance));
|
||||
|
@ -691,7 +692,10 @@ public class MainViewModel implements ViewModel {
|
|||
|
||||
private void updateReservedBalance() {
|
||||
Coin sum = Coin.valueOf(openOfferManager.getOpenOffers().stream()
|
||||
.map(openOffer -> TradableHelper.getReservedBalance(openOffer, walletService))
|
||||
.map(openOffer -> {
|
||||
Address address = walletService.getOrCreateAddressEntry(openOffer.getId(), AddressEntry.Context.RESERVED_FOR_TRADE).getAddress();
|
||||
return walletService.getBalanceForAddress(address);
|
||||
})
|
||||
.mapToLong(Coin::getValue)
|
||||
.sum());
|
||||
|
||||
|
@ -699,8 +703,8 @@ public class MainViewModel implements ViewModel {
|
|||
}
|
||||
|
||||
private void updateLockedBalance() {
|
||||
Coin sum = Coin.valueOf(TradableHelper.getLockedTradeStream(tradeManager)
|
||||
.mapToLong(trade -> TradableHelper.getLockedTradeAddressEntry(trade, walletService).getLockedTradeAmount().getValue())
|
||||
Coin sum = Coin.valueOf(tradeManager.getLockedTradeStream()
|
||||
.mapToLong(trade -> walletService.getOrCreateAddressEntry(trade.getId(), AddressEntry.Context.MULTI_SIG).getLockedTradeAmount().getValue())
|
||||
.sum());
|
||||
lockedBalance.set(formatter.formatCoinWithCode(sum));
|
||||
}
|
||||
|
|
|
@ -35,25 +35,19 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
public class DepositListItem {
|
||||
private final Logger log = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
private final StringProperty balance = new SimpleStringProperty();
|
||||
private final WalletService walletService;
|
||||
|
||||
private Coin balanceAsCoin;
|
||||
private BSFormatter formatter;
|
||||
private final ConfidenceProgressIndicator progressIndicator;
|
||||
private final Tooltip tooltip;
|
||||
|
||||
|
||||
private String balanceString;
|
||||
private String addressString;
|
||||
private String usage = "-";
|
||||
private TxConfidenceListener txConfidenceListener;
|
||||
private int numTxOutputs = 0;
|
||||
|
||||
// public DepositListItem(AddressEntry addressEntry, Transaction transaction, WalletService walletService, Optional<Tradable> tradableOptional, BSFormatter formatter) {
|
||||
public DepositListItem(AddressEntry addressEntry, WalletService walletService, BSFormatter formatter) {
|
||||
this.walletService = walletService;
|
||||
this.formatter = formatter;
|
||||
|
||||
addressString = addressEntry.getAddressString();
|
||||
|
||||
|
|
|
@ -69,31 +69,28 @@ public class DepositView extends ActivatableView<VBox, Void> {
|
|||
|
||||
@FXML
|
||||
GridPane gridPane;
|
||||
|
||||
@FXML
|
||||
TableView<DepositListItem> tableView;
|
||||
@FXML
|
||||
TableColumn<DepositListItem, DepositListItem> selectColumn, addressColumn, balanceColumn, confidenceColumn, usageColumn;
|
||||
private ImageView qrCodeImageView;
|
||||
private int gridRow = 0;
|
||||
private AddressTextField addressTextField;
|
||||
Button generateNewAddressButton;
|
||||
|
||||
private final WalletService walletService;
|
||||
private final BSFormatter formatter;
|
||||
private final Preferences preferences;
|
||||
private final ObservableList<DepositListItem> observableList = FXCollections.observableArrayList();
|
||||
private final SortedList<DepositListItem> sortedList = new SortedList<>(observableList);
|
||||
|
||||
private BalanceListener balanceListener;
|
||||
private Button generateNewAddressButton;
|
||||
private TitledGroupBg titledGroupBg;
|
||||
private Label addressLabel, amountLabel;
|
||||
private Label qrCodeLabel;
|
||||
private InputTextField amountTextField;
|
||||
private Subscription amountTextFieldSubscription;
|
||||
private String paymentLabel;
|
||||
private ChangeListener<DepositListItem> tableViewSelectionListener;
|
||||
|
||||
private final WalletService walletService;
|
||||
private final BSFormatter formatter;
|
||||
private final Preferences preferences;
|
||||
private final String paymentLabelString;
|
||||
private final ObservableList<DepositListItem> observableList = FXCollections.observableArrayList();
|
||||
private final SortedList<DepositListItem> sortedList = new SortedList<>(observableList);
|
||||
private BalanceListener balanceListener;
|
||||
private Subscription amountTextFieldSubscription;
|
||||
private ChangeListener<DepositListItem> tableViewSelectionListener;
|
||||
private int gridRow = 0;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Constructor, lifecycle
|
||||
|
@ -106,6 +103,8 @@ public class DepositView extends ActivatableView<VBox, Void> {
|
|||
this.walletService = walletService;
|
||||
this.formatter = formatter;
|
||||
this.preferences = preferences;
|
||||
|
||||
paymentLabelString = "Fund Bitsquare wallet";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -153,8 +152,7 @@ public class DepositView extends ActivatableView<VBox, Void> {
|
|||
//GridPane.setValignment(addressLabel, VPos.TOP);
|
||||
//GridPane.setMargin(addressLabel, new Insets(3, 0, 0, 0));
|
||||
addressTextField = addressTuple.second;
|
||||
paymentLabel = "Fund Bitsquare wallet";
|
||||
addressTextField.setPaymentLabel(paymentLabel);
|
||||
addressTextField.setPaymentLabel(paymentLabelString);
|
||||
|
||||
|
||||
Tuple2<Label, InputTextField> amountTuple = addLabelInputTextField(gridPane, ++gridRow, "Amount in BTC (optional):");
|
||||
|
@ -307,7 +305,7 @@ public class DepositView extends ActivatableView<VBox, Void> {
|
|||
private String getBitcoinURI() {
|
||||
return BitcoinURI.convertToBitcoinURI(addressTextField.getAddress(),
|
||||
getAmountAsCoin(),
|
||||
paymentLabel,
|
||||
paymentLabelString,
|
||||
null);
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,6 @@ import io.bitsquare.gui.main.overlays.windows.OfferDetailsWindow;
|
|||
import io.bitsquare.gui.main.overlays.windows.TradeDetailsWindow;
|
||||
import io.bitsquare.gui.util.BSFormatter;
|
||||
import io.bitsquare.trade.Tradable;
|
||||
import io.bitsquare.trade.TradableHelper;
|
||||
import io.bitsquare.trade.Trade;
|
||||
import io.bitsquare.trade.TradeManager;
|
||||
import io.bitsquare.trade.offer.OpenOffer;
|
||||
|
@ -148,9 +147,9 @@ public class LockedView extends ActivatableView<VBox, Void> {
|
|||
|
||||
private void updateList() {
|
||||
observableList.forEach(LockedListItem::cleanup);
|
||||
observableList.setAll(TradableHelper.getLockedTradeStream(tradeManager)
|
||||
observableList.setAll(tradeManager.getLockedTradeStream()
|
||||
.map(trade -> new LockedListItem(trade,
|
||||
TradableHelper.getLockedTradeAddressEntry(trade, walletService),
|
||||
walletService.getOrCreateAddressEntry(trade.getId(), AddressEntry.Context.MULTI_SIG),
|
||||
walletService,
|
||||
formatter))
|
||||
.collect(Collectors.toList()));
|
||||
|
|
|
@ -22,7 +22,6 @@ import io.bitsquare.btc.WalletService;
|
|||
import io.bitsquare.btc.listeners.BalanceListener;
|
||||
import io.bitsquare.gui.util.BSFormatter;
|
||||
import io.bitsquare.trade.Tradable;
|
||||
import io.bitsquare.trade.TradableHelper;
|
||||
import io.bitsquare.trade.offer.OpenOffer;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.beans.property.StringProperty;
|
||||
|
@ -72,7 +71,8 @@ public class ReservedListItem {
|
|||
}
|
||||
|
||||
private void updateBalance() {
|
||||
balance = TradableHelper.getReservedBalance(openOffer, walletService);
|
||||
Address address = walletService.getOrCreateAddressEntry(openOffer.getId(), AddressEntry.Context.RESERVED_FOR_TRADE).getAddress();
|
||||
balance = walletService.getBalanceForAddress(address);
|
||||
if (balance != null)
|
||||
balanceLabel.setText(formatter.formatCoin(this.balance));
|
||||
}
|
||||
|
|
|
@ -40,7 +40,6 @@ public class TransactionsListItem {
|
|||
private final WalletService walletService;
|
||||
private final ConfidenceProgressIndicator progressIndicator;
|
||||
private final Tooltip tooltip;
|
||||
private boolean isInternal;
|
||||
@Nullable
|
||||
private Tradable tradable;
|
||||
private String details;
|
||||
|
@ -89,7 +88,7 @@ public class TransactionsListItem {
|
|||
}
|
||||
}
|
||||
}
|
||||
} else/* if (tradableOptional.isPresent())*/ {
|
||||
} else {
|
||||
amountAsCoin = valueSentToMe.subtract(valueSentFromMe);
|
||||
boolean outgoing = false;
|
||||
for (TransactionOutput transactionOutput : transaction.getOutputs()) {
|
||||
|
@ -107,25 +106,27 @@ public class TransactionsListItem {
|
|||
direction = "Sent to:";
|
||||
received = false;
|
||||
}
|
||||
} /*else {
|
||||
// savings wallet tx
|
||||
for (TransactionOutput transactionOutput : transaction.getOutputs()) {
|
||||
if (transactionOutput.isMine(walletService.getWallet())) {
|
||||
if (transactionOutput.getScriptPubKey().isSentToAddress() ||
|
||||
transactionOutput.getScriptPubKey().isPayToScriptHash()) {
|
||||
address = transactionOutput.getScriptPubKey().getToAddress(walletService.getWallet().getParams());
|
||||
addressString = address.toString();
|
||||
}
|
||||
|
||||
amountAsCoin = transactionOutput.getValue().multiply(-1);
|
||||
}
|
||||
// confidence
|
||||
progressIndicator = new ConfidenceProgressIndicator();
|
||||
progressIndicator.setId("funds-confidence");
|
||||
tooltip = new Tooltip("Not used yet");
|
||||
progressIndicator.setProgress(0);
|
||||
progressIndicator.setPrefHeight(30);
|
||||
progressIndicator.setPrefWidth(30);
|
||||
Tooltip.install(progressIndicator, tooltip);
|
||||
|
||||
if (address != null) {
|
||||
txConfidenceListener = new TxConfidenceListener(txId) {
|
||||
@Override
|
||||
public void onTransactionConfidenceChanged(TransactionConfidence confidence) {
|
||||
updateConfidence(confidence);
|
||||
}
|
||||
}
|
||||
|
||||
direction = "Transferred to:";
|
||||
received = false;
|
||||
isInternal = true;
|
||||
details = "Change output";
|
||||
}*/
|
||||
};
|
||||
walletService.addTxConfidenceListener(txConfidenceListener);
|
||||
updateConfidence(transaction.getConfidence());
|
||||
}
|
||||
|
||||
|
||||
if (tradableOptional.isPresent()) {
|
||||
|
@ -148,10 +149,12 @@ public class TransactionsListItem {
|
|||
trade.getPayoutTx().getHashAsString().equals(txId)) {
|
||||
details = "MultiSig payout: " + tradable.getShortId();
|
||||
} else if (trade.getDisputeState() == Trade.DisputeState.DISPUTE_CLOSED) {
|
||||
if (valueSentToMe.isPositive())
|
||||
if (valueSentToMe.isPositive()) {
|
||||
details = "Dispute payout: " + tradable.getShortId();
|
||||
else
|
||||
} else {
|
||||
details = "Lost dispute case: " + tradable.getShortId();
|
||||
progressIndicator.setVisible(false);
|
||||
}
|
||||
} else {
|
||||
details = "Unknown reason: " + tradable.getShortId();
|
||||
}
|
||||
|
@ -159,31 +162,11 @@ public class TransactionsListItem {
|
|||
} else {
|
||||
if (amountAsCoin.isZero())
|
||||
details = "No refund from dispute";
|
||||
else if (!isInternal)
|
||||
else
|
||||
details = received ? "Received funds" : "Withdrawn from wallet";
|
||||
}
|
||||
|
||||
date = formatter.formatDateTime(transaction.getUpdateTime());
|
||||
|
||||
// confidence
|
||||
progressIndicator = new ConfidenceProgressIndicator();
|
||||
progressIndicator.setId("funds-confidence");
|
||||
tooltip = new Tooltip("Not used yet");
|
||||
progressIndicator.setProgress(0);
|
||||
progressIndicator.setPrefHeight(30);
|
||||
progressIndicator.setPrefWidth(30);
|
||||
Tooltip.install(progressIndicator, tooltip);
|
||||
|
||||
if (address != null) {
|
||||
txConfidenceListener = new TxConfidenceListener(txId) {
|
||||
@Override
|
||||
public void onTransactionConfidenceChanged(TransactionConfidence confidence) {
|
||||
updateConfidence(confidence);
|
||||
}
|
||||
};
|
||||
walletService.addTxConfidenceListener(txConfidenceListener);
|
||||
updateConfidence(transaction.getConfidence());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -242,10 +225,6 @@ public class TransactionsListItem {
|
|||
return direction;
|
||||
}
|
||||
|
||||
public boolean isInternal() {
|
||||
return isInternal;
|
||||
}
|
||||
|
||||
public String getTxId() {
|
||||
return txId;
|
||||
}
|
||||
|
|
|
@ -194,38 +194,6 @@ public class TransactionsView extends ActivatableView<VBox, Void> {
|
|||
Set<Tradable> all = concat3.collect(Collectors.toSet());
|
||||
|
||||
Set<Transaction> transactions = walletService.getWallet().getTransactions(true);
|
||||
/* List<TransactionsListItem> transactionsListItems = new ArrayList<>();
|
||||
for (Transaction transaction : transactions) {
|
||||
Optional<Tradable> tradableOptional = all.stream()
|
||||
.filter(tradable -> {
|
||||
String txId = transaction.getHashAsString();
|
||||
if (tradable instanceof OpenOffer)
|
||||
return tradable.getOffer().getOfferFeePaymentTxID().equals(txId);
|
||||
else if (tradable instanceof Trade) {
|
||||
Trade trade = (Trade) tradable;
|
||||
boolean isTakeOfferFeeTx = txId.equals(trade.getTakeOfferFeeTxId());
|
||||
boolean isOfferFeeTx = trade.getOffer() != null &&
|
||||
txId.equals(trade.getOffer().getOfferFeePaymentTxID());
|
||||
boolean isDepositTx = trade.getDepositTx() != null &&
|
||||
trade.getDepositTx().getHashAsString().equals(txId);
|
||||
boolean isPayoutTx = trade.getPayoutTx() != null &&
|
||||
trade.getPayoutTx().getHashAsString().equals(txId);
|
||||
|
||||
boolean isDisputedPayoutTx = disputeManager.getDisputesAsObservableList().stream()
|
||||
.filter(dispute -> txId.equals(dispute.getDisputePayoutTxId()) &&
|
||||
tradable.getId().equals(dispute.getTradeId()))
|
||||
.findAny()
|
||||
.isPresent();
|
||||
|
||||
return isTakeOfferFeeTx || isOfferFeeTx || isDepositTx || isPayoutTx || isDisputedPayoutTx;
|
||||
} else
|
||||
return false;
|
||||
})
|
||||
.findAny();
|
||||
// if (tradableOptional.isPresent())
|
||||
transactionsListItems.add(new TransactionsListItem(transaction, walletService, tradableOptional, formatter));
|
||||
}*/
|
||||
|
||||
List<TransactionsListItem> transactionsListItems = transactions.stream()
|
||||
.map(transaction -> {
|
||||
Optional<Tradable> tradableOptional = all.stream()
|
||||
|
@ -258,12 +226,6 @@ public class TransactionsView extends ActivatableView<VBox, Void> {
|
|||
})
|
||||
.collect(Collectors.toList());
|
||||
|
||||
/* List<TransactionsListItem> usedSavingWalletEntries = walletService.getUsedSavingWalletTransactions()
|
||||
.stream()
|
||||
.map(transaction -> new TransactionsListItem(transaction, walletService, Optional.<Tradable>empty(), formatter))
|
||||
.collect(Collectors.toList());
|
||||
transactionsListItems.addAll(usedSavingWalletEntries);*/
|
||||
|
||||
// are sorted by getRecentTransactions
|
||||
observableList.forEach(TransactionsListItem::cleanup);
|
||||
observableList.setAll(transactionsListItems);
|
||||
|
@ -377,7 +339,7 @@ public class TransactionsView extends ActivatableView<VBox, Void> {
|
|||
if (item != null && !empty) {
|
||||
String addressString = item.getAddressString();
|
||||
field = new AddressWithIconAndDirection(item.getDirection(), addressString,
|
||||
AwesomeIcon.EXTERNAL_LINK, item.getReceived(), item.isInternal());
|
||||
AwesomeIcon.EXTERNAL_LINK, item.getReceived());
|
||||
field.setOnAction(event -> openBlockExplorer(item));
|
||||
field.setTooltip(new Tooltip("Open external blockchain explorer for " +
|
||||
"address: " + addressString));
|
||||
|
|
|
@ -21,10 +21,6 @@ import io.bitsquare.btc.AddressEntry;
|
|||
import io.bitsquare.btc.WalletService;
|
||||
import io.bitsquare.btc.listeners.BalanceListener;
|
||||
import io.bitsquare.gui.util.BSFormatter;
|
||||
import io.bitsquare.trade.TradeManager;
|
||||
import io.bitsquare.trade.closed.ClosedTradableManager;
|
||||
import io.bitsquare.trade.failed.FailedTradesManager;
|
||||
import io.bitsquare.trade.offer.OpenOfferManager;
|
||||
import javafx.scene.control.Label;
|
||||
import org.bitcoinj.core.Address;
|
||||
import org.bitcoinj.core.Coin;
|
||||
|
@ -35,25 +31,14 @@ public class WithdrawalListItem {
|
|||
private final Label balanceLabel;
|
||||
private final AddressEntry addressEntry;
|
||||
private final WalletService walletService;
|
||||
private final OpenOfferManager openOfferManager;
|
||||
private final TradeManager tradeManager;
|
||||
private final ClosedTradableManager closedTradableManager;
|
||||
private final FailedTradesManager failedTradesManager;
|
||||
private final BSFormatter formatter;
|
||||
private Coin balance;
|
||||
private final String addressString;
|
||||
|
||||
public WithdrawalListItem(AddressEntry addressEntry, WalletService walletService,
|
||||
OpenOfferManager openOfferManager, TradeManager tradeManager,
|
||||
ClosedTradableManager closedTradableManager,
|
||||
FailedTradesManager failedTradesManager,
|
||||
BSFormatter formatter) {
|
||||
this.addressEntry = addressEntry;
|
||||
this.walletService = walletService;
|
||||
this.openOfferManager = openOfferManager;
|
||||
this.tradeManager = tradeManager;
|
||||
this.closedTradableManager = closedTradableManager;
|
||||
this.failedTradesManager = failedTradesManager;
|
||||
this.formatter = formatter;
|
||||
addressString = addressEntry.getAddressString();
|
||||
|
||||
|
@ -99,7 +84,6 @@ public class WithdrawalListItem {
|
|||
WithdrawalListItem that = (WithdrawalListItem) o;
|
||||
|
||||
return !(addressEntry != null ? !addressEntry.equals(that.addressEntry) : that.addressEntry != null);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -30,18 +30,14 @@ import io.bitsquare.gui.common.view.ActivatableView;
|
|||
import io.bitsquare.gui.common.view.FxmlView;
|
||||
import io.bitsquare.gui.components.HyperlinkWithIcon;
|
||||
import io.bitsquare.gui.main.overlays.popups.Popup;
|
||||
import io.bitsquare.gui.main.overlays.windows.OfferDetailsWindow;
|
||||
import io.bitsquare.gui.main.overlays.windows.TradeDetailsWindow;
|
||||
import io.bitsquare.gui.main.overlays.windows.WalletPasswordWindow;
|
||||
import io.bitsquare.gui.util.BSFormatter;
|
||||
import io.bitsquare.gui.util.validation.BtcAddressValidator;
|
||||
import io.bitsquare.trade.Tradable;
|
||||
import io.bitsquare.trade.TradableHelper;
|
||||
import io.bitsquare.trade.Trade;
|
||||
import io.bitsquare.trade.TradeManager;
|
||||
import io.bitsquare.trade.closed.ClosedTradableManager;
|
||||
import io.bitsquare.trade.failed.FailedTradesManager;
|
||||
import io.bitsquare.trade.offer.OpenOfferManager;
|
||||
import io.bitsquare.user.Preferences;
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.beans.property.ReadOnlyObjectWrapper;
|
||||
|
@ -80,13 +76,10 @@ public class WithdrawalView extends ActivatableView<VBox, Void> {
|
|||
private final TradeManager tradeManager;
|
||||
private final ClosedTradableManager closedTradableManager;
|
||||
private final FailedTradesManager failedTradesManager;
|
||||
private final OpenOfferManager openOfferManager;
|
||||
private final BSFormatter formatter;
|
||||
private final Preferences preferences;
|
||||
private final BtcAddressValidator btcAddressValidator;
|
||||
private final WalletPasswordWindow walletPasswordWindow;
|
||||
private final OfferDetailsWindow offerDetailsWindow;
|
||||
private final TradeDetailsWindow tradeDetailsWindow;
|
||||
private final ObservableList<WithdrawalListItem> observableList = FXCollections.observableArrayList();
|
||||
private final SortedList<WithdrawalListItem> sortedList = new SortedList<>(observableList);
|
||||
private Set<WithdrawalListItem> selectedItems = new HashSet<>();
|
||||
|
@ -101,21 +94,17 @@ public class WithdrawalView extends ActivatableView<VBox, Void> {
|
|||
@Inject
|
||||
private WithdrawalView(WalletService walletService, TradeManager tradeManager,
|
||||
ClosedTradableManager closedTradableManager,
|
||||
FailedTradesManager failedTradesManager, OpenOfferManager openOfferManager,
|
||||
FailedTradesManager failedTradesManager,
|
||||
BSFormatter formatter, Preferences preferences,
|
||||
BtcAddressValidator btcAddressValidator, WalletPasswordWindow walletPasswordWindow,
|
||||
OfferDetailsWindow offerDetailsWindow, TradeDetailsWindow tradeDetailsWindow) {
|
||||
BtcAddressValidator btcAddressValidator, WalletPasswordWindow walletPasswordWindow) {
|
||||
this.walletService = walletService;
|
||||
this.tradeManager = tradeManager;
|
||||
this.closedTradableManager = closedTradableManager;
|
||||
this.failedTradesManager = failedTradesManager;
|
||||
this.openOfferManager = openOfferManager;
|
||||
this.formatter = formatter;
|
||||
this.preferences = preferences;
|
||||
this.btcAddressValidator = btcAddressValidator;
|
||||
this.walletPasswordWindow = walletPasswordWindow;
|
||||
this.offerDetailsWindow = offerDetailsWindow;
|
||||
this.tradeDetailsWindow = tradeDetailsWindow;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -285,9 +274,8 @@ public class WithdrawalView extends ActivatableView<VBox, Void> {
|
|||
|
||||
private void updateList() {
|
||||
observableList.forEach(WithdrawalListItem::cleanup);
|
||||
observableList.setAll(TradableHelper.getAddressEntriesForAvailableBalanceStream(walletService)
|
||||
.map(addressEntry -> new WithdrawalListItem(addressEntry, walletService, openOfferManager, tradeManager,
|
||||
closedTradableManager, failedTradesManager, formatter))
|
||||
observableList.setAll(tradeManager.getAddressEntriesForAvailableBalanceStream()
|
||||
.map(addressEntry -> new WithdrawalListItem(addressEntry, walletService, formatter))
|
||||
.collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue