mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 15:10:44 +01:00
Fix issue with deactivated offers getting published after editing
- Add check if editedOpenOffer is not deactivated to avoid republishing - Use errorMessageHandler instead of IllegalStateException. We can discuss if you would prefer that style but so far we did not throw exceptions to the UI but rather use error handlers. - Small cleanups
This commit is contained in:
parent
75e616f9de
commit
3b91f08ce4
3 changed files with 17 additions and 30 deletions
|
@ -105,7 +105,7 @@ public class PortfolioView extends ActivatableViewAndModel<TabPane, Activatable>
|
||||||
navigation.navigateTo(MainView.class, PortfolioView.class, EditOpenOfferView.class);
|
navigation.navigateTo(MainView.class, PortfolioView.class, EditOpenOfferView.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oldValue != null && oldValue == editOpenOfferTab && editOpenOfferView != null)
|
if (oldValue != null && oldValue == editOpenOfferTab)
|
||||||
editOpenOfferView.onTabSelected(false);
|
editOpenOfferView.onTabSelected(false);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -113,10 +113,8 @@ public class PortfolioView extends ActivatableViewAndModel<TabPane, Activatable>
|
||||||
tabListChangeListener = change -> {
|
tabListChangeListener = change -> {
|
||||||
change.next();
|
change.next();
|
||||||
List<? extends Tab> removedTabs = change.getRemoved();
|
List<? extends Tab> removedTabs = change.getRemoved();
|
||||||
if (removedTabs.size() == 1) {
|
if (removedTabs.size() == 1 && removedTabs.get(0).equals(editOpenOfferTab))
|
||||||
if (removedTabs.get(0).equals(editOpenOfferTab))
|
onEditOpenOfferRemoved();
|
||||||
onEditOpenOfferRemoved();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,6 +171,7 @@ public class PortfolioView extends ActivatableViewAndModel<TabPane, Activatable>
|
||||||
|
|
||||||
private void loadView(Class<? extends View> viewClass) {
|
private void loadView(Class<? extends View> viewClass) {
|
||||||
// we want to get activate/deactivate called, so we remove the old view on tab change
|
// we want to get activate/deactivate called, so we remove the old view on tab change
|
||||||
|
// TODO Don't understand the check for currentTab != editOpenOfferTab
|
||||||
if (currentTab != null && currentTab != editOpenOfferTab)
|
if (currentTab != null && currentTab != editOpenOfferTab)
|
||||||
currentTab.setContent(null);
|
currentTab.setContent(null);
|
||||||
|
|
||||||
|
@ -189,7 +188,6 @@ public class PortfolioView extends ActivatableViewAndModel<TabPane, Activatable>
|
||||||
} else if (view instanceof EditOpenOfferView) {
|
} else if (view instanceof EditOpenOfferView) {
|
||||||
if (openOffer != null) {
|
if (openOffer != null) {
|
||||||
if (editOpenOfferView == null) {
|
if (editOpenOfferView == null) {
|
||||||
|
|
||||||
editOpenOfferView = (EditOpenOfferView) view;
|
editOpenOfferView = (EditOpenOfferView) view;
|
||||||
editOpenOfferView.initWithData(openOffer);
|
editOpenOfferView.initWithData(openOffer);
|
||||||
editOpenOfferTab = new Tab(Res.get("portfolio.tab.editOpenOffer"));
|
editOpenOfferTab = new Tab(Res.get("portfolio.tab.editOpenOffer"));
|
||||||
|
@ -206,7 +204,6 @@ public class PortfolioView extends ActivatableViewAndModel<TabPane, Activatable>
|
||||||
view = viewLoader.load(OpenOffersView.class);
|
view = viewLoader.load(OpenOffersView.class);
|
||||||
selectOpenOffersView((OpenOffersView) view);
|
selectOpenOffersView((OpenOffersView) view);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
currentTab.setContent(view.getRoot());
|
currentTab.setContent(view.getRoot());
|
||||||
|
@ -217,17 +214,13 @@ public class PortfolioView extends ActivatableViewAndModel<TabPane, Activatable>
|
||||||
openOffersView = view;
|
openOffersView = view;
|
||||||
currentTab = openOffersTab;
|
currentTab = openOffersTab;
|
||||||
|
|
||||||
OpenOfferActionHandler openOfferActionHandler = new OpenOfferActionHandler() {
|
OpenOfferActionHandler openOfferActionHandler = openOffer -> {
|
||||||
@Override
|
if (!editOpenOfferViewOpen) {
|
||||||
public void onEditOpenOffer(OpenOffer openOffer) {
|
editOpenOfferViewOpen = true;
|
||||||
if (!editOpenOfferViewOpen) {
|
PortfolioView.this.openOffer = openOffer;
|
||||||
PortfolioView.this.editOpenOfferViewOpen = true;
|
navigation.navigateTo(MainView.class, PortfolioView.this.getClass(), EditOpenOfferView.class);
|
||||||
PortfolioView.this.openOffer = openOffer;
|
} else {
|
||||||
PortfolioView.this.navigation.navigateTo(MainView.class, PortfolioView.this.getClass(),
|
log.error("You have already a \"Edit Offer\" tab open.");
|
||||||
EditOpenOfferView.class);
|
|
||||||
} else {
|
|
||||||
log.error("You have already a \"Edit Offer\" tab open.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
openOffersView.setOpenOfferActionHandler(openOfferActionHandler);
|
openOffersView.setOpenOfferActionHandler(openOfferActionHandler);
|
||||||
|
|
|
@ -38,8 +38,6 @@ import bisq.core.user.DontShowAgainLookup;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIcon;
|
|
||||||
|
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
|
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
|
@ -61,6 +59,10 @@ import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import static bisq.desktop.util.FormBuilder.getIconButton;
|
import static bisq.desktop.util.FormBuilder.getIconButton;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIcon;
|
||||||
|
|
||||||
@FxmlView
|
@FxmlView
|
||||||
public class OpenOffersView extends ActivatableViewAndModel<VBox, OpenOffersViewModel> {
|
public class OpenOffersView extends ActivatableViewAndModel<VBox, OpenOffersViewModel> {
|
||||||
|
|
||||||
|
|
|
@ -51,11 +51,7 @@ class OpenOffersViewModel extends ActivatableWithDataModel<OpenOffersDataModel>
|
||||||
}
|
}
|
||||||
|
|
||||||
void onActivateOpenOffer(OpenOffer openOffer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
|
void onActivateOpenOffer(OpenOffer openOffer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
|
||||||
try {
|
dataModel.onActivateOpenOffer(openOffer, resultHandler, errorMessageHandler);
|
||||||
dataModel.onActivateOpenOffer(openOffer, resultHandler, errorMessageHandler);
|
|
||||||
} catch (IllegalStateException exception) {
|
|
||||||
errorMessageHandler.handleErrorMessage(exception.getMessage());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void onDeactivateOpenOffer(OpenOffer openOffer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
|
void onDeactivateOpenOffer(OpenOffer openOffer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
|
||||||
|
@ -63,11 +59,7 @@ class OpenOffersViewModel extends ActivatableWithDataModel<OpenOffersDataModel>
|
||||||
}
|
}
|
||||||
|
|
||||||
void onRemoveOpenOffer(OpenOffer openOffer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
|
void onRemoveOpenOffer(OpenOffer openOffer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
|
||||||
try {
|
dataModel.onRemoveOpenOffer(openOffer, resultHandler, errorMessageHandler);
|
||||||
dataModel.onRemoveOpenOffer(openOffer, resultHandler, errorMessageHandler);
|
|
||||||
} catch (IllegalStateException exception) {
|
|
||||||
errorMessageHandler.handleErrorMessage(exception.getMessage());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObservableList<OpenOfferListItem> getList() {
|
public ObservableList<OpenOfferListItem> getList() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue