Merge pull request #1204 from krzyczak/master

toggle bitcoin unit on clicking a bitcoin value label
This commit is contained in:
craigraw 2024-01-10 11:15:47 +02:00 committed by GitHub
commit e1d9d54da3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -10,19 +10,40 @@ import javafx.scene.control.MenuItem;
import javafx.scene.control.Tooltip; import javafx.scene.control.Tooltip;
import javafx.scene.input.Clipboard; import javafx.scene.input.Clipboard;
import javafx.scene.input.ClipboardContent; import javafx.scene.input.ClipboardContent;
import javafx.event.EventHandler;
import javafx.scene.input.MouseEvent;
public class CopyableCoinLabel extends CopyableLabel { public class CopyableCoinLabel extends CopyableLabel {
private final LongProperty valueProperty = new SimpleLongProperty(-1); private final LongProperty valueProperty = new SimpleLongProperty(-1);
private final Tooltip tooltip; private final Tooltip tooltip;
private final CoinContextMenu contextMenu; private final CoinContextMenu contextMenu;
private BitcoinUnit bitcoinUnit;
public CopyableCoinLabel() { public CopyableCoinLabel() {
this("Unknown"); this("Unknown");
} }
private final EventHandler<MouseEvent> toggleBitcoinUnit = event -> {
if(bitcoinUnit == null) {
bitcoinUnit = Config.get().getBitcoinUnit();
}
if(bitcoinUnit == BitcoinUnit.SATOSHIS) {
bitcoinUnit = BitcoinUnit.BTC;
} else {
bitcoinUnit = BitcoinUnit.SATOSHIS;
}
refresh(Config.get().getUnitFormat(), bitcoinUnit);
};
public CopyableCoinLabel(String text) { public CopyableCoinLabel(String text) {
super(text); super(text);
valueProperty().addListener((observable, oldValue, newValue) -> setValueAsText((Long)newValue, Config.get().getUnitFormat(), Config.get().getBitcoinUnit())); valueProperty().addListener((observable, oldValue, newValue) -> setValueAsText((Long)newValue, Config.get().getUnitFormat(), Config.get().getBitcoinUnit()));
setOnMouseClicked(toggleBitcoinUnit);
tooltip = new Tooltip(); tooltip = new Tooltip();
contextMenu = new CoinContextMenu(); contextMenu = new CoinContextMenu();
} }
@ -63,6 +84,8 @@ public class CopyableCoinLabel extends CopyableLabel {
unit = (value >= BitcoinUnit.getAutoThreshold() ? BitcoinUnit.BTC : BitcoinUnit.SATOSHIS); unit = (value >= BitcoinUnit.getAutoThreshold() ? BitcoinUnit.BTC : BitcoinUnit.SATOSHIS);
} }
this.bitcoinUnit = unit;
if(unit.equals(BitcoinUnit.BTC)) { if(unit.equals(BitcoinUnit.BTC)) {
tooltip.setText(satsValue); tooltip.setText(satsValue);
setText(btcValue); setText(btcValue);