mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-04-19 15:26:03 -04:00
Improve display for role (buyer/seller/offerer/taker)
This commit is contained in:
parent
d31a4c2947
commit
ba4a228fed
@ -98,6 +98,10 @@ public class Contract implements Serializable {
|
||||
this.takerBtcPubKey = takerBtcPubKey;
|
||||
}
|
||||
|
||||
public boolean isBuyerOffererAndSellerTaker() {
|
||||
return isBuyerOffererAndSellerTaker;
|
||||
}
|
||||
|
||||
public String getBuyerAccountId() {
|
||||
return isBuyerOffererAndSellerTaker ? offererAccountId : takerAccountId;
|
||||
}
|
||||
|
@ -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
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,8 @@
|
||||
<PropertyValueFactory property="tradeVolume"/>
|
||||
</cellValueFactory>
|
||||
</TableColumn>
|
||||
<TableColumn text="Trade type" fx:id="directionColumn" minWidth="80"/>
|
||||
<TableColumn text="Payment method" fx:id="paymentMethodColumn" minWidth="120"/>
|
||||
<TableColumn text="My role" fx:id="roleColumn" minWidth="120" maxWidth="120"/>
|
||||
</columns>
|
||||
</TableView>
|
||||
</VBox>
|
||||
|
@ -58,9 +58,7 @@ public class PendingTradesView extends ActivatableViewAndModel<VBox, PendingTrad
|
||||
@FXML
|
||||
TableColumn<PendingTradesListItem, Fiat> tradeVolumeColumn;
|
||||
@FXML
|
||||
TableColumn<PendingTradesListItem, PendingTradesListItem> directionColumn;
|
||||
@FXML
|
||||
TableColumn<PendingTradesListItem, PendingTradesListItem> idColumn;
|
||||
TableColumn<PendingTradesListItem, PendingTradesListItem> roleColumn, paymentMethodColumn, idColumn;
|
||||
@FXML
|
||||
TableColumn<PendingTradesListItem, Date> dateColumn;
|
||||
@FXML
|
||||
@ -93,7 +91,8 @@ public class PendingTradesView extends ActivatableViewAndModel<VBox, PendingTrad
|
||||
setAmountColumnCellFactory();
|
||||
setPriceColumnCellFactory();
|
||||
setVolumeColumnCellFactory();
|
||||
setDirectionColumnCellFactory();
|
||||
setPaymentMethodColumnCellFactory();
|
||||
setRoleColumnCellFactory();
|
||||
|
||||
table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
|
||||
table.setPlaceholder(new Label("No pending trades available"));
|
||||
@ -308,9 +307,9 @@ public class PendingTradesView extends ActivatableViewAndModel<VBox, PendingTrad
|
||||
}));
|
||||
}
|
||||
|
||||
private void setDirectionColumnCellFactory() {
|
||||
directionColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
||||
directionColumn.setCellFactory(
|
||||
private void setPaymentMethodColumnCellFactory() {
|
||||
paymentMethodColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
||||
paymentMethodColumn.setCellFactory(
|
||||
new Callback<TableColumn<PendingTradesListItem, PendingTradesListItem>, TableCell<PendingTradesListItem,
|
||||
PendingTradesListItem>>() {
|
||||
@Override
|
||||
@ -321,7 +320,29 @@ public class PendingTradesView extends ActivatableViewAndModel<VBox, PendingTrad
|
||||
public void updateItem(final PendingTradesListItem item, boolean empty) {
|
||||
super.updateItem(item, empty);
|
||||
if (item != null && !empty)
|
||||
setText(model.evaluateDirection(item));
|
||||
setText(model.getPaymentMethod(item));
|
||||
else
|
||||
setText(null);
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setRoleColumnCellFactory() {
|
||||
roleColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
||||
roleColumn.setCellFactory(
|
||||
new Callback<TableColumn<PendingTradesListItem, PendingTradesListItem>, TableCell<PendingTradesListItem,
|
||||
PendingTradesListItem>>() {
|
||||
@Override
|
||||
public TableCell<PendingTradesListItem, PendingTradesListItem> call(
|
||||
TableColumn<PendingTradesListItem, PendingTradesListItem> column) {
|
||||
return new TableCell<PendingTradesListItem, PendingTradesListItem>() {
|
||||
@Override
|
||||
public void updateItem(final PendingTradesListItem item, boolean empty) {
|
||||
super.updateItem(item, empty);
|
||||
if (item != null && !empty)
|
||||
setText(model.getMyRole(item));
|
||||
else
|
||||
setText(null);
|
||||
}
|
||||
|
@ -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<PendingTrad
|
||||
return formatter.formatFiatWithCode(value);
|
||||
}
|
||||
|
||||
String evaluateDirection(PendingTradesListItem item) {
|
||||
return (item != null) ? formatter.getDirection(dataModel.getDirection(item.getTrade().getOffer())) : "";
|
||||
String getMyRole(PendingTradesListItem item) {
|
||||
Trade trade = item.getTrade();
|
||||
Contract contract = trade.getContract();
|
||||
if (contract != null)
|
||||
return formatter.getRole(contract.isBuyerOffererAndSellerTaker(), dataModel.isOfferer(trade.getOffer()));
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
String getPaymentMethod(PendingTradesListItem item) {
|
||||
String result = "";
|
||||
if (item != null) {
|
||||
Offer offer = item.getTrade().getOffer();
|
||||
String method = BSResources.get(offer.getPaymentMethod().getId());
|
||||
String methodCountryCode = offer.getPaymentMethodCountryCode();
|
||||
|
||||
if (methodCountryCode != null)
|
||||
result = method + " (" + methodCountryCode + ")";
|
||||
else
|
||||
result = method;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
String formatDate(Date value) {
|
||||
|
@ -365,4 +365,11 @@ public class BSFormatter {
|
||||
public String getDirectionDescription(Offer.Direction direction) {
|
||||
return direction == Offer.Direction.BUY ? "Offerer as bitcoin buyer / Taker as bitcoin seller" : "Offerer as bitcoin seller / Taker as bitcoin buyer";
|
||||
}
|
||||
|
||||
public String getRole(boolean isBuyerOffererAndSellerTaker, boolean isOfferer) {
|
||||
if (isBuyerOffererAndSellerTaker)
|
||||
return isOfferer ? "Buyer (offerer)" : "Seller (taker)";
|
||||
else
|
||||
return isOfferer ? "Seller (offerer)" : "Buyer (taker)";
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user