Skip to content

Commit

Permalink
resolve comments
Browse files Browse the repository at this point in the history
  • Loading branch information
IvanPavilionG7 committed Jan 28, 2022
1 parent 4ffeb88 commit 30425c4
Show file tree
Hide file tree
Showing 17 changed files with 379 additions and 252 deletions.
@@ -0,0 +1,46 @@
package com.faforever.client.fx.contextmenu;

import com.faforever.client.domain.GameBean;
import com.faforever.client.i18n.I18n;
import com.faforever.client.replay.LiveReplayService;
import com.faforever.client.replay.LiveReplayService.LiveReplayAction;
import javafx.util.Pair;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import java.util.Optional;

import static com.faforever.client.replay.LiveReplayService.LiveReplayAction.NOTIFY_ME;

@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@RequiredArgsConstructor
public class CancelActionNotifyMeMenuItem extends AbstractMenuItem<GameBean> {

private final I18n i18n;
private final LiveReplayService liveReplayService;

@Override
protected void onClicked() {
liveReplayService.stopTrackingReplay();
}

@Override
protected boolean isItemVisible() {
boolean isValid = object != null && object.getStartTime() != null;
if (!isValid) {
return false;
}

Optional<Pair<Integer, LiveReplayAction>> trackingReplayOptional = liveReplayService.getTrackingReplay();
return trackingReplayOptional.stream().anyMatch(trackingReplay -> trackingReplay.getKey().equals(object.getId())
&& trackingReplay.getValue() == NOTIFY_ME);
}

@Override
protected String getItemText() {
return i18n.get("vault.liveReplays.contextMenu.notifyMe.cancel");
}
}
@@ -0,0 +1,46 @@
package com.faforever.client.fx.contextmenu;

import com.faforever.client.domain.GameBean;
import com.faforever.client.i18n.I18n;
import com.faforever.client.replay.LiveReplayService;
import com.faforever.client.replay.LiveReplayService.LiveReplayAction;
import javafx.util.Pair;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import java.util.Optional;

import static com.faforever.client.replay.LiveReplayService.LiveReplayAction.RUN_REPLAY;

@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@RequiredArgsConstructor
public class CancelActionRunReplayImmediatelyMenuItem extends AbstractMenuItem<GameBean> {

private final I18n i18n;
private final LiveReplayService liveReplayService;

@Override
protected void onClicked() {
liveReplayService.stopTrackingReplay();
}

@Override
protected boolean isItemVisible() {
boolean isValid = object != null && object.getStartTime() != null;
if (!isValid) {
return false;
}

Optional<Pair<Integer, LiveReplayAction>> trackingReplayOptional = liveReplayService.getTrackingReplay();
return trackingReplayOptional.stream().anyMatch(trackingReplay -> trackingReplay.getKey().equals(object.getId())
&& trackingReplay.getValue() == RUN_REPLAY);
}

@Override
protected String getItemText() {
return i18n.get("vault.liveReplays.contextMenu.runImmediately.cancel");
}
}
Expand Up @@ -9,8 +9,8 @@

public class ContextMenuBuilder {

public static Builder newBuilder(ApplicationContext context) {
return new Builder(context);
public static Builder newBuilder(ApplicationContext applicationContext) {
return new Builder(applicationContext);
}

public static class Builder {
Expand Down
@@ -0,0 +1,46 @@
package com.faforever.client.fx.contextmenu;

import com.faforever.client.domain.GameBean;
import com.faforever.client.i18n.I18n;
import com.faforever.client.replay.LiveReplayService;
import com.faforever.client.replay.LiveReplayService.LiveReplayAction;
import javafx.util.Pair;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import java.util.Optional;

import static com.faforever.client.replay.LiveReplayService.LiveReplayAction.NOTIFY_ME;

@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@RequiredArgsConstructor
public class NotifyMeMenuItem extends AbstractMenuItem<GameBean> {

private final I18n i18n;
private final LiveReplayService liveReplayService;

@Override
protected void onClicked() {
liveReplayService.performActionWhenAvailable(object, NOTIFY_ME);
}

@Override
protected boolean isItemVisible() {
boolean isValid = object != null && object.getStartTime() != null;
if (!isValid) {
return false;
}

Optional<Pair<Integer, LiveReplayAction>> trackingReplayOptional = liveReplayService.getTrackingReplay();
return trackingReplayOptional.isEmpty() || trackingReplayOptional.stream()
.anyMatch(trackingReplay -> !trackingReplay.getKey().equals(object.getId()) || trackingReplay.getValue() != NOTIFY_ME);
}

@Override
protected String getItemText() {
return i18n.get("vault.liveReplays.contextMenu.notifyMe");
}
}
@@ -0,0 +1,46 @@
package com.faforever.client.fx.contextmenu;

import com.faforever.client.domain.GameBean;
import com.faforever.client.i18n.I18n;
import com.faforever.client.replay.LiveReplayService;
import com.faforever.client.replay.LiveReplayService.LiveReplayAction;
import javafx.util.Pair;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import java.util.Optional;

import static com.faforever.client.replay.LiveReplayService.LiveReplayAction.RUN_REPLAY;

@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@RequiredArgsConstructor
public class RunReplayImmediatelyMenuItem extends AbstractMenuItem<GameBean> {

private final I18n i18n;
private final LiveReplayService liveReplayService;

@Override
protected void onClicked() {
liveReplayService.performActionWhenAvailable(object, RUN_REPLAY);
}

@Override
protected boolean isItemVisible() {
boolean isValid = object != null && object.getStartTime() != null;
if (!isValid) {
return false;
}

Optional<Pair<Integer, LiveReplayAction>> trackingReplayOptional = liveReplayService.getTrackingReplay();
return trackingReplayOptional.isEmpty() || trackingReplayOptional.stream()
.anyMatch(trackingReplay -> !trackingReplay.getKey().equals(object.getId()) || trackingReplay.getValue() != RUN_REPLAY);
}

@Override
protected String getItemText() {
return i18n.get("vault.liveReplays.contextMenu.runImmediately");
}
}
Expand Up @@ -4,7 +4,7 @@
import com.faforever.client.game.PlayerStatus;
import com.faforever.client.i18n.I18n;
import com.faforever.client.notification.NotificationService;
import com.faforever.client.replay.ReplayService;
import com.faforever.client.replay.LiveReplayService;
import com.faforever.client.util.Assert;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -19,14 +19,14 @@
public class WatchGameMenuItem extends AbstractMenuItem<PlayerBean> {

private final I18n i18n;
private final ReplayService replayService;
private final LiveReplayService liveReplayService;
private final NotificationService notificationService;

@Override
protected void onClicked() {
Assert.checkNullIllegalState(object, "no player has been set");
try {
replayService.runLiveReplay(object.getGame().getId());
liveReplayService.runLiveReplay(object.getGame().getId());
} catch (Exception e) {
log.error("Cannot display live replay", e);
notificationService.addImmediateErrorNotification(e, "replays.live.loadFailure.message");
Expand Down
@@ -0,0 +1,11 @@
package com.faforever.client.notification;

import com.faforever.client.i18n.I18n;
import com.faforever.client.replay.LiveReplayService;

public class RunReplayAction extends Action {

public RunReplayAction(I18n i18n, ActionCallback callback) {
super(i18n.get("game.watch"), callback);
}
}

0 comments on commit 30425c4

Please sign in to comment.