mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-08-10 23:50:10 -04:00
show offers as pending, fix offer funding from manual subaddress
This commit is contained in:
parent
9ee67a046c
commit
59c0496d34
6 changed files with 97 additions and 25 deletions
|
@ -68,10 +68,17 @@ import javafx.scene.layout.Region;
|
|||
import javafx.scene.layout.VBox;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.util.Callback;
|
||||
|
||||
import org.fxmisc.easybind.EasyBind;
|
||||
import org.fxmisc.easybind.Subscription;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static haveno.desktop.util.FormBuilder.getRegularIconButton;
|
||||
|
||||
|
@ -109,6 +116,8 @@ public class OpenOffersView extends ActivatableViewAndModel<VBox, OpenOffersView
|
|||
private PortfolioView.OpenOfferActionHandler openOfferActionHandler;
|
||||
private ChangeListener<Number> widthListener;
|
||||
|
||||
private Map<String, Subscription> offerStateSubscriptions = new HashMap<String, Subscription>();
|
||||
|
||||
@Inject
|
||||
public OpenOffersView(OpenOffersViewModel model, Navigation navigation, OfferDetailsWindow offerDetailsWindow) {
|
||||
super(model);
|
||||
|
@ -285,16 +294,24 @@ public class OpenOffersView extends ActivatableViewAndModel<VBox, OpenOffersView
|
|||
root.widthProperty().removeListener(widthListener);
|
||||
}
|
||||
|
||||
private void refresh() {
|
||||
tableView.refresh();
|
||||
updateSelectToggleButtonState();
|
||||
}
|
||||
|
||||
private void updateSelectToggleButtonState() {
|
||||
if (sortedList.size() == 0) {
|
||||
List<OpenOfferListItem> availableItems = sortedList.stream()
|
||||
.filter(openOfferListItem -> !openOfferListItem.getOpenOffer().isScheduled())
|
||||
.collect(Collectors.toList());
|
||||
if (availableItems.size() == 0) {
|
||||
selectToggleButton.setDisable(true);
|
||||
selectToggleButton.setSelected(false);
|
||||
} else {
|
||||
selectToggleButton.setDisable(false);
|
||||
long numDeactivated = sortedList.stream()
|
||||
long numDeactivated = availableItems.stream()
|
||||
.filter(openOfferListItem -> openOfferListItem.getOpenOffer().isDeactivated())
|
||||
.count();
|
||||
if (numDeactivated == sortedList.size()) {
|
||||
if (numDeactivated == availableItems.size()) {
|
||||
selectToggleButton.setSelected(false);
|
||||
} else if (numDeactivated == 0) {
|
||||
selectToggleButton.setSelected(true);
|
||||
|
@ -683,15 +700,24 @@ public class OpenOffersView extends ActivatableViewAndModel<VBox, OpenOffersView
|
|||
AutoTooltipSlideToggleButton checkBox;
|
||||
|
||||
private void updateState(@NotNull OpenOffer openOffer) {
|
||||
checkBox.setSelected(!openOffer.isDeactivated());
|
||||
if (checkBox != null) checkBox.setSelected(!openOffer.isDeactivated());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateItem(final OpenOfferListItem item, boolean empty) {
|
||||
super.updateItem(item, empty);
|
||||
|
||||
if (item != null && !empty) {
|
||||
OpenOffer openOffer = item.getOpenOffer();
|
||||
if (!offerStateSubscriptions.containsKey(openOffer.getId())) {
|
||||
offerStateSubscriptions.put(openOffer.getId(), EasyBind.subscribe(openOffer.stateProperty(), state -> {
|
||||
refresh();
|
||||
}));
|
||||
}
|
||||
if (openOffer.getState() == OpenOffer.State.SCHEDULED) {
|
||||
setGraphic(new AutoTooltipLabel(Res.get("shared.pending")));
|
||||
return;
|
||||
}
|
||||
|
||||
if (checkBox == null) {
|
||||
checkBox = new AutoTooltipSlideToggleButton();
|
||||
checkBox.setPadding(new Insets(-7, 0, -7, 0));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue