From 9668dd2369a0ad44861d9cb885147b77608cce42 Mon Sep 17 00:00:00 2001 From: woodser Date: Fri, 4 Apr 2025 13:55:25 -0400 Subject: [PATCH] populate trigger price and extra info on duplicate or edit offer --- .../haveno/desktop/main/offer/MutableOfferView.java | 1 + .../desktop/main/offer/MutableOfferViewModel.java | 8 ++++++-- .../duplicateoffer/DuplicateOfferDataModel.java | 11 +++++++---- .../duplicateoffer/DuplicateOfferViewModel.java | 11 +++++++++++ .../main/portfolio/editoffer/EditOfferDataModel.java | 5 ++++- 5 files changed, 29 insertions(+), 7 deletions(-) diff --git a/desktop/src/main/java/haveno/desktop/main/offer/MutableOfferView.java b/desktop/src/main/java/haveno/desktop/main/offer/MutableOfferView.java index 1ed15ad845..abdd2d0ec7 100644 --- a/desktop/src/main/java/haveno/desktop/main/offer/MutableOfferView.java +++ b/desktop/src/main/java/haveno/desktop/main/offer/MutableOfferView.java @@ -262,6 +262,7 @@ public abstract class MutableOfferView> exten buyerAsTakerWithoutDepositSlider.setSelected(model.dataModel.getBuyerAsTakerWithoutDeposit().get()); + triggerPriceInputTextField.setText(model.triggerPrice.get()); extraInfoTextArea.setText(model.dataModel.extraInfo.get()); } } diff --git a/desktop/src/main/java/haveno/desktop/main/offer/MutableOfferViewModel.java b/desktop/src/main/java/haveno/desktop/main/offer/MutableOfferViewModel.java index 6d087b27ea..d49b4f2d15 100644 --- a/desktop/src/main/java/haveno/desktop/main/offer/MutableOfferViewModel.java +++ b/desktop/src/main/java/haveno/desktop/main/offer/MutableOfferViewModel.java @@ -501,7 +501,10 @@ public abstract class MutableOfferViewModel ext }; extraInfoStringListener = (ov, oldValue, newValue) -> { - onExtraInfoTextAreaChanged(); + if (newValue != null) { + extraInfo.set(newValue); + onExtraInfoTextAreaChanged(); + } }; isWalletFundedListener = (ov, oldValue, newValue) -> updateButtonDisableState(); @@ -582,6 +585,7 @@ public abstract class MutableOfferViewModel ext dataModel.getVolume().removeListener(volumeListener); dataModel.getSecurityDepositPct().removeListener(securityDepositAsDoubleListener); dataModel.getBuyerAsTakerWithoutDeposit().removeListener(buyerAsTakerWithoutDepositListener); + dataModel.getExtraInfo().removeListener(extraInfoStringListener); //dataModel.feeFromFundingTxProperty.removeListener(feeFromFundingTxListener); dataModel.getIsXmrWalletFunded().removeListener(isWalletFundedListener); @@ -843,7 +847,7 @@ public abstract class MutableOfferViewModel ext extraInfoValidationResult.set(getExtraInfoValidationResult()); updateButtonDisableState(); if (extraInfoValidationResult.get().isValid) { - dataModel.setExtraInfo(extraInfo.get()); + setExtraInfoToModel(); } } diff --git a/desktop/src/main/java/haveno/desktop/main/portfolio/duplicateoffer/DuplicateOfferDataModel.java b/desktop/src/main/java/haveno/desktop/main/portfolio/duplicateoffer/DuplicateOfferDataModel.java index 21ab8a7788..5828b94348 100644 --- a/desktop/src/main/java/haveno/desktop/main/portfolio/duplicateoffer/DuplicateOfferDataModel.java +++ b/desktop/src/main/java/haveno/desktop/main/portfolio/duplicateoffer/DuplicateOfferDataModel.java @@ -26,6 +26,7 @@ import haveno.core.locale.TradeCurrency; import haveno.core.offer.CreateOfferService; import haveno.core.offer.Offer; import haveno.core.offer.OfferUtil; +import haveno.core.offer.OpenOffer; import haveno.core.offer.OpenOfferManager; import haveno.core.payment.PaymentAccount; import haveno.core.provider.price.PriceFeedService; @@ -89,13 +90,15 @@ class DuplicateOfferDataModel extends MutableOfferDataModel { setPrice(offer.getPrice()); setVolume(offer.getVolume()); setUseMarketBasedPrice(offer.isUseMarketBasedPrice()); - setBuyerAsTakerWithoutDeposit(offer.hasBuyerAsTakerWithoutDeposit()); - - setSecurityDepositPct(getSecurityAsPercent(offer)); - if (offer.isUseMarketBasedPrice()) { setMarketPriceMarginPct(offer.getMarketPriceMarginPct()); } + setBuyerAsTakerWithoutDeposit(offer.hasBuyerAsTakerWithoutDeposit()); + setSecurityDepositPct(getSecurityAsPercent(offer)); + setExtraInfo(offer.getOfferExtraInfo()); + + OpenOffer openOffer = openOfferManager.getOpenOffer(offer.getId()).orElse(null); + if (openOffer != null) setTriggerPrice(openOffer.getTriggerPrice()); } private double getSecurityAsPercent(Offer offer) { diff --git a/desktop/src/main/java/haveno/desktop/main/portfolio/duplicateoffer/DuplicateOfferViewModel.java b/desktop/src/main/java/haveno/desktop/main/portfolio/duplicateoffer/DuplicateOfferViewModel.java index 08c5e18f9e..e6e2cf883f 100644 --- a/desktop/src/main/java/haveno/desktop/main/portfolio/duplicateoffer/DuplicateOfferViewModel.java +++ b/desktop/src/main/java/haveno/desktop/main/portfolio/duplicateoffer/DuplicateOfferViewModel.java @@ -29,6 +29,7 @@ import haveno.core.payment.validation.XmrValidator; import haveno.core.provider.price.PriceFeedService; import haveno.core.user.Preferences; import haveno.core.util.FormattingUtils; +import haveno.core.util.PriceUtil; import haveno.core.util.coin.CoinFormatter; import haveno.core.util.validation.AmountValidator4Decimals; import haveno.core.util.validation.AmountValidator8Decimals; @@ -76,6 +77,16 @@ class DuplicateOfferViewModel extends MutableOfferViewModel 0) { + triggerPrice.set(PriceUtil.formatMarketPrice(triggerPriceAsLong, dataModel.getCurrencyCode())); + } else { + triggerPrice.set(""); + } + onTriggerPriceTextFieldChanged(); + triggerFocusOutOnAmountFields(); onFocusOutPriceAsPercentageTextField(true, false); } diff --git a/desktop/src/main/java/haveno/desktop/main/portfolio/editoffer/EditOfferDataModel.java b/desktop/src/main/java/haveno/desktop/main/portfolio/editoffer/EditOfferDataModel.java index 151a72c0d7..1e7f358572 100644 --- a/desktop/src/main/java/haveno/desktop/main/portfolio/editoffer/EditOfferDataModel.java +++ b/desktop/src/main/java/haveno/desktop/main/portfolio/editoffer/EditOfferDataModel.java @@ -137,6 +137,9 @@ class EditOfferDataModel extends MutableOfferDataModel { securityDepositPct.set(securityDepositPercent); allowAmountUpdate = false; + + triggerPrice = openOffer.getTriggerPrice(); + extraInfo.set(offer.getOfferExtraInfo()); } @Override @@ -164,10 +167,10 @@ class EditOfferDataModel extends MutableOfferDataModel { setPrice(offer.getPrice()); setVolume(offer.getVolume()); setUseMarketBasedPrice(offer.isUseMarketBasedPrice()); - setTriggerPrice(openOffer.getTriggerPrice()); if (offer.isUseMarketBasedPrice()) { setMarketPriceMarginPct(offer.getMarketPriceMarginPct()); } + setTriggerPrice(openOffer.getTriggerPrice()); setExtraInfo(offer.getOfferExtraInfo()); }