structured the RaceBoardModes such that only those that need CompetitorsInRace notifications will have them

Change-Id: I43a2ec87ded4133b9d2a15771e1ddbf856e62a97
This commit is contained in:
Axel Uhl committed 2016-07-16 15:37:18 +02:00
1 parent 0a666baf6e
commit 6cdd32bbbf
4 files changed
+18 -53

No files matched your search

@@ -8,7 +8,6 @@ import com.google.gwt.core.shared.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
import com.sap.sailing.gwt.ui.actions.GetLeaderboardByNameAction;
@@ -50,7 +49,7 @@ import com.sap.sse.gwt.client.player.Timer;
* @author Axel Uhl (d043530)
*
*/
public abstract class AbstractRaceBoardMode implements RaceBoardMode, RaceTimesInfoProviderListener, LeaderboardUpdateListener, CompetitorsForRaceDefinedListener {
public abstract class AbstractRaceBoardMode implements RaceBoardMode, RaceTimesInfoProviderListener, LeaderboardUpdateListener {
private Timer timer;
private RegattaAndRaceIdentifier raceIdentifier;
private RaceTimePanel raceTimePanel;
@@ -61,7 +60,6 @@ public abstract class AbstractRaceBoardMode implements RaceBoardMode, RaceTimesI
private RaceTimesInfoDTO raceTimesInfoForRace;
private LeaderboardDTO leaderboard;
private LeaderboardDTO leaderboardForSpecificTimePoint;
private Iterable<CompetitorDTO> competitorsInRace;
private RaceColumnDTO raceColumn;
@Override
@@ -73,7 +71,6 @@ public abstract class AbstractRaceBoardMode implements RaceBoardMode, RaceTimesI
this.leaderboardPanel.addLeaderboardUpdateListener(this);
this.timer = raceBoardPanel.getTimer();
this.raceIdentifier = raceBoardPanel.getSelectedRaceIdentifier();
raceBoardPanel.getMap().addCompetitorsForRaceDefinedListener(this);
}
/**
@@ -172,16 +169,6 @@ public abstract class AbstractRaceBoardMode implements RaceBoardMode, RaceTimesI
trigger();
}
@Override
public void competitorsForRaceDefined(Iterable<CompetitorDTO> competitorsInRace) {
this.competitorsInRace = competitorsInRace;
trigger();
}
protected void stopReceivingCompetitorsInRace() {
raceBoardPanel.getMap().removeCompetitorsForRaceDefinedListener(this);
}
protected Map<RegattaAndRaceIdentifier, RaceTimesInfoDTO> getRaceTimesInfo() {
return raceTimesInfo;
}
@@ -198,10 +185,6 @@ public abstract class AbstractRaceBoardMode implements RaceBoardMode, RaceTimesI
return leaderboardForSpecificTimePoint;
}
protected Iterable<CompetitorDTO> getCompetitorsInRace() {
return competitorsInRace;
}
protected RaceColumnDTO getRaceColumn() {
return raceColumn;
}
@@ -19,12 +19,6 @@ public class FullAnalysisMode extends AbstractRaceBoardMode {
private boolean leaderboardSettingsAdjusted;
private boolean timerAdjusted;
@Override
public void applyTo(RaceBoardPanel raceBoardPanel) {
super.applyTo(raceBoardPanel);
stopReceivingCompetitorsInRace();
}
/**
* Listening for race times info continues until information about the end of the race has been received. The leaderboard
* settings are adjusted as soon as a valid leaderboard has been received.
@@ -24,12 +24,6 @@ public class PlayerMode extends AbstractRaceBoardMode {
private boolean timerAdjusted;
@Override
public void applyTo(RaceBoardPanel raceBoardPanel) {
super.applyTo(raceBoardPanel);
stopReceivingCompetitorsInRace();
}
private void adjustLeaderboardSettings() {
final LeaderboardSettings existingSettings = getLeaderboardPanel().getSettings();
final List<DetailType> raceDetailsToShow = new ArrayList<>(existingSettings.getRaceDetailsToShow());
@@ -4,40 +4,24 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceCompetitorSet.CompetitorsForRaceDefinedListener;
import com.sap.sse.common.Util;
public abstract class RaceBoardModeWithPerRaceCompetitors extends AbstractRaceBoardMode {
public abstract class RaceBoardModeWithPerRaceCompetitors extends AbstractRaceBoardMode implements CompetitorsForRaceDefinedListener {
private Iterable<CompetitorDTO> competitorsInRace;
private LeaderboardDTO leaderboard;
private RaceColumnDTO raceColumn;
abstract protected void updateCompetitorSelection();
@Override
public void competitorsForRaceDefined(Iterable<CompetitorDTO> competitorsInRace) {
this.competitorsInRace = competitorsInRace;
public void applyTo(RaceBoardPanel raceBoardPanel) {
super.applyTo(raceBoardPanel);
raceBoardPanel.getMap().addCompetitorsForRaceDefinedListener(this);
}
protected Iterable<CompetitorDTO> getCompetitorsInRace() {
return competitorsInRace;
}
protected LeaderboardDTO getLeaderboard() {
return leaderboard;
}
@Override
public void currentRaceSelected(RaceIdentifier raceIdentifier, RaceColumnDTO raceColumn) {
this.raceColumn = raceColumn;
trigger();
}
protected RaceColumnDTO getRaceColumn() {
return raceColumn;
protected void stopReceivingCompetitorsInRace() {
getRaceBoardPanel().getMap().removeCompetitorsForRaceDefinedListener(this);
}
protected void updateCompetitorSelection(final int howManyTopCompetitorsInRaceToSelect, LeaderboardDTO leaderboard) {
@@ -55,4 +39,14 @@ public abstract class RaceBoardModeWithPerRaceCompetitors extends AbstractRaceBo
}
}
@Override
public void competitorsForRaceDefined(Iterable<CompetitorDTO> competitorsInRace) {
this.competitorsInRace = competitorsInRace;
trigger();
}
protected Iterable<CompetitorDTO> getCompetitorsInRace() {
return competitorsInRace;
}
}