From 3dd8f20b792e121474e319cfb7e8e9bdae852220 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Mon, 4 Feb 2019 00:47:08 +0100 Subject: [PATCH] User second method in navigationListener --- .../main/java/bisq/desktop/Navigation.java | 8 ++++-- .../main/java/bisq/desktop/main/MainView.java | 2 +- .../desktop/main/account/AccountView.java | 2 +- .../java/bisq/desktop/main/dao/DaoView.java | 2 +- .../desktop/main/dao/bonding/BondingView.java | 17 ++++++++---- .../main/dao/bonding/bonds/BondsView.java | 27 +++++++++++-------- .../desktop/main/dao/burnbsq/BurnBsqView.java | 2 +- .../main/dao/governance/GovernanceView.java | 2 +- .../governance/proposals/ProposalsView.java | 4 +-- .../dao/governance/result/VoteResultView.java | 4 +-- .../main/dao/wallet/BsqWalletView.java | 2 +- .../desktop/main/disputes/DisputesView.java | 2 +- .../bisq/desktop/main/funds/FundsView.java | 2 +- .../bisq/desktop/main/market/MarketView.java | 2 +- .../bisq/desktop/main/offer/OfferView.java | 2 +- .../desktop/main/portfolio/PortfolioView.java | 2 +- .../desktop/main/settings/SettingsView.java | 2 +- 17 files changed, 50 insertions(+), 34 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/Navigation.java b/desktop/src/main/java/bisq/desktop/Navigation.java index 931564ea72..4fb4a7c322 100644 --- a/desktop/src/main/java/bisq/desktop/Navigation.java +++ b/desktop/src/main/java/bisq/desktop/Navigation.java @@ -45,7 +45,10 @@ public final class Navigation implements PersistedDataHost { private static final ViewPath DEFAULT_VIEW_PATH = ViewPath.to(MainView.class, MarketView.class); public interface Listener { - void onNavigationRequested(ViewPath path, @Nullable Object data); + void onNavigationRequested(ViewPath path); + + default void onNavigationRequested(ViewPath path, @Nullable Object data) { + } } // New listeners can be added during iteration so we use CopyOnWriteArrayList to @@ -103,7 +106,7 @@ public final class Navigation implements PersistedDataHost { navigateTo(ViewPath.to(viewClasses), data); } - public void navigateTo(ViewPath newPath, Object data) { + public void navigateTo(ViewPath newPath, @Nullable Object data) { if (newPath == null) return; @@ -131,6 +134,7 @@ public final class Navigation implements PersistedDataHost { currentPath = newPath; previousPath = currentPath; queueUpForSave(); + listeners.forEach((e) -> e.onNavigationRequested(currentPath)); listeners.forEach((e) -> e.onNavigationRequested(currentPath, data)); } diff --git a/desktop/src/main/java/bisq/desktop/main/MainView.java b/desktop/src/main/java/bisq/desktop/main/MainView.java index 9bca837476..82f30d010e 100644 --- a/desktop/src/main/java/bisq/desktop/main/MainView.java +++ b/desktop/src/main/java/bisq/desktop/main/MainView.java @@ -290,7 +290,7 @@ public class MainView extends InitializableView { setupBadge(portfolioButtonWithBadge, model.getNumPendingTrades(), model.getShowPendingTradesNotification()); setupBadge(disputesButtonWithBadge, model.getNumOpenDisputes(), model.getShowOpenDisputesNotification()); - navigation.addListener((viewPath, data) -> { + navigation.addListener(viewPath -> { if (viewPath.size() != 2 || viewPath.indexOf(MainView.class) != 0) return; diff --git a/desktop/src/main/java/bisq/desktop/main/account/AccountView.java b/desktop/src/main/java/bisq/desktop/main/account/AccountView.java index 21982f6f04..6e880fd65e 100644 --- a/desktop/src/main/java/bisq/desktop/main/account/AccountView.java +++ b/desktop/src/main/java/bisq/desktop/main/account/AccountView.java @@ -94,7 +94,7 @@ public class AccountView extends ActivatableView { seedwordsTab.setText(Res.get("account.menu.seedWords").toUpperCase()); backupTab.setText(Res.get("account.menu.backup").toUpperCase()); - navigationListener = (viewPath, data) -> { + navigationListener = viewPath -> { if (viewPath.size() == 3 && viewPath.indexOf(AccountView.class) == 1) { if (arbitratorRegistrationTab == null && viewPath.get(2).equals(ArbitratorRegistrationView.class)) navigation.navigateTo(MainView.class, AccountView.class, FiatAccountsView.class); diff --git a/desktop/src/main/java/bisq/desktop/main/dao/DaoView.java b/desktop/src/main/java/bisq/desktop/main/dao/DaoView.java index 5ea0d0736f..e0343b3ba0 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/DaoView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/DaoView.java @@ -93,7 +93,7 @@ public class DaoView extends ActivatableViewAndModel { root.getTabs().addAll(bsqWalletTab, proposalsTab, bondingTab, burnBsqTab); } - navigationListener = (viewPath, data) -> { + navigationListener = viewPath -> { if (viewPath.size() == 3 && viewPath.indexOf(DaoView.class) == 1) { if (proposalsTab == null && viewPath.get(2).equals(BsqWalletView.class)) navigation.navigateTo(MainView.class, DaoView.class, BsqWalletView.class); diff --git a/desktop/src/main/java/bisq/desktop/main/dao/bonding/BondingView.java b/desktop/src/main/java/bisq/desktop/main/dao/bonding/BondingView.java index 6c9c6aeaea..96a37d93b4 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/bonding/BondingView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/bonding/BondingView.java @@ -73,12 +73,19 @@ public class BondingView extends ActivatableViewAndModel { @Override public void initialize() { - listener = (viewPath, data) -> { - if (viewPath.size() != 4 || viewPath.indexOf(bisq.desktop.main.dao.bonding.BondingView.class) != 2) - return; + listener = new Navigation.Listener() { + @Override + public void onNavigationRequested(ViewPath path) { + } - selectedViewClass = viewPath.tip(); - loadView(selectedViewClass, data); + @Override + public void onNavigationRequested(ViewPath viewPath, @Nullable Object data) { + if (viewPath.size() != 4 || viewPath.indexOf(bisq.desktop.main.dao.bonding.BondingView.class) != 2) + return; + + selectedViewClass = viewPath.tip(); + loadView(selectedViewClass, data); + } }; toggleGroup = new ToggleGroup(); diff --git a/desktop/src/main/java/bisq/desktop/main/dao/bonding/bonds/BondsView.java b/desktop/src/main/java/bisq/desktop/main/dao/bonding/bonds/BondsView.java index d313cc067c..1c0d844aeb 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/bonding/bonds/BondsView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/bonding/bonds/BondsView.java @@ -117,6 +117,22 @@ public class BondsView extends ActivatableView { } + /////////////////////////////////////////////////////////////////////////////////////////// + // API + /////////////////////////////////////////////////////////////////////////////////////////// + + public void setSelectedBond(Bond bond) { + // Set the selected bond if it's found in the tableView, which listens to sortedList. + // If this is called before the sortedList has been populated the selected bond is stored and + // we try to apply again after the next update. + tableView.getItems().stream() + .filter(item -> item.getBond() == bond) + .findFirst() + .ifPresentOrElse(item -> tableView.getSelectionModel().select(item), + () -> this.selectedBond = bond); + } + + /////////////////////////////////////////////////////////////////////////////////////////// // Private /////////////////////////////////////////////////////////////////////////////////////////// @@ -303,15 +319,4 @@ public class BondsView extends ActivatableView { }); tableView.getColumns().add(column); } - - public void setSelectedBond(Bond bond) { - // Set the selected bond if it's found in the tableView, which listens to sortedList. - // If this is called before the sortedList has been populated the selected bond is stored and - // we try to apply again after the next update. - tableView.getItems().stream() - .filter(item -> item.getBond() == bond) - .findFirst() - .ifPresentOrElse(item -> tableView.getSelectionModel().select(item), - () -> this.selectedBond = bond); - } } diff --git a/desktop/src/main/java/bisq/desktop/main/dao/burnbsq/BurnBsqView.java b/desktop/src/main/java/bisq/desktop/main/dao/burnbsq/BurnBsqView.java index 1a49114739..925eaeb206 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/burnbsq/BurnBsqView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/burnbsq/BurnBsqView.java @@ -68,7 +68,7 @@ public class BurnBsqView extends ActivatableViewAndModel { @Override public void initialize() { - listener = (viewPath, data) -> { + listener = viewPath -> { if (viewPath.size() != 4 || viewPath.indexOf(BurnBsqView.class) != 2) return; diff --git a/desktop/src/main/java/bisq/desktop/main/dao/governance/GovernanceView.java b/desktop/src/main/java/bisq/desktop/main/dao/governance/GovernanceView.java index 054a702f09..dd275f1ddc 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/governance/GovernanceView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/governance/GovernanceView.java @@ -77,7 +77,7 @@ public class GovernanceView extends ActivatableViewAndModel { @Override public void initialize() { - navigationListener = (viewPath, data) -> { + navigationListener = viewPath -> { if (viewPath.size() != 4 || viewPath.indexOf(GovernanceView.class) != 2) return; diff --git a/desktop/src/main/java/bisq/desktop/main/dao/governance/proposals/ProposalsView.java b/desktop/src/main/java/bisq/desktop/main/dao/governance/proposals/ProposalsView.java index ea65f71ad6..7c1734b71f 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/governance/proposals/ProposalsView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/governance/proposals/ProposalsView.java @@ -680,8 +680,8 @@ public class ProposalsView extends ActivatableView implements Bs } private void createEmptyProposalDisplay() { - proposalDisplay = new ProposalDisplay(proposalDisplayGridPane, bsqFormatter, daoFacade, changeParamValidator, - navigation); + proposalDisplay = new ProposalDisplay(proposalDisplayGridPane, bsqFormatter, daoFacade, + changeParamValidator, navigation); proposalDisplayView = proposalDisplay.getView(); GridPane.setMargin(proposalDisplayView, new Insets(0, -10, 0, -10)); GridPane.setRowIndex(proposalDisplayView, ++gridRow); diff --git a/desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java b/desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java index 237e9b1488..d44c1f7d2c 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java @@ -385,8 +385,8 @@ public class VoteResultView extends ActivatableView implements D private ProposalDisplay createProposalDisplay(EvaluatedProposal evaluatedProposal, Ballot ballot) { Proposal proposal = evaluatedProposal.getProposal(); - ProposalDisplay proposalDisplay = new ProposalDisplay(new GridPane(), bsqFormatter, daoFacade, null, - navigation); + ProposalDisplay proposalDisplay = new ProposalDisplay(new GridPane(), bsqFormatter, + daoFacade, null, navigation); ScrollPane proposalDisplayView = proposalDisplay.getView(); GridPane.setMargin(proposalDisplayView, new Insets(0, -10, -15, -10)); diff --git a/desktop/src/main/java/bisq/desktop/main/dao/wallet/BsqWalletView.java b/desktop/src/main/java/bisq/desktop/main/dao/wallet/BsqWalletView.java index 457a572aac..b7b037dffe 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/wallet/BsqWalletView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/wallet/BsqWalletView.java @@ -71,7 +71,7 @@ public class BsqWalletView extends ActivatableViewAndModel { @Override public void initialize() { - listener = (viewPath, data) -> { + listener = viewPath -> { if (viewPath.size() != 4 || viewPath.indexOf(BsqWalletView.class) != 2) return; diff --git a/desktop/src/main/java/bisq/desktop/main/disputes/DisputesView.java b/desktop/src/main/java/bisq/desktop/main/disputes/DisputesView.java index 8b296b3be3..48864252d3 100644 --- a/desktop/src/main/java/bisq/desktop/main/disputes/DisputesView.java +++ b/desktop/src/main/java/bisq/desktop/main/disputes/DisputesView.java @@ -85,7 +85,7 @@ public class DisputesView extends ActivatableViewAndModel public void initialize() { log.debug("initialize "); tradersDisputesTab.setText(Res.get("support.tab.support").toUpperCase()); - navigationListener = (viewPath, data) -> { + navigationListener = viewPath -> { if (viewPath.size() == 3 && viewPath.indexOf(DisputesView.class) == 1) loadView(viewPath.tip()); }; diff --git a/desktop/src/main/java/bisq/desktop/main/funds/FundsView.java b/desktop/src/main/java/bisq/desktop/main/funds/FundsView.java index 9ddc823992..9ed0ae3919 100644 --- a/desktop/src/main/java/bisq/desktop/main/funds/FundsView.java +++ b/desktop/src/main/java/bisq/desktop/main/funds/FundsView.java @@ -69,7 +69,7 @@ public class FundsView extends ActivatableViewAndModel { lockedTab.setText(Res.get("funds.tab.locked").toUpperCase()); transactionsTab.setText(Res.get("funds.tab.transactions").toUpperCase()); - navigationListener = (viewPath, data) -> { + navigationListener = viewPath -> { if (viewPath.size() == 3 && viewPath.indexOf(FundsView.class) == 1) loadView(viewPath.tip()); }; diff --git a/desktop/src/main/java/bisq/desktop/main/market/MarketView.java b/desktop/src/main/java/bisq/desktop/main/market/MarketView.java index 98488567d9..7eddb314af 100644 --- a/desktop/src/main/java/bisq/desktop/main/market/MarketView.java +++ b/desktop/src/main/java/bisq/desktop/main/market/MarketView.java @@ -94,7 +94,7 @@ public class MarketView extends ActivatableViewAndModel { spreadTab.setText(Res.get("market.tabs.spread").toUpperCase()); tradesTab.setText(Res.get("market.tabs.trades").toUpperCase()); - navigationListener = (viewPath, data) -> { + navigationListener = viewPath -> { if (viewPath.size() == 3 && viewPath.indexOf(MarketView.class) == 1) loadView(viewPath.tip()); }; diff --git a/desktop/src/main/java/bisq/desktop/main/offer/OfferView.java b/desktop/src/main/java/bisq/desktop/main/offer/OfferView.java index 7795bd784b..84313552c8 100644 --- a/desktop/src/main/java/bisq/desktop/main/offer/OfferView.java +++ b/desktop/src/main/java/bisq/desktop/main/offer/OfferView.java @@ -82,7 +82,7 @@ public abstract class OfferView extends ActivatableView { @Override protected void initialize() { - navigationListener = (viewPath, data) -> { + navigationListener = viewPath -> { if (viewPath.size() == 3 && viewPath.indexOf(this.getClass()) == 1) loadView(viewPath.tip()); }; diff --git a/desktop/src/main/java/bisq/desktop/main/portfolio/PortfolioView.java b/desktop/src/main/java/bisq/desktop/main/portfolio/PortfolioView.java index 85f4e02857..3bf9ceca8c 100644 --- a/desktop/src/main/java/bisq/desktop/main/portfolio/PortfolioView.java +++ b/desktop/src/main/java/bisq/desktop/main/portfolio/PortfolioView.java @@ -85,7 +85,7 @@ public class PortfolioView extends ActivatableViewAndModel pendingTradesTab.setText(Res.get("portfolio.tab.pendingTrades").toUpperCase()); closedTradesTab.setText(Res.get("portfolio.tab.history").toUpperCase()); - navigationListener = (viewPath, data) -> { + navigationListener = viewPath -> { if (viewPath.size() == 3 && viewPath.indexOf(PortfolioView.class) == 1) loadView(viewPath.tip()); }; diff --git a/desktop/src/main/java/bisq/desktop/main/settings/SettingsView.java b/desktop/src/main/java/bisq/desktop/main/settings/SettingsView.java index 2a91cba20a..ba81800a95 100644 --- a/desktop/src/main/java/bisq/desktop/main/settings/SettingsView.java +++ b/desktop/src/main/java/bisq/desktop/main/settings/SettingsView.java @@ -62,7 +62,7 @@ public class SettingsView extends ActivatableViewAndModel networkTab.setText(Res.get("settings.tab.network").toUpperCase()); aboutTab.setText(Res.get("settings.tab.about").toUpperCase()); - navigationListener = (viewPath, data) -> { + navigationListener = viewPath -> { if (viewPath.size() == 3 && viewPath.indexOf(SettingsView.class) == 1) loadView(viewPath.tip()); };