mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 15:10:44 +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.genesisIssueAmount=BSQ issued at genesis transaction
|
||||||
dao.factsAndFigures.supply.compRequestIssueAmount=BSQ issued for compensation requests
|
dao.factsAndFigures.supply.compRequestIssueAmount=BSQ issued for compensation requests
|
||||||
dao.factsAndFigures.supply.reimbursementAmount=BSQ issued for reimbursement 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.totalBurned=Total burned BSQ
|
||||||
dao.factsAndFigures.supply.chart.tradeFee.toolTip={0}\n{1}
|
dao.factsAndFigures.supply.chart.tradeFee.toolTip={0}\n{1}
|
||||||
dao.factsAndFigures.supply.burnt=BSQ burnt
|
dao.factsAndFigures.supply.burnt=BSQ burnt
|
||||||
|
|
|
@ -43,6 +43,9 @@ import javafx.scene.layout.VBox;
|
||||||
|
|
||||||
import javafx.geometry.Insets;
|
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.addTitledGroupBg;
|
||||||
import static bisq.desktop.util.FormBuilder.addTopLabelReadOnlyTextField;
|
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 DaoChartView daoChartView;
|
||||||
private final BsqFormatter bsqFormatter;
|
private final BsqFormatter bsqFormatter;
|
||||||
|
|
||||||
private TextField genesisIssueAmountTextField, compRequestIssueAmountTextField, reimbursementAmountTextField,
|
private TextField genesisIssueAmountTextField, compensationAmountTextField, reimbursementAmountTextField,
|
||||||
totalBurntBsqTradeFeeTextField, totalLockedUpAmountTextField, totalUnlockingAmountTextField,
|
bsqTradeFeeAmountTextField, totalLockedUpAmountTextField, totalUnlockingAmountTextField,
|
||||||
totalUnlockedAmountTextField, totalConfiscatedAmountTextField, totalProofOfBurnAmountTextField;
|
totalUnlockedAmountTextField, totalConfiscatedAmountTextField, proofOfBurnAmountTextField;
|
||||||
private int gridRow = 0;
|
private int gridRow = 0;
|
||||||
|
|
||||||
|
|
||||||
|
@ -80,17 +83,34 @@ public class SupplyView extends ActivatableView<GridPane, Void> implements DaoSt
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void activate() {
|
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();
|
Coin issuedAmountFromGenesis = daoFacade.getGenesisTotalSupply();
|
||||||
genesisIssueAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(issuedAmountFromGenesis));
|
genesisIssueAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(issuedAmountFromGenesis));
|
||||||
|
|
||||||
updateWithBsqBlockChainData();
|
updateWithBsqBlockChainData();
|
||||||
|
|
||||||
daoFacade.addBsqStateListener(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void deactivate() {
|
protected void deactivate() {
|
||||||
daoFacade.removeBsqStateListener(this);
|
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;
|
genesisIssueAmountTextField = genesisAmountTuple.second;
|
||||||
GridPane.setColumnSpan(genesisAmountTuple.third, 2);
|
GridPane.setColumnSpan(genesisAmountTuple.third, 2);
|
||||||
|
|
||||||
compRequestIssueAmountTextField = addTopLabelReadOnlyTextField(root, ++gridRow,
|
compensationAmountTextField = addTopLabelReadOnlyTextField(root, ++gridRow,
|
||||||
Res.get("dao.factsAndFigures.supply.compRequestIssueAmount")).second;
|
Res.get("dao.factsAndFigures.supply.compRequestIssueAmount")).second;
|
||||||
reimbursementAmountTextField = addTopLabelReadOnlyTextField(root, gridRow, 1,
|
reimbursementAmountTextField = addTopLabelReadOnlyTextField(root, gridRow, 1,
|
||||||
Res.get("dao.factsAndFigures.supply.reimbursementAmount")).second;
|
Res.get("dao.factsAndFigures.supply.reimbursementAmount")).second;
|
||||||
|
|
||||||
addTitledGroupBg(root, ++gridRow, 1, Res.get("dao.factsAndFigures.supply.burnt"), Layout.GROUP_DISTANCE_WITHOUT_SEPARATOR);
|
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;
|
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;
|
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() {
|
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());
|
Coin totalLockedUpAmount = Coin.valueOf(daoFacade.getTotalLockupAmount());
|
||||||
totalLockedUpAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(totalLockedUpAmount));
|
totalLockedUpAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(totalLockedUpAmount));
|
||||||
|
|
||||||
|
@ -207,4 +206,8 @@ public class SupplyView extends ActivatableView<GridPane, Void> implements DaoSt
|
||||||
Coin totalConfiscatedAmount = Coin.valueOf(daoFacade.getTotalAmountOfConfiscatedTxOutputs());
|
Coin totalConfiscatedAmount = Coin.valueOf(daoFacade.getTotalAmountOfConfiscatedTxOutputs());
|
||||||
totalConfiscatedAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(totalConfiscatedAmount));
|
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.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.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -32,6 +36,11 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class DaoChartView extends ChartView<DaoChartViewModel> {
|
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,
|
private XYChart.Series<Number, Number> seriesBsqTradeFee, seriesProofOfBurn, seriesCompensation,
|
||||||
seriesReimbursement, seriesTotalIssued, seriesTotalBurned;
|
seriesReimbursement, seriesTotalIssued, seriesTotalBurned;
|
||||||
|
|
||||||
|
@ -46,20 +55,36 @@ public class DaoChartView extends ChartView<DaoChartViewModel> {
|
||||||
// API Total amounts
|
// API Total amounts
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
public long getCompensationAmount() {
|
public long getCompensationAmountProperty() {
|
||||||
return model.getCompensationAmount();
|
return model.getCompensationAmount();
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getReimbursementAmount() {
|
public ReadOnlyLongProperty compensationAmountProperty() {
|
||||||
return model.getReimbursementAmount();
|
if (compensationAmountProperty.get() == 0) {
|
||||||
|
compensationAmountProperty.set(model.getCompensationAmount());
|
||||||
|
}
|
||||||
|
return compensationAmountProperty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getBsqTradeFeeAmount() {
|
public ReadOnlyLongProperty reimbursementAmountProperty() {
|
||||||
return model.getBsqTradeFeeAmount();
|
if (reimbursementAmountProperty.get() == 0) {
|
||||||
|
reimbursementAmountProperty.set(model.getReimbursementAmount());
|
||||||
|
}
|
||||||
|
return reimbursementAmountProperty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getProofOfBurnAmount() {
|
public ReadOnlyLongProperty bsqTradeFeeAmountProperty() {
|
||||||
return model.getProofOfBurnAmount();
|
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) {
|
protected void activateSeries(XYChart.Series<Number, Number> series) {
|
||||||
super.activateSeries(series);
|
super.activateSeries(series);
|
||||||
|
|
||||||
if (getSeriesId(series).equals(getSeriesId(seriesBsqTradeFee))) {
|
if (getSeriesId(series).equals(getSeriesId(seriesTotalIssued))) {
|
||||||
seriesBsqTradeFee.getData().setAll(model.getBsqTradeFeeChartData());
|
applyTotalIssued();
|
||||||
} else if (getSeriesId(series).equals(getSeriesId(seriesCompensation))) {
|
} else if (getSeriesId(series).equals(getSeriesId(seriesCompensation))) {
|
||||||
seriesCompensation.getData().setAll(model.getCompensationChartData());
|
applyCompensation();
|
||||||
} else if (getSeriesId(series).equals(getSeriesId(seriesProofOfBurn))) {
|
|
||||||
seriesProofOfBurn.getData().setAll(model.getProofOfBurnChartData());
|
|
||||||
} else if (getSeriesId(series).equals(getSeriesId(seriesReimbursement))) {
|
} else if (getSeriesId(series).equals(getSeriesId(seriesReimbursement))) {
|
||||||
seriesReimbursement.getData().setAll(model.getReimbursementChartData());
|
applyReimbursement();
|
||||||
} else if (getSeriesId(series).equals(getSeriesId(seriesTotalIssued))) {
|
|
||||||
seriesTotalIssued.getData().setAll(model.getTotalIssuedChartData());
|
|
||||||
} else if (getSeriesId(series).equals(getSeriesId(seriesTotalBurned))) {
|
} 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
|
@Override
|
||||||
protected void applyData() {
|
protected void applyData() {
|
||||||
if (activeSeries.contains(seriesTotalIssued)) {
|
if (activeSeries.contains(seriesTotalIssued)) {
|
||||||
seriesTotalIssued.getData().setAll(model.getTotalIssuedChartData());
|
applyTotalIssued();
|
||||||
}
|
|
||||||
if (activeSeries.contains(seriesTotalBurned)) {
|
|
||||||
seriesTotalBurned.getData().setAll(model.getTotalBurnedChartData());
|
|
||||||
}
|
}
|
||||||
if (activeSeries.contains(seriesCompensation)) {
|
if (activeSeries.contains(seriesCompensation)) {
|
||||||
seriesCompensation.getData().setAll(model.getCompensationChartData());
|
applyCompensation();
|
||||||
}
|
}
|
||||||
if (activeSeries.contains(seriesReimbursement)) {
|
if (activeSeries.contains(seriesReimbursement)) {
|
||||||
seriesReimbursement.getData().setAll(model.getReimbursementChartData());
|
applyReimbursement();
|
||||||
|
}
|
||||||
|
if (activeSeries.contains(seriesTotalBurned)) {
|
||||||
|
applyTotalBurned();
|
||||||
}
|
}
|
||||||
if (activeSeries.contains(seriesBsqTradeFee)) {
|
if (activeSeries.contains(seriesBsqTradeFee)) {
|
||||||
seriesBsqTradeFee.getData().setAll(model.getBsqTradeFeeChartData());
|
applyBsqTradeFee();
|
||||||
}
|
}
|
||||||
if (activeSeries.contains(seriesProofOfBurn)) {
|
if (activeSeries.contains(seriesProofOfBurn)) {
|
||||||
seriesProofOfBurn.getData().setAll(model.getProofOfBurnChartData());
|
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