include amount in transaction pie chart tooltip
package com.sparrowwallet.sparrow.transaction;
import com.google.common.eventbus.Subscribe;
+import com.sparrowwallet.drongo.BitcoinUnit;
import com.sparrowwallet.drongo.address.Address;
import com.sparrowwallet.drongo.protocol.NonStandardScriptException;
+import com.sparrowwallet.drongo.protocol.Transaction;
import com.sparrowwallet.drongo.protocol.TransactionOutput;
import com.sparrowwallet.sparrow.BaseController;
import com.sparrowwallet.sparrow.EventManager;
import com.sparrowwallet.sparrow.TransactionTabData;
+import com.sparrowwallet.sparrow.control.CoinLabel;
import com.sparrowwallet.sparrow.event.TransactionTabsClosedEvent;
+import com.sparrowwallet.sparrow.io.Config;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.chart.PieChart;
@@ -18,6 +22,7 @@ import javafx.scene.input.Clipboard;
import javafx.scene.input.ClipboardContent;
import java.util.List;
+import java.util.Locale;
public abstract class TransactionFormController extends BaseController {
private static final int MAX_PIE_SEGMENTS = 200;
@@ -64,7 +69,9 @@ public abstract class TransactionFormController extends BaseController {
pie.getData().forEach(data -> {
Tooltip tooltip = new Tooltip();
double percent = 100.0 * (data.getPieValue() / totalSum);
- tooltip.setText(data.getName() + " " + String.format("%.1f", percent) + "%");
+ String satsValue = String.format(Locale.ENGLISH, "%,d", (long)data.getPieValue()) + " sats";
+ String btcValue = CoinLabel.BTC_FORMAT.format(data.getPieValue() / Transaction.SATOSHIS_PER_BITCOIN) + " BTC";
+ tooltip.setText(data.getName() + "\n" + (Config.get().getBitcoinUnit() == BitcoinUnit.BTC ? btcValue : satsValue) + " (" + String.format("%.1f", percent) + "%)");
Tooltip.install(data.getNode(), tooltip);
data.pieValueProperty().addListener((observable, oldValue, newValue) -> tooltip.setText(newValue + "%"));
});
