From ba4a228fed2e5ade233f89bf90629d209350c09f Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Wed, 3 Feb 2016 23:20:12 +0100 Subject: [PATCH] Improve display for role (buyer/seller/offerer/taker) --- .../java/io/bitsquare/trade/Contract.java | 4 ++ .../pendingtrades/PendingTradesDataModel.java | 11 ++---- .../pendingtrades/PendingTradesView.fxml | 3 +- .../pendingtrades/PendingTradesView.java | 37 +++++++++++++++---- .../pendingtrades/PendingTradesViewModel.java | 26 ++++++++++++- .../io/bitsquare/gui/util/BSFormatter.java | 7 ++++ 6 files changed, 70 insertions(+), 18 deletions(-) diff --git a/core/src/main/java/io/bitsquare/trade/Contract.java b/core/src/main/java/io/bitsquare/trade/Contract.java index 3833a5452b..b518b582fa 100644 --- a/core/src/main/java/io/bitsquare/trade/Contract.java +++ b/core/src/main/java/io/bitsquare/trade/Contract.java @@ -98,6 +98,10 @@ public class Contract implements Serializable { this.takerBtcPubKey = takerBtcPubKey; } + public boolean isBuyerOffererAndSellerTaker() { + return isBuyerOffererAndSellerTaker; + } + public String getBuyerAccountId() { return isBuyerOffererAndSellerTaker ? offererAccountId : takerAccountId; } diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesDataModel.java index 9f77cbccc9..7d6745a70a 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesDataModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesDataModel.java @@ -61,7 +61,6 @@ import static com.google.common.base.Preconditions.checkNotNull; public class PendingTradesDataModel extends ActivatableDataModel { private final TradeManager tradeManager; - private final WalletService walletService; private final TradeWalletService tradeWalletService; private final User user; @@ -295,6 +294,10 @@ public class PendingTradesDataModel extends ActivatableDataModel { return trade.getOffer().getDirection() == Offer.Direction.BUY; } + boolean isOfferer(Offer offer) { + return tradeManager.isMyOffer(offer); + } + boolean isOfferer() { return isOfferer; } @@ -380,11 +383,5 @@ public class PendingTradesDataModel extends ActivatableDataModel { public Preferences getPreferences() { return preferences; } - - - /////////////////////////////////////////////////////////////////////////////////////////// - // Utils - /////////////////////////////////////////////////////////////////////////////////////////// - } diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.fxml b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.fxml index 3e245084b6..3eec879a2c 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.fxml +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.fxml @@ -54,7 +54,8 @@ - + + diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.java index 8475d013cf..2640a715db 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.java @@ -58,9 +58,7 @@ public class PendingTradesView extends ActivatableViewAndModel tradeVolumeColumn; @FXML - TableColumn directionColumn; - @FXML - TableColumn idColumn; + TableColumn roleColumn, paymentMethodColumn, idColumn; @FXML TableColumn dateColumn; @FXML @@ -93,7 +91,8 @@ public class PendingTradesView extends ActivatableViewAndModel new ReadOnlyObjectWrapper<>(offer.getValue())); - directionColumn.setCellFactory( + private void setPaymentMethodColumnCellFactory() { + paymentMethodColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue())); + paymentMethodColumn.setCellFactory( new Callback, TableCell>() { @Override @@ -321,7 +320,29 @@ public class PendingTradesView extends ActivatableViewAndModel new ReadOnlyObjectWrapper<>(offer.getValue())); + roleColumn.setCellFactory( + new Callback, TableCell>() { + @Override + public TableCell call( + TableColumn column) { + return new TableCell() { + @Override + public void updateItem(final PendingTradesListItem item, boolean empty) { + super.updateItem(item, empty); + if (item != null && !empty) + setText(model.getMyRole(item)); else setText(null); } diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java index 71235c724e..c6d0cacb71 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java @@ -28,7 +28,9 @@ import io.bitsquare.gui.util.validation.*; import io.bitsquare.locale.BSResources; import io.bitsquare.p2p.P2PService; import io.bitsquare.payment.PaymentMethod; +import io.bitsquare.trade.Contract; import io.bitsquare.trade.Trade; +import io.bitsquare.trade.offer.Offer; import javafx.beans.property.*; import javafx.collections.ObservableList; import org.bitcoinj.core.BlockChainListener; @@ -242,8 +244,28 @@ public class PendingTradesViewModel extends ActivatableWithDataModel