mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-23 23:06:39 +01:00
commit
b92b4becfb
4 changed files with 186 additions and 8 deletions
|
@ -62,6 +62,10 @@ shared.priceWithCur=Price in {0}
|
|||
shared.priceInCurForCur=Price in {0} for 1 {1}
|
||||
shared.fixedPriceInCurForCur=Fixed price in {0} for 1 {1}
|
||||
shared.amount=Amount
|
||||
shared.txFee=Transaction Fee
|
||||
shared.makerFee=Maker Fee
|
||||
shared.buyerSecurityDeposit=Buyer Deposit
|
||||
shared.sellerSecurityDeposit=Seller Deposit
|
||||
shared.amountWithCur=Amount in {0}
|
||||
shared.volumeWithCur=Volume in {0}
|
||||
shared.currency=Currency
|
||||
|
|
|
@ -40,6 +40,10 @@
|
|||
<TableColumn fx:id="priceColumn" minWidth="100"/>
|
||||
<TableColumn fx:id="amountColumn" minWidth="130"/>
|
||||
<TableColumn fx:id="volumeColumn" minWidth="130"/>
|
||||
<TableColumn fx:id="txFeeColumn" visible="false"/>
|
||||
<TableColumn fx:id="makerFeeColumn" visible="false"/>
|
||||
<TableColumn fx:id="buyerSecurityDepositColumn" visible="false"/>
|
||||
<TableColumn fx:id="sellerSecurityDepositColumn" visible="false"/>
|
||||
<TableColumn fx:id="directionColumn" minWidth="80"/>
|
||||
<TableColumn fx:id="stateColumn" minWidth="80"/>
|
||||
<TableColumn fx:id="avatarColumn" minWidth="40" maxWidth="40"/>
|
||||
|
|
|
@ -85,7 +85,7 @@ public class ClosedTradesView extends ActivatableViewAndModel<VBox, ClosedTrades
|
|||
@FXML
|
||||
TableView<ClosedTradableListItem> tableView;
|
||||
@FXML
|
||||
TableColumn<ClosedTradableListItem, ClosedTradableListItem> priceColumn, amountColumn, volumeColumn,
|
||||
TableColumn<ClosedTradableListItem, ClosedTradableListItem> priceColumn, amountColumn, volumeColumn, txFeeColumn, makerFeeColumn, buyerSecurityDepositColumn, sellerSecurityDepositColumn,
|
||||
marketColumn, directionColumn, dateColumn, tradeIdColumn, stateColumn, avatarColumn;
|
||||
@FXML
|
||||
HBox footerBox;
|
||||
|
@ -124,8 +124,12 @@ public class ClosedTradesView extends ActivatableViewAndModel<VBox, ClosedTrades
|
|||
this.useDevPrivilegeKeys = useDevPrivilegeKeys;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
@Override
|
||||
public void initialize() {
|
||||
txFeeColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.txFee")));
|
||||
makerFeeColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.makerFee")));
|
||||
buyerSecurityDepositColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.buyerSecurityDeposit")));
|
||||
sellerSecurityDepositColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.sellerSecurityDeposit")));
|
||||
priceColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.price")));
|
||||
amountColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.amountWithCur", Res.getBaseCurrencyCode())));
|
||||
volumeColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.amount")));
|
||||
|
@ -142,6 +146,10 @@ public class ClosedTradesView extends ActivatableViewAndModel<VBox, ClosedTrades
|
|||
setTradeIdColumnCellFactory();
|
||||
setDirectionColumnCellFactory();
|
||||
setAmountColumnCellFactory();
|
||||
setTxFeeColumnCellFactory();
|
||||
setMakerFeeColumnCellFactory();
|
||||
setBuyerSecurityDepositColumnCellFactory();
|
||||
setSellerSecurityDepositColumnCellFactory();
|
||||
setPriceColumnCellFactory();
|
||||
setVolumeColumnCellFactory();
|
||||
setDateColumnCellFactory();
|
||||
|
@ -191,6 +199,52 @@ public class ClosedTradesView extends ActivatableViewAndModel<VBox, ClosedTrades
|
|||
} else
|
||||
return 0;
|
||||
});
|
||||
txFeeColumn.setComparator((o1, o2) -> {
|
||||
final Tradable tradable1 = o1.getTradable();
|
||||
final Tradable tradable2 = o2.getTradable();
|
||||
Coin txFee1 = null;
|
||||
Coin txFee2 = null;
|
||||
if (tradable1 != null)
|
||||
txFee1 = tradable1 instanceof Trade ? ((Trade) tradable1).getTxFee() : tradable1.getOffer().getTxFee();
|
||||
if (tradable2 != null)
|
||||
txFee2 = tradable2 instanceof Trade ? ((Trade) tradable2).getTxFee() : tradable2.getOffer().getTxFee();
|
||||
return txFee1 != null && txFee2 != null ? txFee1.compareTo(txFee2) : 0;
|
||||
});
|
||||
makerFeeColumn.setComparator((o1, o2) -> {
|
||||
final Tradable tradable1 = o1.getTradable();
|
||||
final Tradable tradable2 = o2.getTradable();
|
||||
Coin txFee1 = null;
|
||||
Coin txFee2 = null;
|
||||
if (tradable1 != null)
|
||||
txFee1 = tradable1 instanceof Trade ? ((Trade) tradable1).getTakerFee()
|
||||
: tradable1.getOffer().getMakerFee();
|
||||
if (tradable2 != null)
|
||||
txFee2 = tradable2 instanceof Trade ? ((Trade) tradable2).getTakerFee()
|
||||
: tradable2.getOffer().getMakerFee();
|
||||
return txFee1 != null && txFee2 != null ? txFee1.compareTo(txFee2) : 0;
|
||||
});
|
||||
buyerSecurityDepositColumn.setComparator((o1, o2) -> {
|
||||
final Tradable tradable1 = o1.getTradable();
|
||||
final Tradable tradable2 = o2.getTradable();
|
||||
Coin txFee1 = null;
|
||||
Coin txFee2 = null;
|
||||
if (tradable1 != null && tradable1.getOffer() != null)
|
||||
txFee1 = tradable1.getOffer().getBuyerSecurityDeposit();
|
||||
if (tradable2 != null && tradable2.getOffer() != null)
|
||||
txFee2 = tradable2.getOffer().getBuyerSecurityDeposit();
|
||||
return txFee1 != null && txFee2 != null ? txFee1.compareTo(txFee2) : 0;
|
||||
});
|
||||
sellerSecurityDepositColumn.setComparator((o1, o2) -> {
|
||||
final Tradable tradable1 = o1.getTradable();
|
||||
final Tradable tradable2 = o2.getTradable();
|
||||
Coin txFee1 = null;
|
||||
Coin txFee2 = null;
|
||||
if (tradable1 != null && tradable1.getOffer() != null)
|
||||
txFee1 = tradable1.getOffer().getSellerSecurityDeposit();
|
||||
if (tradable2 != null && tradable2.getOffer() != null)
|
||||
txFee2 = tradable2.getOffer().getSellerSecurityDeposit();
|
||||
return txFee1 != null && txFee2 != null ? txFee1.compareTo(txFee2) : 0;
|
||||
});
|
||||
stateColumn.setComparator(Comparator.comparing(model::getState));
|
||||
|
||||
dateColumn.setSortType(TableColumn.SortType.DESCENDING);
|
||||
|
@ -218,21 +272,25 @@ public class ClosedTradesView extends ActivatableViewAndModel<VBox, ClosedTrades
|
|||
exportButton.setOnAction(event -> {
|
||||
final ObservableList<TableColumn<ClosedTradableListItem, ?>> tableColumns = tableView.getColumns();
|
||||
CSVEntryConverter<ClosedTradableListItem> headerConverter = transactionsListItem -> {
|
||||
String[] columns = new String[7];
|
||||
String[] columns = new String[11];
|
||||
for (int i = 0; i < columns.length; i++)
|
||||
columns[i] = tableColumns.get(i).getText();
|
||||
|
||||
return columns;
|
||||
};
|
||||
CSVEntryConverter<ClosedTradableListItem> contentConverter = item -> {
|
||||
String[] columns = new String[7];
|
||||
String[] columns = new String[11];
|
||||
columns[0] = model.getTradeId(item);
|
||||
columns[1] = model.getDate(item);
|
||||
columns[2] = model.getAmount(item);
|
||||
columns[3] = model.getPrice(item);
|
||||
columns[4] = model.getVolume(item);
|
||||
columns[5] = model.getDirectionLabel(item);
|
||||
columns[6] = model.getState(item);
|
||||
columns[5] = model.getTxFee(item);
|
||||
columns[6] = model.getMakerFee(item);
|
||||
columns[7] = model.getBuyerSecurityDeposit(item);
|
||||
columns[8] = model.getSellerSecurityDeposit(item);
|
||||
columns[9] = model.getDirectionLabel(item);
|
||||
columns[10] = model.getState(item);
|
||||
return columns;
|
||||
};
|
||||
|
||||
|
@ -497,5 +555,77 @@ public class ClosedTradesView extends ActivatableViewAndModel<VBox, ClosedTrades
|
|||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void setTxFeeColumnCellFactory() {
|
||||
txFeeColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
||||
txFeeColumn.setCellFactory(
|
||||
new Callback<>() {
|
||||
@Override
|
||||
public TableCell<ClosedTradableListItem, ClosedTradableListItem> call(
|
||||
TableColumn<ClosedTradableListItem, ClosedTradableListItem> column) {
|
||||
return new TableCell<>() {
|
||||
@Override
|
||||
public void updateItem(final ClosedTradableListItem item, boolean empty) {
|
||||
super.updateItem(item, empty);
|
||||
setGraphic(new AutoTooltipLabel(model.getTxFee(item)));
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setMakerFeeColumnCellFactory() {
|
||||
makerFeeColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
||||
makerFeeColumn.setCellFactory(
|
||||
new Callback<>() {
|
||||
@Override
|
||||
public TableCell<ClosedTradableListItem, ClosedTradableListItem> call(
|
||||
TableColumn<ClosedTradableListItem, ClosedTradableListItem> column) {
|
||||
return new TableCell<>() {
|
||||
@Override
|
||||
public void updateItem(final ClosedTradableListItem item, boolean empty) {
|
||||
super.updateItem(item, empty);
|
||||
setGraphic(new AutoTooltipLabel(model.getMakerFee(item)));
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setBuyerSecurityDepositColumnCellFactory() {
|
||||
buyerSecurityDepositColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
||||
buyerSecurityDepositColumn.setCellFactory(
|
||||
new Callback<>() {
|
||||
@Override
|
||||
public TableCell<ClosedTradableListItem, ClosedTradableListItem> call(
|
||||
TableColumn<ClosedTradableListItem, ClosedTradableListItem> column) {
|
||||
return new TableCell<>() {
|
||||
@Override
|
||||
public void updateItem(final ClosedTradableListItem item, boolean empty) {
|
||||
super.updateItem(item, empty);
|
||||
setGraphic(new AutoTooltipLabel(model.getBuyerSecurityDeposit(item)));
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setSellerSecurityDepositColumnCellFactory() {
|
||||
sellerSecurityDepositColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
||||
sellerSecurityDepositColumn.setCellFactory(
|
||||
new Callback<>() {
|
||||
@Override
|
||||
public TableCell<ClosedTradableListItem, ClosedTradableListItem> call(
|
||||
TableColumn<ClosedTradableListItem, ClosedTradableListItem> column) {
|
||||
return new TableCell<>() {
|
||||
@Override
|
||||
public void updateItem(final ClosedTradableListItem item, boolean empty) {
|
||||
super.updateItem(item, empty);
|
||||
setGraphic(new AutoTooltipLabel(model.getSellerSecurityDeposit(item)));
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -82,6 +82,46 @@ class ClosedTradesViewModel extends ActivatableWithDataModel<ClosedTradesDataMod
|
|||
return "";
|
||||
}
|
||||
|
||||
String getTxFee(ClosedTradableListItem item) {
|
||||
if (item == null)
|
||||
return "";
|
||||
Tradable tradable = item.getTradable();
|
||||
if (tradable instanceof Trade)
|
||||
return formatter.formatCoin(((Trade) tradable).getTxFee());
|
||||
else
|
||||
return formatter.formatCoin(tradable.getOffer().getTxFee());
|
||||
}
|
||||
|
||||
String getMakerFee(ClosedTradableListItem item) {
|
||||
if (item == null)
|
||||
return "";
|
||||
Tradable tradable = item.getTradable();
|
||||
if (tradable instanceof Trade)
|
||||
return formatter.formatCoin(((Trade) tradable).getTakerFee());
|
||||
else
|
||||
return formatter.formatCoin(tradable.getOffer().getMakerFee());
|
||||
}
|
||||
|
||||
String getBuyerSecurityDeposit(ClosedTradableListItem item) {
|
||||
if (item == null)
|
||||
return "";
|
||||
Tradable tradable = item.getTradable();
|
||||
if (tradable.getOffer() != null)
|
||||
return formatter.formatCoin(tradable.getOffer().getBuyerSecurityDeposit());
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
String getSellerSecurityDeposit(ClosedTradableListItem item) {
|
||||
if (item == null)
|
||||
return "";
|
||||
Tradable tradable = item.getTradable();
|
||||
if (tradable.getOffer() != null)
|
||||
return formatter.formatCoin(tradable.getOffer().getSellerSecurityDeposit());
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
String getDirectionLabel(ClosedTradableListItem item) {
|
||||
return (item != null) ? formatter.getDirectionWithCode(dataModel.getDirection(item.getTradable().getOffer()), item.getTradable().getOffer().getCurrencyCode()) : "";
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue