diff --git a/desktop/src/main/java/bisq/desktop/bisq.css b/desktop/src/main/java/bisq/desktop/bisq.css index 9e92c8e1b9..8f4f570725 100644 --- a/desktop/src/main/java/bisq/desktop/bisq.css +++ b/desktop/src/main/java/bisq/desktop/bisq.css @@ -2075,6 +2075,17 @@ textfield */ -fx-text-fill: -bs-rd-error-red; } +.dao-kpi-big { + -fx-font-size: 1.923em; + -fx-text-fill: -bs-rd-black; + -fx-font-family: "IBM Plex Sans Light"; +} + +.dao-kpi-subtext { + -fx-text-fill: -bs-rd-font-light; + -fx-font-size: 0.923em; +} + /******************************************************************************************************************** * * * Notifications * diff --git a/desktop/src/main/java/bisq/desktop/main/dao/economy/dashboard/BsqDashboardView.java b/desktop/src/main/java/bisq/desktop/main/dao/economy/dashboard/BsqDashboardView.java index a84f32af7a..2bc6ad6c18 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/economy/dashboard/BsqDashboardView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/economy/dashboard/BsqDashboardView.java @@ -19,7 +19,6 @@ package bisq.desktop.main.dao.economy.dashboard; import bisq.desktop.common.view.ActivatableView; import bisq.desktop.common.view.FxmlView; -import bisq.desktop.components.TitledGroupBg; import bisq.desktop.util.FormBuilder; import bisq.core.dao.DaoFacade; @@ -75,9 +74,8 @@ import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; -import static bisq.desktop.util.FormBuilder.addTitledGroupBg; +import static bisq.desktop.util.FormBuilder.addLabelWithSubText; import static bisq.desktop.util.FormBuilder.addTopLabelReadOnlyTextField; -import static bisq.desktop.util.Layout.FIRST_ROW_DISTANCE; @@ -103,7 +101,8 @@ public class BsqDashboardView extends ActivatableView implements private XYChart.Series seriesBSQAdded, seriesBSQBurnt; private XYChart.Series seriesBSQPrice; - private TextField marketCapTextField, priceTextField, availableAmountTextField; + private TextField marketCapTextField, availableAmountTextField; + private Label marketPriceLabel; private Coin availableAmount; @@ -143,14 +142,11 @@ public class BsqDashboardView extends ActivatableView implements private void createKPIs() { - TitledGroupBg titledGroupBg = addTitledGroupBg(root, gridRow, 5, Res.get("dao.factsAndFigures.dashboard.marketPrice")); - titledGroupBg.getStyleClass().add("last"); + Tuple3 marketPriceBox = addLabelWithSubText(root, gridRow++, "0.004000 BSQ/BTC", "Latest BSQ/BTC trade price (in Bisq)"); + marketPriceLabel = marketPriceBox.first; + marketPriceLabel.getStyleClass().add("dao-kpi-big"); - Tuple3 marketPriceTuple = addTopLabelReadOnlyTextField(root, gridRow, Res.get("dao.factsAndFigures.dashboard.price"), - FIRST_ROW_DISTANCE); - priceTextField = marketPriceTuple.second; - - GridPane.setColumnSpan(marketPriceTuple.third, 2); + marketPriceBox.second.getStyleClass().add("dao-kpi-subtext"); marketCapTextField = addTopLabelReadOnlyTextField(root, ++gridRow, Res.get("dao.factsAndFigures.dashboard.marketCap")).second; @@ -258,6 +254,7 @@ public class BsqDashboardView extends ActivatableView implements GridPane.setRowIndex(chartPane, ++gridRow); GridPane.setColumnSpan(chartPane, 2); + GridPane.setMargin(chartPane, new Insets(10, 0, 0, 0)); root.getChildren().addAll(chartPane); } @@ -310,13 +307,16 @@ public class BsqDashboardView extends ActivatableView implements Optional optionalBsqPrice = priceFeedService.getBsqPrice(); if (optionalBsqPrice.isPresent()) { Price bsqPrice = optionalBsqPrice.get(); - priceTextField.setText(bsqFormatter.formatPrice(bsqPrice) + " BSQ/BTC"); + marketPriceLabel.setText(bsqFormatter.formatPrice(bsqPrice) + " BSQ/BTC"); marketCapTextField.setText(bsqFormatter.formatMarketCap(priceFeedService.getMarketPrice("BSQ"), priceFeedService.getMarketPrice(preferences.getPreferredTradeCurrency().getCode()), availableAmount)); + + updateChartData(); + } else { - priceTextField.setText(Res.get("shared.na")); + marketPriceLabel.setText(Res.get("shared.na")); marketCapTextField.setText(Res.get("shared.na")); } } diff --git a/desktop/src/main/java/bisq/desktop/main/dao/economy/supply/SupplyView.java b/desktop/src/main/java/bisq/desktop/main/dao/economy/supply/SupplyView.java index a10f1a93b3..1d28e15ab0 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/economy/supply/SupplyView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/economy/supply/SupplyView.java @@ -122,7 +122,6 @@ public class SupplyView extends ActivatableView implements DaoSt daoFacade.addBsqStateListener(this); updateWithBsqBlockChainData(); - updateBSQTokenData(); } @Override @@ -258,6 +257,7 @@ public class SupplyView extends ActivatableView implements DaoSt GridPane.setColumnSpan(chartPane, 2); GridPane.setRowIndex(chartPane, ++gridRow); + GridPane.setMargin(chartPane, new Insets(10, 0, 0, 0)); root.getChildren().add(chartPane); } @@ -282,9 +282,11 @@ public class SupplyView extends ActivatableView implements DaoSt totalUnlockingAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(totalUnlockingAmount)); totalUnlockedAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(totalUnlockedAmount)); totalConfiscatedAmountTextField.setText(bsqFormatter.formatAmountWithGroupSeparatorAndCode(totalConfiscatedAmount)); + + updateCharts(); } - private void updateBSQTokenData() { + private void updateCharts() { seriesBSQIssued.getData().clear(); seriesBSQBurnt.getData().clear(); diff --git a/desktop/src/main/java/bisq/desktop/util/FormBuilder.java b/desktop/src/main/java/bisq/desktop/util/FormBuilder.java index d5f9eb11d6..3052811644 100644 --- a/desktop/src/main/java/bisq/desktop/util/FormBuilder.java +++ b/desktop/src/main/java/bisq/desktop/util/FormBuilder.java @@ -141,6 +141,28 @@ public class FormBuilder { return label; } + /////////////////////////////////////////////////////////////////////////////////////////// + // Label + Subtext + /////////////////////////////////////////////////////////////////////////////////////////// + + public static Tuple3 addLabelWithSubText(GridPane gridPane, int rowIndex, String title, String description) { + return addLabelWithSubText(gridPane, rowIndex, title, description, 0); + } + + public static Tuple3 addLabelWithSubText(GridPane gridPane, int rowIndex, String title, String description, double top) { + Label label = new AutoTooltipLabel(title); + Label subText = new AutoTooltipLabel(description); + + VBox vBox = new VBox(); + vBox.getChildren().setAll(label, subText); + + GridPane.setRowIndex(vBox, rowIndex); + GridPane.setMargin(vBox, new Insets(top, 0, 0, 0)); + gridPane.getChildren().add(vBox); + + return new Tuple3<>(label, subText, vBox); + } + /////////////////////////////////////////////////////////////////////////////////////////// // Multiline Label