From d2f6702fe8aeee22d602abb2e4bbe14e642cd82b Mon Sep 17 00:00:00 2001 From: lukasz Date: Tue, 12 Nov 2019 15:42:53 +0100 Subject: [PATCH] Refactor FilterWindow --- .../main/overlays/windows/FilterWindow.java | 111 +++++------------- 1 file changed, 31 insertions(+), 80 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/overlays/windows/FilterWindow.java b/desktop/src/main/java/bisq/desktop/main/overlays/windows/FilterWindow.java index 921d208872e..3527b27bb60 100644 --- a/desktop/src/main/java/bisq/desktop/main/overlays/windows/FilterWindow.java +++ b/desktop/src/main/java/bisq/desktop/main/overlays/windows/FilterWindow.java @@ -41,8 +41,8 @@ import javafx.geometry.HPos; import javafx.geometry.Insets; -import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -197,90 +197,33 @@ private void addContent() { } Button sendButton = new AutoTooltipButton(Res.get("filterWindow.add")); sendButton.setOnAction(e -> { - List offerIds = new ArrayList<>(); - List nodes = new ArrayList<>(); - List paymentAccountFilters = new ArrayList<>(); - List bannedCurrencies = new ArrayList<>(); - List bannedPaymentMethods = new ArrayList<>(); - List arbitrators = new ArrayList<>(); - List mediators = new ArrayList<>(); - List refundAgents = new ArrayList<>(); - List seedNodes = new ArrayList<>(); - List priceRelayNodes = new ArrayList<>(); - List btcNodes = new ArrayList<>(); - - if (!offerIdsInputTextField.getText().isEmpty()) { - offerIds = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(offerIdsInputTextField.getText()) - .split(","))); - } - - if (!nodesInputTextField.getText().isEmpty()) { - nodes = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(nodesInputTextField.getText()).split(","))); - } - - if (!paymentAccountFilterInputTextField.getText().isEmpty()) { - paymentAccountFilters = new ArrayList<>(Arrays.asList(paymentAccountFilterInputTextField.getText() - .replace(", ", ",") - .split(",")) - .stream().map(item -> { - String[] list = item.split("\\|"); - if (list.length == 3) - return new PaymentAccountFilter(list[0], list[1], list[2]); - else - return new PaymentAccountFilter("", "", ""); - }) - .collect(Collectors.toList())); - } - - if (!bannedCurrenciesInputTextField.getText().isEmpty()) { - bannedCurrencies = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(bannedCurrenciesInputTextField.getText()) - .split(","))); - } - - if (!bannedPaymentMethodsInputTextField.getText().isEmpty()) { - bannedPaymentMethods = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(bannedPaymentMethodsInputTextField.getText()) - .split(","))); - } - - if (!arbitratorsInputTextField.getText().isEmpty()) { - arbitrators = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(arbitratorsInputTextField.getText()).split(","))); - } - - if (!mediatorsInputTextField.getText().isEmpty()) { - mediators = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(mediatorsInputTextField.getText()).split(","))); - } - if (!refundAgentsInputTextField.getText().isEmpty()) { - refundAgents = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(refundAgentsInputTextField.getText()).split(","))); - } - - if (!seedNodesInputTextField.getText().isEmpty()) { - seedNodes = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(seedNodesInputTextField.getText()).split(","))); - } - - if (!priceRelayNodesInputTextField.getText().isEmpty()) { - priceRelayNodes = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(priceRelayNodesInputTextField.getText()).split(","))); - } - - if (!btcNodesInputTextField.getText().isEmpty()) { - btcNodes = new ArrayList<>(Arrays.asList(StringUtils.deleteWhitespace(btcNodesInputTextField.getText()) - .split(","))); - } - - if (sendFilterMessageHandler.handle(new Filter(offerIds, - nodes, + List paymentAccountFilters = readAsList(paymentAccountFilterInputTextField) + .stream().map(item -> { + String[] list = item.split("\\|"); + if (list.length == 3) + return new PaymentAccountFilter(list[0], list[1], list[2]); + else + return new PaymentAccountFilter("", "", ""); + }) + .collect(Collectors.toList()); + + + if (sendFilterMessageHandler.handle(new Filter( + readAsList(offerIdsInputTextField), + readAsList(nodesInputTextField), paymentAccountFilters, - bannedCurrencies, - bannedPaymentMethods, - arbitrators, - seedNodes, - priceRelayNodes, + readAsList(bannedCurrenciesInputTextField), + readAsList(bannedPaymentMethodsInputTextField), + readAsList(arbitratorsInputTextField), + readAsList(seedNodesInputTextField), + readAsList(priceRelayNodesInputTextField), preventPublicBtcNetworkCheckBox.isSelected(), - btcNodes, + readAsList(btcNodesInputTextField), disableDaoCheckBox.isSelected(), disableDaoBelowVersionInputTextField.getText(), disableTradeBelowVersionInputTextField.getText(), - mediators, - refundAgents), + readAsList(mediatorsInputTextField), + readAsList(refundAgentsInputTextField)), keyInputTextField.getText())) hide(); else @@ -310,4 +253,12 @@ private void addContent() { gridPane.getChildren().add(hBox); GridPane.setMargin(hBox, new Insets(10, 0, 0, 0)); } + + private List readAsList(InputTextField field) { + if (field.getText().isEmpty()) { + return Collections.emptyList(); + } else { + return Arrays.asList(StringUtils.deleteWhitespace(field.getText()).split(",")); + } + } }