mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 07:07:43 +01:00
User second method in navigationListener
This commit is contained in:
parent
16b766b91f
commit
3dd8f20b79
17 changed files with 50 additions and 34 deletions
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -290,7 +290,7 @@ public class MainView extends InitializableView<StackPane, MainViewModel> {
|
|||
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;
|
||||
|
||||
|
|
|
@ -94,7 +94,7 @@ public class AccountView extends ActivatableView<TabPane, Void> {
|
|||
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);
|
||||
|
|
|
@ -93,7 +93,7 @@ public class DaoView extends ActivatableViewAndModel<TabPane, Activatable> {
|
|||
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);
|
||||
|
|
|
@ -73,12 +73,19 @@ public class BondingView extends ActivatableViewAndModel {
|
|||
|
||||
@Override
|
||||
public void initialize() {
|
||||
listener = (viewPath, data) -> {
|
||||
listener = new Navigation.Listener() {
|
||||
@Override
|
||||
public void onNavigationRequested(ViewPath path) {
|
||||
}
|
||||
|
||||
@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();
|
||||
|
|
|
@ -117,6 +117,22 @@ public class BondsView extends ActivatableView<GridPane, Void> {
|
|||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// 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<GridPane, Void> {
|
|||
});
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -680,8 +680,8 @@ public class ProposalsView extends ActivatableView<GridPane, Void> 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);
|
||||
|
|
|
@ -385,8 +385,8 @@ public class VoteResultView extends ActivatableView<GridPane, Void> 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));
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ public class DisputesView extends ActivatableViewAndModel<TabPane, Activatable>
|
|||
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());
|
||||
};
|
||||
|
|
|
@ -69,7 +69,7 @@ public class FundsView extends ActivatableViewAndModel<TabPane, Activatable> {
|
|||
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());
|
||||
};
|
||||
|
|
|
@ -94,7 +94,7 @@ public class MarketView extends ActivatableViewAndModel<TabPane, Activatable> {
|
|||
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());
|
||||
};
|
||||
|
|
|
@ -82,7 +82,7 @@ public abstract class OfferView extends ActivatableView<TabPane, Void> {
|
|||
|
||||
@Override
|
||||
protected void initialize() {
|
||||
navigationListener = (viewPath, data) -> {
|
||||
navigationListener = viewPath -> {
|
||||
if (viewPath.size() == 3 && viewPath.indexOf(this.getClass()) == 1)
|
||||
loadView(viewPath.tip());
|
||||
};
|
||||
|
|
|
@ -85,7 +85,7 @@ public class PortfolioView extends ActivatableViewAndModel<TabPane, Activatable>
|
|||
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());
|
||||
};
|
||||
|
|
|
@ -62,7 +62,7 @@ public class SettingsView extends ActivatableViewAndModel<TabPane, Activatable>
|
|||
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());
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue