Skip to content

Commit

Permalink
Fix bug in handling of navigation events
Browse files Browse the repository at this point in the history
  • Loading branch information
BlackYps authored and Chris Haggan committed Apr 15, 2022
1 parent f420c66 commit d769063
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ public class LeaderboardsController extends AbstractViewController<Node> {
public Tab globalLeaderboardTab;

private boolean isHandlingEvent;
private AbstractViewController<?> lastTabController;
private Tab lastTab;

public LeaderboardsController(EventBus eventBus) {
this.eventBus = eventBus;
Expand All @@ -39,7 +41,8 @@ public Node getRoot() {

@Override
public void initialize() {
eventBus.post(new OpenLadder1v1LeaderboardEvent());
lastTab = ladder1v1LeaderboardTab;
lastTabController = ladder1v1LeaderboardController;
ladder1v1LeaderboardController.setRatingType(KnownFeaturedMod.LADDER_1V1);
globalLeaderboardController.setRatingType(KnownFeaturedMod.FAF);

Expand All @@ -63,13 +66,14 @@ protected void onDisplay(NavigateEvent navigateEvent) {

try {
if (navigateEvent instanceof OpenLadder1v1LeaderboardEvent) {
leaderboardRoot.getSelectionModel().select(ladder1v1LeaderboardTab);
ladder1v1LeaderboardController.display(navigateEvent);
}
if (navigateEvent instanceof OpenGlobalLeaderboardEvent) {
leaderboardRoot.getSelectionModel().select(globalLeaderboardTab);
globalLeaderboardController.display(navigateEvent);
lastTab = ladder1v1LeaderboardTab;
lastTabController = ladder1v1LeaderboardController;
} else if (navigateEvent instanceof OpenGlobalLeaderboardEvent) {
lastTab = globalLeaderboardTab;
lastTabController = globalLeaderboardController;
}
leaderboardRoot.getSelectionModel().select(lastTab);
lastTabController.display(navigateEvent);
} finally {
isHandlingEvent = false;
}
Expand Down
33 changes: 14 additions & 19 deletions src/main/java/com/faforever/client/play/PlayController.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,17 @@ public class PlayController extends AbstractViewController<Node> {
public Ladder1v1Controller ladderController;
public CoopController coopController;
private boolean isHandlingEvent;
private AbstractViewController<?> lastTab;

private AbstractViewController<?> lastTabController;
private Tab lastTab;

public PlayController(EventBus eventBus) {
this.eventBus = eventBus;
}

@Override
public void initialize() {
eventBus.post(new OpenCustomGamesEvent());
lastTab = customGamesController;
lastTab = customGamesTab;
lastTabController = customGamesController;
playRootTabPane.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
if (isHandlingEvent) {
return;
Expand All @@ -63,22 +63,17 @@ protected void onDisplay(NavigateEvent navigateEvent) {

try {
if (navigateEvent instanceof OpenCustomGamesEvent) {
playRootTabPane.getSelectionModel().select(customGamesTab);
customGamesController.display(navigateEvent);
lastTab = customGamesController;
}
else if (navigateEvent instanceof Open1v1Event) {
playRootTabPane.getSelectionModel().select(ladderTab);
ladderController.display(navigateEvent);
lastTab = ladderController;
}
else if (navigateEvent instanceof OpenCoopEvent) {
playRootTabPane.getSelectionModel().select(coopTab);
coopController.display(navigateEvent);
lastTab = coopController;
} else if (Objects.equals(navigateEvent.getClass(), NavigateEvent.class)) {
lastTab.display(navigateEvent);
lastTab = customGamesTab;
lastTabController = customGamesController;
} else if (navigateEvent instanceof Open1v1Event) {
lastTab = ladderTab;
lastTabController = ladderController;
} else if (navigateEvent instanceof OpenCoopEvent) {
lastTab = coopTab;
lastTabController = coopController;
}
playRootTabPane.getSelectionModel().select(lastTab);
lastTabController.display(navigateEvent);
} finally {
isHandlingEvent = false;
}
Expand Down
32 changes: 17 additions & 15 deletions src/main/java/com/faforever/client/vault/VaultController.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ public class VaultController extends AbstractViewController<Node> {
public Tab onlineReplayVaultTab;
public Tab localReplayVaultTab;
private boolean isHandlingEvent;
private AbstractViewController<?> lastTabController;
private Tab lastTab;

public VaultController(EventBus eventBus) {
this.eventBus = eventBus;
Expand All @@ -47,7 +49,8 @@ public Node getRoot() {

@Override
public void initialize() {
eventBus.post(new OpenMapVaultEvent());
lastTab = onlineReplayVaultTab;
lastTabController = onlineReplayVaultController;
vaultRoot.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
if (isHandlingEvent) {
return;
Expand All @@ -72,21 +75,20 @@ protected void onDisplay(NavigateEvent navigateEvent) {

try {
if (navigateEvent instanceof OpenMapVaultEvent) {
vaultRoot.getSelectionModel().select(mapVaultTab);
mapVaultController.display(navigateEvent);
}
if (navigateEvent instanceof OpenModVaultEvent) {
vaultRoot.getSelectionModel().select(modVaultTab);
modVaultController.display(navigateEvent);
}
if (navigateEvent instanceof OpenOnlineReplayVaultEvent) {
vaultRoot.getSelectionModel().select(onlineReplayVaultTab);
onlineReplayVaultController.display(navigateEvent);
}
if (navigateEvent instanceof OpenReplayVaultEvent) {
vaultRoot.getSelectionModel().select(localReplayVaultTab);
localReplayVaultController.display(navigateEvent);
lastTab = mapVaultTab;
lastTabController = mapVaultController;
} else if (navigateEvent instanceof OpenModVaultEvent) {
lastTab = modVaultTab;
lastTabController = modVaultController;
} else if (navigateEvent instanceof OpenOnlineReplayVaultEvent) {
lastTab = onlineReplayVaultTab;
lastTabController = onlineReplayVaultController;
} else if (navigateEvent instanceof OpenReplayVaultEvent) {
lastTab = localReplayVaultTab;
lastTabController = localReplayVaultController;
}
vaultRoot.getSelectionModel().select(lastTab);
lastTabController.display(navigateEvent);
} finally {
isHandlingEvent = false;
}
Expand Down

0 comments on commit d769063

Please sign in to comment.