From 45e54b69e844b702b429cabcb1ec6578eb38eabc Mon Sep 17 00:00:00 2001 From: woodser Date: Sun, 20 Jul 2025 16:34:25 -0400 Subject: [PATCH] fix sorting of trigger price icon with open offer row (#1874) --- .../portfolio/openoffer/OpenOffersView.java | 42 +++++++++---------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/desktop/src/main/java/haveno/desktop/main/portfolio/openoffer/OpenOffersView.java b/desktop/src/main/java/haveno/desktop/main/portfolio/openoffer/OpenOffersView.java index ec19daccdd..1072cfa9f7 100644 --- a/desktop/src/main/java/haveno/desktop/main/portfolio/openoffer/OpenOffersView.java +++ b/desktop/src/main/java/haveno/desktop/main/portfolio/openoffer/OpenOffersView.java @@ -1010,35 +1010,31 @@ public class OpenOffersView extends ActivatableViewAndModel call(TableColumn column) { return new TableCell<>() { - Button button; + private final Button button = getRegularIconButton(MaterialDesignIcon.SHIELD_HALF_FULL); @Override - public void updateItem(final OpenOfferListItem item, boolean empty) { + protected void updateItem(final OpenOfferListItem item, boolean empty) { super.updateItem(item, empty); - if (item != null && !empty) { - if (button == null) { - button = getRegularIconButton(MaterialDesignIcon.SHIELD_HALF_FULL); - boolean triggerPriceSet = item.getOpenOffer().getTriggerPrice() > 0; - button.setVisible(triggerPriceSet); - - if (model.dataModel.isTriggered(item.getOpenOffer())) { - button.getGraphic().getStyleClass().add("warning"); - button.setTooltip(new Tooltip(Res.get("openOffer.triggered"))); - } else { - button.getGraphic().getStyleClass().remove("warning"); - button.setTooltip(new Tooltip(Res.get("openOffer.triggerPrice", model.getTriggerPrice(item)))); - } - setGraphic(button); - } - button.setOnAction(event -> onEditOpenOffer(item.getOpenOffer())); - } else { + if (item == null || empty) { setGraphic(null); - if (button != null) { - button.setOnAction(null); - button = null; - } + button.setOnAction(null); + return; } + + boolean triggerPriceSet = item.getOpenOffer().getTriggerPrice() > 0; + button.setVisible(triggerPriceSet); + + if (model.dataModel.isTriggered(item.getOpenOffer())) { + button.getGraphic().getStyleClass().add("warning"); + button.setTooltip(new Tooltip(Res.get("openOffer.triggered"))); + } else { + button.getGraphic().getStyleClass().remove("warning"); + button.setTooltip(new Tooltip(Res.get("openOffer.triggerPrice", model.getTriggerPrice(item)))); + } + + button.setOnAction(e -> onEditOpenOffer(item.getOpenOffer())); + setGraphic(button); } }; }