package lighthouse.utils; import javafx.beans.property.SimpleStringProperty; import javafx.beans.value.ObservableNumberValue; import org.bitcoinj.core.Coin; import org.bitcoinj.utils.MonetaryFormat; /** A simple class that reactively formats a string based on an observable amount of satoshis */ public class ReactiveCoinFormatter extends SimpleStringProperty { public ReactiveCoinFormatter(String format, MonetaryFormat monetaryFormat, ObservableNumberValue target) { calculate(format, monetaryFormat, target); target.addListener(obv -> calculate(format, monetaryFormat, target)); } private void calculate(String format, MonetaryFormat monetaryFormat, ObservableNumberValue target) { set(String.format(format, monetaryFormat.format(Coin.valueOf(target.longValue())))); } }