mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 07:07:43 +01:00
Update text field values when time interval selection changes
This commit is contained in:
parent
f421411bba
commit
25f35fea9e
3 changed files with 115 additions and 55 deletions
|
@ -2443,7 +2443,7 @@ dao.factsAndFigures.supply.reimbursement=Reimbursement requests
|
|||
dao.factsAndFigures.supply.genesisIssueAmount=BSQ issued at genesis transaction
|
||||
dao.factsAndFigures.supply.compRequestIssueAmount=BSQ issued for compensation requests
|
||||
dao.factsAndFigures.supply.reimbursementAmount=BSQ issued for reimbursement requests
|
||||
dao.factsAndFigures.supply.totalIssued=Total issues BSQ
|
||||
dao.factsAndFigures.supply.totalIssued=Total issued BSQ
|
||||
dao.factsAndFigures.supply.totalBurned=Total burned BSQ
|
||||
dao.factsAndFigures.supply.chart.tradeFee.toolTip={0}\n{1}
|
||||
dao.factsAndFigures.supply.burnt=BSQ burnt
|
||||
|
|
|
@ -43,6 +43,9 @@ import javafx.scene.layout.VBox;
|
|||
|
||||
import javafx.geometry.Insets;
|
||||
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.beans.property.ReadOnlyLongProperty;
|
||||
|
||||
import static bisq.desktop.util.FormBuilder.addTitledGroupBg;
|
||||
import static bisq.desktop.util.FormBuilder.addTopLabelReadOnlyTextField;
|
||||
|
||||
|
@ -52,9 +55,9 @@ public class SupplyView extends ActivatableView<GridPane, Void> implements DaoSt
|
|||
private final DaoChartView daoChartView;
|
||||
private final BsqFormatter bsqFormatter;
|
||||
|
||||
private TextField genesisIssueAmountTextField, compRequestIssueAmountTextField, reimbursementAmountTextField,
|
||||
totalBurntBsqTradeFeeTextField, totalLockedUpAmountTextField, totalUnlockingAmountTextField,
|
||||
totalUnlockedAmountTextField, totalConfiscatedAmountTextField, totalProofOfBurnAmountTextField;
|
||||
private TextField genesisIssueAmountTextField, compensationAmountTextField, reimbursementAmountTextField,
|
||||
bsqTradeFeeAmountTextField, totalLockedUpAmountTextField, totalUnlockingAmountTextField,
|
||||
totalUnlockedAmountTextField, totalConfiscatedAmountTextField, proofOfBurnAmountTextField;
|
||||
private int gridRow = 0;
|
||||
|
||||
|
||||
|
@ -80,17 +83,34 @@ public class SupplyView extends ActivatableView<GridPane, Void> implements DaoSt
|
|||
|
||||
@Override
|
||||
protected void activate() {
|
||||
daoFacade.addBsqStateListener(this);
|
||||
|
||||
compensationAmountTextField.textProperty().bind(Bindings.createStringBinding(
|
||||
() -> getFormattedValue(daoChartView.compensationAmountProperty()),
|
||||
daoChartView.compensationAmountProperty()));
|
||||
reimbursementAmountTextField.textProperty().bind(Bindings.createStringBinding(
|
||||
() -> getFormattedValue(daoChartView.reimbursementAmountProperty()),
|
||||
daoChartView.reimbursementAmountProperty()));
|
||||
bsqTradeFeeAmountTextField.textProperty().bind(Bindings.createStringBinding(
|
||||
() -> getFormattedValue(daoChartView.bsqTradeFeeAmountProperty()),
|
||||
daoChartView.bsqTradeFeeAmountProperty()));
|
||||
proofOfBurnAmountTextField.textProperty().bind(Bindings.createStringBinding(
|
||||
() -> getFormattedValue(daoChartView.proofOfBurnAmountProperty()),
|
||||
daoChartView.proofOfBurnAmountProperty()));
|
||||
|
||||
Coin issuedAmountFromGenesis = daoFacade.getGenesisTotalSupply();
|
||||
genesisIssueAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(issuedAmountFromGenesis));
|
||||
|
||||
updateWithBsqBlockChainData();
|
||||
|
||||
daoFacade.addBsqStateListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void deactivate() {
|
||||
daoFacade.removeBsqStateListener(this);
|
||||
|
||||
compensationAmountTextField.textProperty().unbind();
|
||||
reimbursementAmountTextField.textProperty().unbind();
|
||||
bsqTradeFeeAmountTextField.textProperty().unbind();
|
||||
proofOfBurnAmountTextField.textProperty().unbind();
|
||||
}
|
||||
|
||||
|
||||
|
@ -137,17 +157,17 @@ public class SupplyView extends ActivatableView<GridPane, Void> implements DaoSt
|
|||
genesisIssueAmountTextField = genesisAmountTuple.second;
|
||||
GridPane.setColumnSpan(genesisAmountTuple.third, 2);
|
||||
|
||||
compRequestIssueAmountTextField = addTopLabelReadOnlyTextField(root, ++gridRow,
|
||||
compensationAmountTextField = addTopLabelReadOnlyTextField(root, ++gridRow,
|
||||
Res.get("dao.factsAndFigures.supply.compRequestIssueAmount")).second;
|
||||
reimbursementAmountTextField = addTopLabelReadOnlyTextField(root, gridRow, 1,
|
||||
Res.get("dao.factsAndFigures.supply.reimbursementAmount")).second;
|
||||
|
||||
addTitledGroupBg(root, ++gridRow, 1, Res.get("dao.factsAndFigures.supply.burnt"), Layout.GROUP_DISTANCE_WITHOUT_SEPARATOR);
|
||||
|
||||
totalBurntBsqTradeFeeTextField = addTopLabelReadOnlyTextField(root, gridRow,
|
||||
bsqTradeFeeAmountTextField = addTopLabelReadOnlyTextField(root, gridRow,
|
||||
Res.get("dao.factsAndFigures.supply.bsqTradeFee"), Layout.COMPACT_FIRST_ROW_AND_COMPACT_GROUP_DISTANCE).second;
|
||||
|
||||
totalProofOfBurnAmountTextField = addTopLabelReadOnlyTextField(root, gridRow, 1,
|
||||
proofOfBurnAmountTextField = addTopLabelReadOnlyTextField(root, gridRow, 1,
|
||||
Res.get("dao.factsAndFigures.supply.proofOfBurn"), Layout.COMPACT_FIRST_ROW_AND_COMPACT_GROUP_DISTANCE).second;
|
||||
}
|
||||
|
||||
|
@ -174,27 +194,6 @@ public class SupplyView extends ActivatableView<GridPane, Void> implements DaoSt
|
|||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
private void updateWithBsqBlockChainData() {
|
||||
updateEconomicsData();
|
||||
updateLockedTxData();
|
||||
}
|
||||
|
||||
private void updateEconomicsData() {
|
||||
// We use the supplyDataProvider to get the adjusted data with static historical data as well to use the same
|
||||
// monthly scoped data.
|
||||
Coin issuedAmountFromCompRequests = Coin.valueOf(daoChartView.getCompensationAmount());
|
||||
compRequestIssueAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(issuedAmountFromCompRequests));
|
||||
|
||||
Coin issuedAmountFromReimbursementRequests = Coin.valueOf(daoChartView.getReimbursementAmount());
|
||||
reimbursementAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(issuedAmountFromReimbursementRequests));
|
||||
|
||||
Coin totalBurntTradeFee = Coin.valueOf(daoChartView.getBsqTradeFeeAmount());
|
||||
totalBurntBsqTradeFeeTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(totalBurntTradeFee));
|
||||
|
||||
Coin totalProofOfBurnAmount = Coin.valueOf(daoChartView.getProofOfBurnAmount());
|
||||
totalProofOfBurnAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(totalProofOfBurnAmount));
|
||||
}
|
||||
|
||||
private void updateLockedTxData() {
|
||||
Coin totalLockedUpAmount = Coin.valueOf(daoFacade.getTotalLockupAmount());
|
||||
totalLockedUpAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(totalLockedUpAmount));
|
||||
|
||||
|
@ -207,4 +206,8 @@ public class SupplyView extends ActivatableView<GridPane, Void> implements DaoSt
|
|||
Coin totalConfiscatedAmount = Coin.valueOf(daoFacade.getTotalAmountOfConfiscatedTxOutputs());
|
||||
totalConfiscatedAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(totalConfiscatedAmount));
|
||||
}
|
||||
|
||||
private String getFormattedValue(ReadOnlyLongProperty property) {
|
||||
return bsqFormatter.formatAmountWithGroupSeparatorAndCode(Coin.valueOf(property.get()));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,10 @@ import javax.inject.Inject;
|
|||
|
||||
import javafx.scene.chart.XYChart;
|
||||
|
||||
import javafx.beans.property.LongProperty;
|
||||
import javafx.beans.property.ReadOnlyLongProperty;
|
||||
import javafx.beans.property.SimpleLongProperty;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -32,6 +36,11 @@ import lombok.extern.slf4j.Slf4j;
|
|||
|
||||
@Slf4j
|
||||
public class DaoChartView extends ChartView<DaoChartViewModel> {
|
||||
private LongProperty compensationAmountProperty = new SimpleLongProperty();
|
||||
private LongProperty reimbursementAmountProperty = new SimpleLongProperty();
|
||||
private LongProperty bsqTradeFeeAmountProperty = new SimpleLongProperty();
|
||||
private LongProperty proofOfBurnAmountProperty = new SimpleLongProperty();
|
||||
|
||||
private XYChart.Series<Number, Number> seriesBsqTradeFee, seriesProofOfBurn, seriesCompensation,
|
||||
seriesReimbursement, seriesTotalIssued, seriesTotalBurned;
|
||||
|
||||
|
@ -46,20 +55,36 @@ public class DaoChartView extends ChartView<DaoChartViewModel> {
|
|||
// API Total amounts
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public long getCompensationAmount() {
|
||||
public long getCompensationAmountProperty() {
|
||||
return model.getCompensationAmount();
|
||||
}
|
||||
|
||||
public long getReimbursementAmount() {
|
||||
return model.getReimbursementAmount();
|
||||
public ReadOnlyLongProperty compensationAmountProperty() {
|
||||
if (compensationAmountProperty.get() == 0) {
|
||||
compensationAmountProperty.set(model.getCompensationAmount());
|
||||
}
|
||||
return compensationAmountProperty;
|
||||
}
|
||||
|
||||
public long getBsqTradeFeeAmount() {
|
||||
return model.getBsqTradeFeeAmount();
|
||||
public ReadOnlyLongProperty reimbursementAmountProperty() {
|
||||
if (reimbursementAmountProperty.get() == 0) {
|
||||
reimbursementAmountProperty.set(model.getReimbursementAmount());
|
||||
}
|
||||
return reimbursementAmountProperty;
|
||||
}
|
||||
|
||||
public long getProofOfBurnAmount() {
|
||||
return model.getProofOfBurnAmount();
|
||||
public ReadOnlyLongProperty bsqTradeFeeAmountProperty() {
|
||||
if (bsqTradeFeeAmountProperty.get() == 0) {
|
||||
bsqTradeFeeAmountProperty.set(model.getBsqTradeFeeAmount());
|
||||
}
|
||||
return bsqTradeFeeAmountProperty;
|
||||
}
|
||||
|
||||
public ReadOnlyLongProperty proofOfBurnAmountProperty() {
|
||||
if (proofOfBurnAmountProperty.get() == 0) {
|
||||
proofOfBurnAmountProperty.set(model.getProofOfBurnAmount());
|
||||
}
|
||||
return proofOfBurnAmountProperty;
|
||||
}
|
||||
|
||||
|
||||
|
@ -129,18 +154,18 @@ public class DaoChartView extends ChartView<DaoChartViewModel> {
|
|||
protected void activateSeries(XYChart.Series<Number, Number> series) {
|
||||
super.activateSeries(series);
|
||||
|
||||
if (getSeriesId(series).equals(getSeriesId(seriesBsqTradeFee))) {
|
||||
seriesBsqTradeFee.getData().setAll(model.getBsqTradeFeeChartData());
|
||||
if (getSeriesId(series).equals(getSeriesId(seriesTotalIssued))) {
|
||||
applyTotalIssued();
|
||||
} else if (getSeriesId(series).equals(getSeriesId(seriesCompensation))) {
|
||||
seriesCompensation.getData().setAll(model.getCompensationChartData());
|
||||
} else if (getSeriesId(series).equals(getSeriesId(seriesProofOfBurn))) {
|
||||
seriesProofOfBurn.getData().setAll(model.getProofOfBurnChartData());
|
||||
applyCompensation();
|
||||
} else if (getSeriesId(series).equals(getSeriesId(seriesReimbursement))) {
|
||||
seriesReimbursement.getData().setAll(model.getReimbursementChartData());
|
||||
} else if (getSeriesId(series).equals(getSeriesId(seriesTotalIssued))) {
|
||||
seriesTotalIssued.getData().setAll(model.getTotalIssuedChartData());
|
||||
applyReimbursement();
|
||||
} else if (getSeriesId(series).equals(getSeriesId(seriesTotalBurned))) {
|
||||
seriesTotalBurned.getData().setAll(model.getTotalBurnedChartData());
|
||||
applyTotalBurned();
|
||||
} else if (getSeriesId(series).equals(getSeriesId(seriesBsqTradeFee))) {
|
||||
applyBsqTradeFee();
|
||||
} else if (getSeriesId(series).equals(getSeriesId(seriesProofOfBurn))) {
|
||||
applyProofOfBurn();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -152,22 +177,54 @@ public class DaoChartView extends ChartView<DaoChartViewModel> {
|
|||
@Override
|
||||
protected void applyData() {
|
||||
if (activeSeries.contains(seriesTotalIssued)) {
|
||||
seriesTotalIssued.getData().setAll(model.getTotalIssuedChartData());
|
||||
}
|
||||
if (activeSeries.contains(seriesTotalBurned)) {
|
||||
seriesTotalBurned.getData().setAll(model.getTotalBurnedChartData());
|
||||
applyTotalIssued();
|
||||
}
|
||||
if (activeSeries.contains(seriesCompensation)) {
|
||||
seriesCompensation.getData().setAll(model.getCompensationChartData());
|
||||
applyCompensation();
|
||||
}
|
||||
if (activeSeries.contains(seriesReimbursement)) {
|
||||
seriesReimbursement.getData().setAll(model.getReimbursementChartData());
|
||||
applyReimbursement();
|
||||
}
|
||||
if (activeSeries.contains(seriesTotalBurned)) {
|
||||
applyTotalBurned();
|
||||
}
|
||||
if (activeSeries.contains(seriesBsqTradeFee)) {
|
||||
seriesBsqTradeFee.getData().setAll(model.getBsqTradeFeeChartData());
|
||||
applyBsqTradeFee();
|
||||
}
|
||||
if (activeSeries.contains(seriesProofOfBurn)) {
|
||||
applyProofOfBurn();
|
||||
}
|
||||
}
|
||||
|
||||
private void applyTotalIssued() {
|
||||
seriesTotalIssued.getData().setAll(model.getTotalIssuedChartData());
|
||||
compensationAmountProperty.set(model.getCompensationAmount());
|
||||
reimbursementAmountProperty.set(model.getReimbursementAmount());
|
||||
}
|
||||
|
||||
private void applyCompensation() {
|
||||
seriesCompensation.getData().setAll(model.getCompensationChartData());
|
||||
compensationAmountProperty.set(model.getCompensationAmount());
|
||||
}
|
||||
|
||||
private void applyReimbursement() {
|
||||
seriesReimbursement.getData().setAll(model.getReimbursementChartData());
|
||||
reimbursementAmountProperty.set(model.getReimbursementAmount());
|
||||
}
|
||||
|
||||
private void applyTotalBurned() {
|
||||
seriesTotalBurned.getData().setAll(model.getTotalBurnedChartData());
|
||||
bsqTradeFeeAmountProperty.set(model.getBsqTradeFeeAmount());
|
||||
proofOfBurnAmountProperty.set(model.getProofOfBurnAmount());
|
||||
}
|
||||
|
||||
private void applyBsqTradeFee() {
|
||||
seriesBsqTradeFee.getData().setAll(model.getBsqTradeFeeChartData());
|
||||
bsqTradeFeeAmountProperty.set(model.getBsqTradeFeeAmount());
|
||||
}
|
||||
|
||||
private void applyProofOfBurn() {
|
||||
seriesProofOfBurn.getData().setAll(model.getProofOfBurnChartData());
|
||||
}
|
||||
proofOfBurnAmountProperty.set(model.getProofOfBurnAmount());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue