Split up edit open offer process in two steps

This commit is contained in:
Christoph Atteneder 2018-04-17 11:04:52 +02:00
parent 96beeb2dbb
commit 6e50e53e13
No known key found for this signature in database
GPG key ID: CD5DC1C529CDFD3B
3 changed files with 40 additions and 10 deletions

View file

@ -43,7 +43,7 @@ import bisq.common.handlers.ResultHandler;
import com.google.inject.Inject;
public class EditOpenOfferDataModel extends EditableOfferDataModel {
class EditOpenOfferDataModel extends EditableOfferDataModel {
private OpenOffer openOffer;
@ -68,6 +68,10 @@ public class EditOpenOfferDataModel extends EditableOfferDataModel {
if (offer.isUseMarketBasedPrice()) setMarketPriceMargin(offer.getMarketPriceMargin());
}
public void startEditOffer(ErrorMessageHandler errorMessageHandler) {
openOfferManager.editOpenOfferStart(openOffer, () -> {}, errorMessageHandler);
}
public void onPublishOffer(ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
final OfferPayload offerPayload = openOffer.getOffer().getOfferPayload();
final OfferPayload editedPayload = new OfferPayload(offerPayload.getId(),
@ -113,6 +117,10 @@ public class EditOpenOfferDataModel extends EditableOfferDataModel {
editedOffer.setPriceFeedService(priceFeedService);
editedOffer.setState(Offer.State.AVAILABLE);
openOfferManager.editOpenOffer(openOffer, editedOffer, resultHandler, errorMessageHandler);
openOfferManager.editOpenOfferPublish(editedOffer, resultHandler, errorMessageHandler);
}
public void cancelEditOffer(ErrorMessageHandler errorMessageHandler) {
openOfferManager.editOpenOfferCancel(openOffer, () -> {}, errorMessageHandler);
}
}

View file

@ -21,8 +21,6 @@ import bisq.desktop.Navigation;
import bisq.desktop.common.view.FxmlView;
import bisq.desktop.components.BusyAnimation;
import bisq.desktop.main.MainView;
import bisq.desktop.main.funds.FundsView;
import bisq.desktop.main.funds.withdrawal.WithdrawalView;
import bisq.desktop.main.offer.EditableOfferView;
import bisq.desktop.main.overlays.popups.Popup;
import bisq.desktop.main.overlays.windows.OfferDetailsWindow;
@ -30,7 +28,6 @@ import bisq.desktop.main.portfolio.PortfolioView;
import bisq.desktop.main.portfolio.openoffer.OpenOffersView;
import bisq.desktop.util.BSFormatter;
import bisq.desktop.util.BsqFormatter;
import bisq.desktop.util.FormBuilder;
import bisq.desktop.util.Transitions;
import bisq.core.locale.CurrencyUtil;
@ -120,11 +117,12 @@ public class EditOpenOfferView extends EditableOfferView<EditOpenOfferViewModel>
.dontShowAgainId(key)
.show();
spinnerInfoLabel.setText("");
onClose();
close();
}, (message) -> {
log.error(message);
spinnerInfoLabel.setText("");
new Popup<>().warning(Res.get("offerbook.editOffer.failed", message)).show();
new Popup<>().warning(Res.get("offerbook.editOffer.publishFailed", message)).show();
});
});
}
@ -141,10 +139,27 @@ public class EditOpenOfferView extends EditableOfferView<EditOpenOfferViewModel>
updateMarketPriceAvailable();
updateElementsWithDirection();
model.startEditOffer(errorMessage -> {
log.error(errorMessage);
new Popup<>().warning(Res.get("offerbook.editOffer.startFailed", errorMessage))
.onClose(() -> {
close();
})
.show();
});
model.invalidateMarketPriceMargin();
model.invalidatePrice();
}
@Override
public void onClose() {
model.cancelEditOffer(errorMessage -> {
log.error(errorMessage);
new Popup<>().warning(Res.get("offerbook.editOffer.cancelFailed", errorMessage)).show();
});
}
@Override
protected void deactivate() {
super.deactivate();
@ -152,11 +167,11 @@ public class EditOpenOfferView extends EditableOfferView<EditOpenOfferViewModel>
removeBindings();
}
private void addBindings(){
private void addBindings() {
confirmButton.disableProperty().bind(model.isNextButtonDisabled);
}
private void removeBindings(){
private void removeBindings() {
confirmButton.disableProperty().unbind();
}

View file

@ -29,7 +29,6 @@ import bisq.desktop.util.validation.FiatVolumeValidator;
import bisq.desktop.util.validation.SecurityDepositValidator;
import bisq.core.btc.wallet.WalletsSetup;
import bisq.core.monetary.Price;
import bisq.core.offer.OpenOffer;
import bisq.core.provider.price.PriceFeedService;
import bisq.core.user.Preferences;
@ -41,7 +40,7 @@ import bisq.common.handlers.ResultHandler;
import com.google.inject.Inject;
public class EditOpenOfferViewModel extends EditableOfferViewModel<EditOpenOfferDataModel> {
class EditOpenOfferViewModel extends EditableOfferViewModel<EditOpenOfferDataModel> {
@Inject
public EditOpenOfferViewModel(EditOpenOfferDataModel dataModel, FiatVolumeValidator fiatVolumeValidator, FiatPriceValidator fiatPriceValidator, AltcoinValidator altcoinValidator, BtcValidator btcValidator, BsqValidator bsqValidator, SecurityDepositValidator securityDepositValidator, P2PService p2PService, WalletsSetup walletsSetup, PriceFeedService priceFeedService, Navigation navigation, Preferences preferences, BSFormatter btcFormatter, BsqFormatter bsqFormatter) {
@ -71,4 +70,12 @@ public class EditOpenOfferViewModel extends EditableOfferViewModel<EditOpenOffer
price.set(btcFormatter.formatPrice(null));
price.set(btcFormatter.formatPrice(dataModel.getPrice().get()));
}
public void startEditOffer(ErrorMessageHandler errorMessageHandler) {
dataModel.startEditOffer(errorMessageHandler);
}
public void cancelEditOffer(ErrorMessageHandler errorMessageHandler) {
dataModel.cancelEditOffer(errorMessageHandler);
}
}