fixed raceboard link creation for flexible leaderboards

This commit is contained in:
fmittag committed 2015-07-20 17:15:33 +02:00
1 parent afdd645d48
commit af5226e646
11 files changed
+46 -49

No files matched your search

@@ -133,12 +133,6 @@ public abstract class AbstractEventActivity<PLACE extends AbstractEventPlace> ex
return getRaceViewerURL(leaderboard.name, raceIdentifier); return getRaceViewerURL(leaderboard.name, raceIdentifier);
} }
@Override
public String getRaceViewerURL(String regattaName, String trackedRaceName) {
return EntryPointLinkFactory
.createRaceBoardLink(createRaceBoardLinkParameters(regattaName, regattaName, trackedRaceName));
}
public String getRaceViewerURL(String leaderboardName, RegattaAndRaceIdentifier raceIdentifier) { public String getRaceViewerURL(String leaderboardName, RegattaAndRaceIdentifier raceIdentifier) {
return EntryPointLinkFactory return EntryPointLinkFactory
.createRaceBoardLink(createRaceBoardLinkParameters(leaderboardName, raceIdentifier.getRegattaName(), raceIdentifier.getRaceName())); .createRaceBoardLink(createRaceBoardLinkParameters(leaderboardName, raceIdentifier.getRegattaName(), raceIdentifier.getRaceName()));
@@ -6,6 +6,7 @@ import com.google.gwt.place.shared.Place;
import com.google.gwt.safehtml.shared.SafeUri; import com.google.gwt.safehtml.shared.SafeUri;
import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.IsWidget; import com.google.gwt.user.client.ui.IsWidget;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.domain.common.dto.RaceDTO;
import com.sap.sailing.gwt.common.client.controls.tabbar.TabView; import com.sap.sailing.gwt.common.client.controls.tabbar.TabView;
import com.sap.sailing.gwt.home.client.place.event.regatta.AbstractEventRegattaPlace; import com.sap.sailing.gwt.home.client.place.event.regatta.AbstractEventRegattaPlace;
@@ -56,7 +57,7 @@ public interface EventView<PLACE extends AbstractEventPlace, PRES extends EventV
String getRaceViewerURL(StrippedLeaderboardDTO leaderboard, RaceDTO race); String getRaceViewerURL(StrippedLeaderboardDTO leaderboard, RaceDTO race);
String getRaceViewerURL(String regattaName, String trackedRaceName); String getRaceViewerURL(String leaderboardName, RegattaAndRaceIdentifier raceIdentifier);
PlaceNavigation<RegattaRacesPlace> getRegattaRacesNavigation(String regattaName); PlaceNavigation<RegattaRacesPlace> getRegattaRacesNavigation(String regattaName);
PlaceNavigation<AbstractEventRegattaPlace> getRegattaNavigation(String regattaName); PlaceNavigation<AbstractEventRegattaPlace> getRegattaNavigation(String regattaName);
@@ -38,7 +38,7 @@ public class RegattaCompetitionSeries extends Composite {
RegattaCompetitionFleet competitionFleet = new RegattaCompetitionFleet(fleet); RegattaCompetitionFleet competitionFleet = new RegattaCompetitionFleet(fleet);
for (RaceListRaceDTO race : fleet.getRaces()) { for (RaceListRaceDTO race : fleet.getRaces()) {
boolean tracked = race.getTrackingState() == RaceTrackingState.TRACKED_VALID_DATA; boolean tracked = race.getTrackingState() == RaceTrackingState.TRACKED_VALID_DATA;
String raceViewerUrl = tracked ? presenter.getRaceViewerURL(race.getRegattaName(), race.getTrackedRaceName()) : null; String raceViewerUrl = tracked ? presenter.getRaceViewerURL(race.getRegattaName(), race.getRegattaAndRaceIdentifier()) : null;
competitionFleet.addRace(race, raceViewerUrl); competitionFleet.addRace(race, raceViewerUrl);
} }
containerUi.add(competitionFleet); containerUi.add(competitionFleet);
@@ -514,7 +514,7 @@ public class RaceListColumnFactory {
} else { } else {
String styleNames = data.getViewState() == RaceViewState.FINISHED ? analyseRaceStyle : watchNowStyle; String styleNames = data.getViewState() == RaceViewState.FINISHED ? analyseRaceStyle : watchNowStyle;
String text = data.getViewState() == RaceViewState.FINISHED ? I18N.analyseRace() : I18N_UBI.watchNow(); String text = data.getViewState() == RaceViewState.FINISHED ? I18N.analyseRace() : I18N_UBI.watchNow();
String raceViewerURL = presenter.getRaceViewerURL(data.getRegattaName(), data.getTrackedRaceName()); String raceViewerURL = presenter.getRaceViewerURL(data.getLeaderboardName(), data.getRegattaAndRaceIdentifier());
sb.append(TEMPLATE.raceViewerLinkButton(styleNames, text, raceViewerURL)); sb.append(TEMPLATE.raceViewerLinkButton(styleNames, text, raceViewerURL));
} }
} }
@@ -75,8 +75,8 @@ public class UpdatesBoxItem extends Widget {
placeNavigation = presenter.getRegattaLeaderboardNavigation(((LeaderboardNewsEntryDTO) entry).getLeaderboardName()); placeNavigation = presenter.getRegattaLeaderboardNavigation(((LeaderboardNewsEntryDTO) entry).getLeaderboardName());
} else if(entry instanceof AbstractRaceNewsEntryDTO) { } else if(entry instanceof AbstractRaceNewsEntryDTO) {
AbstractRaceNewsEntryDTO raceEntry = (AbstractRaceNewsEntryDTO) entry; AbstractRaceNewsEntryDTO raceEntry = (AbstractRaceNewsEntryDTO) entry;
if(raceEntry.getTrackedRaceName() != null) { if(raceEntry.getRegattaAndRaceIdentfier() != null) {
directLink = presenter.getRaceViewerURL(raceEntry.getRegattaName(), raceEntry.getTrackedRaceName()); directLink = presenter.getRaceViewerURL(raceEntry.getLeaderboardName(), raceEntry.getRegattaAndRaceIdentfier());
} }
} }
if(placeNavigation != null) { if(placeNavigation != null) {
@@ -1,5 +1,6 @@
package com.sap.sailing.gwt.ui.shared.dispatch.event; package com.sap.sailing.gwt.ui.shared.dispatch.event;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.gwt.ui.shared.race.FlagStateDTO; import com.sap.sailing.gwt.ui.shared.race.FlagStateDTO;
import com.sap.sailing.gwt.ui.shared.race.RaceMetadataDTO; import com.sap.sailing.gwt.ui.shared.race.RaceMetadataDTO;
import com.sap.sailing.gwt.ui.shared.race.RaceProgressDTO; import com.sap.sailing.gwt.ui.shared.race.RaceProgressDTO;
@@ -15,8 +16,8 @@ public class LiveRaceDTO extends RaceMetadataDTO<SimpleWindDTO> {
private LiveRaceDTO() { private LiveRaceDTO() {
} }
public LiveRaceDTO(String regattaName, String raceName) { public LiveRaceDTO(String leaderboardName, RegattaAndRaceIdentifier regattaAndRaceIdentifier, String raceName) {
super(regattaName, raceName); super(leaderboardName, regattaAndRaceIdentifier, raceName);
} }
public FlagStateDTO getFlagState() { public FlagStateDTO getFlagState() {
@@ -100,6 +100,10 @@ public class RaceContext {
return !LeaderboardNameConstants.DEFAULT_FLEET_NAME.equals(fleet.getName()); return !LeaderboardNameConstants.DEFAULT_FLEET_NAME.equals(fleet.getName());
} }
public String getLeaderboardName() {
return leaderboard.getName();
}
public String getRegattaName() { public String getRegattaName() {
if (leaderboard instanceof RegattaLeaderboard) { if (leaderboard instanceof RegattaLeaderboard) {
Regatta regatta = ((RegattaLeaderboard) leaderboard).getRegatta(); Regatta regatta = ((RegattaLeaderboard) leaderboard).getRegatta();
@@ -333,7 +337,7 @@ public class RaceContext {
// and special flags states indicating how the postponed/canceled races will be continued // and special flags states indicating how the postponed/canceled races will be continued
if (isLiveOrOfPublicInterest()) { if (isLiveOrOfPublicInterest()) {
// the start time is always given for live races // the start time is always given for live races
LiveRaceDTO liveRaceDTO = new LiveRaceDTO(getRegattaName(), raceColumn.getName()); LiveRaceDTO liveRaceDTO = new LiveRaceDTO(getLeaderboardName(), trackedRace != null ? trackedRace.getRaceIdentifier(): null, raceColumn.getName());
fillRaceData(liveRaceDTO); fillRaceData(liveRaceDTO);
liveRaceDTO.setFlagState(getFlagStateOrNull()); liveRaceDTO.setFlagState(getFlagStateOrNull());
liveRaceDTO.setProgress(getProgressOrNull()); liveRaceDTO.setProgress(getProgressOrNull());
@@ -348,7 +352,7 @@ public class RaceContext {
// and special flags states indicating how the postponed/canceled races will be continued // and special flags states indicating how the postponed/canceled races will be continued
if (getLiveRaceViewState() == RaceViewState.FINISHED) { if (getLiveRaceViewState() == RaceViewState.FINISHED) {
// the start time is always given for live races // the start time is always given for live races
RaceListRaceDTO liveRaceDTO = new RaceListRaceDTO(getRegattaName(), raceColumn.getName()); RaceListRaceDTO liveRaceDTO = new RaceListRaceDTO(getLeaderboardName(), trackedRace != null ? trackedRace.getRaceIdentifier(): null, raceColumn.getName());
fillRaceData(liveRaceDTO); fillRaceData(liveRaceDTO);
liveRaceDTO.setDuration(getDurationOrNull()); liveRaceDTO.setDuration(getDurationOrNull());
liveRaceDTO.setWinner(getWinnerOrNull()); liveRaceDTO.setWinner(getWinnerOrNull());
@@ -436,7 +440,6 @@ public class RaceContext {
private void fillRaceData(RaceMetadataDTO<?> dto) { private void fillRaceData(RaceMetadataDTO<?> dto) {
dto.setViewState(getLiveRaceViewState()); dto.setViewState(getLiveRaceViewState());
dto.setRegattaDisplayName(getRegattaDisplayName()); dto.setRegattaDisplayName(getRegattaDisplayName());
dto.setTrackedRaceName(trackedRace != null ? trackedRace.getRaceIdentifier().getRaceName() : null);
dto.setTrackingState(getRaceTrackingState()); dto.setTrackingState(getRaceTrackingState());
dto.setFleet(getFleetMetadataOrNull()); dto.setFleet(getFleetMetadataOrNull());
dto.setStart(getStartTimeAsDate()); dto.setStart(getStartTimeAsDate());
@@ -1,5 +1,6 @@
package com.sap.sailing.gwt.ui.shared.dispatch.event; package com.sap.sailing.gwt.ui.shared.dispatch.event;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.gwt.ui.shared.race.RaceMetadataDTO; import com.sap.sailing.gwt.ui.shared.race.RaceMetadataDTO;
import com.sap.sailing.gwt.ui.shared.race.wind.WindStatisticsDTO; import com.sap.sailing.gwt.ui.shared.race.wind.WindStatisticsDTO;
import com.sap.sse.common.Duration; import com.sap.sse.common.Duration;
@@ -15,9 +16,9 @@ public class RaceListRaceDTO extends RaceMetadataDTO<WindStatisticsDTO> {
@SuppressWarnings("unused") @SuppressWarnings("unused")
private RaceListRaceDTO() { private RaceListRaceDTO() {
} }
public RaceListRaceDTO(String regattaName, String raceName) { public RaceListRaceDTO(String leaderboardName, RegattaAndRaceIdentifier regattaAndRaceIdentifier, String raceName) {
super(regattaName, raceName); super(leaderboardName, regattaAndRaceIdentifier, raceName);
} }
public Duration getDuration() { public Duration getDuration() {
@@ -3,21 +3,21 @@ package com.sap.sailing.gwt.ui.shared.dispatch.news;
import java.util.Date; import java.util.Date;
import com.google.gwt.core.shared.GwtIncompatible; import com.google.gwt.core.shared.GwtIncompatible;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
public abstract class AbstractRaceNewsEntryDTO extends NewsEntryDTO { public abstract class AbstractRaceNewsEntryDTO extends NewsEntryDTO {
private String regattaName; private String leaderboardName;
private String trackedRaceName; private RegattaAndRaceIdentifier regattaAndRaceIdentfier;
private String boatClass; private String boatClass;
protected AbstractRaceNewsEntryDTO() { protected AbstractRaceNewsEntryDTO() {
} }
@GwtIncompatible @GwtIncompatible
public AbstractRaceNewsEntryDTO(String regattaName, String trackedRaceName, String raceTitle, String boatClass, Date timestamp) { public AbstractRaceNewsEntryDTO(String leaderboardName, RegattaAndRaceIdentifier regattaAndRaceIdentifier, String raceTitle, String boatClass, Date timestamp) {
super(raceTitle, timestamp, null); super(raceTitle, timestamp, null);
this.regattaName = regattaName; this.leaderboardName = leaderboardName;
this.trackedRaceName = trackedRaceName;
this.boatClass = boatClass; this.boatClass = boatClass;
} }
@@ -26,19 +26,11 @@ public abstract class AbstractRaceNewsEntryDTO extends NewsEntryDTO {
return boatClass; return boatClass;
} }
public String getRegattaName() { public String getLeaderboardName() {
return regattaName; return leaderboardName;
} }
public void setRegattaName(String regattaName) { public RegattaAndRaceIdentifier getRegattaAndRaceIdentfier() {
this.regattaName = regattaName; return regattaAndRaceIdentfier;
}
public String getTrackedRaceName() {
return trackedRaceName;
}
public void setTrackedRaceName(String trackedRaceName) {
this.trackedRaceName = trackedRaceName;
} }
} }
@@ -2,6 +2,7 @@ package com.sap.sailing.gwt.ui.shared.dispatch.news;
import java.util.Date; import java.util.Date;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
public class RaceCompetitorNewsEntryDTO extends AbstractRaceNewsEntryDTO { public class RaceCompetitorNewsEntryDTO extends AbstractRaceNewsEntryDTO {
@@ -17,8 +18,8 @@ public class RaceCompetitorNewsEntryDTO extends AbstractRaceNewsEntryDTO {
private RaceCompetitorNewsEntryDTO() { private RaceCompetitorNewsEntryDTO() {
} }
public RaceCompetitorNewsEntryDTO(String regattaName, String trackedRaceName, String raceTitle, String boatClass, Date timestamp, String competitorName, Type type) { public RaceCompetitorNewsEntryDTO(String leaderboardName, RegattaAndRaceIdentifier regattaAndRaceIdentifier, String raceTitle, String boatClass, Date timestamp, String competitorName, Type type) {
super(regattaName, trackedRaceName, raceTitle, boatClass, timestamp); super(leaderboardName, regattaAndRaceIdentifier, raceTitle, boatClass, timestamp);
this.competitorName = competitorName; this.competitorName = competitorName;
this.type = type; this.type = type;
} }
@@ -2,6 +2,7 @@ package com.sap.sailing.gwt.ui.shared.race;
import java.util.Date; import java.util.Date;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.dispatch.DTO; import com.sap.sailing.gwt.ui.shared.dispatch.DTO;
import com.sap.sailing.gwt.ui.shared.race.wind.AbstractWindDTO; import com.sap.sailing.gwt.ui.shared.race.wind.AbstractWindDTO;
@@ -56,10 +57,11 @@ public abstract class RaceMetadataDTO<WIND extends AbstractWindDTO> implements D
TRACKED_VALID_DATA // tracking is connected and all required data for displaying the race viewer is available TRACKED_VALID_DATA // tracking is connected and all required data for displaying the race viewer is available
} }
private String leaderboardName;
private RegattaAndRaceIdentifier regattaAndRaceIdentifier;
private String regattaName; private String regattaName;
private String regattaDisplayName; private String regattaDisplayName;
private String raceName; private String raceName;
private String trackedRaceName;
private FleetMetadataDTO fleet; private FleetMetadataDTO fleet;
private Date start; private Date start;
private String courseArea; private String courseArea;
@@ -72,8 +74,10 @@ public abstract class RaceMetadataDTO<WIND extends AbstractWindDTO> implements D
protected RaceMetadataDTO() { protected RaceMetadataDTO() {
} }
public RaceMetadataDTO(String regattaName, String raceName) { public RaceMetadataDTO(String leaderboardName, RegattaAndRaceIdentifier regattaAndRaceIdentifier, String raceName) {
this.regattaName = regattaName; this.leaderboardName = leaderboardName;
this.regattaAndRaceIdentifier = regattaAndRaceIdentifier;
this.regattaName = leaderboardName;
this.raceName = raceName; this.raceName = raceName;
} }
@@ -81,6 +85,10 @@ public abstract class RaceMetadataDTO<WIND extends AbstractWindDTO> implements D
return regattaName; return regattaName;
} }
public String getLeaderboardName() {
return leaderboardName;
}
public String getRaceName() { public String getRaceName() {
return raceName; return raceName;
} }
@@ -141,14 +149,6 @@ public abstract class RaceMetadataDTO<WIND extends AbstractWindDTO> implements D
this.trackingState = trackingState; this.trackingState = trackingState;
} }
public String getTrackedRaceName() {
return trackedRaceName;
}
public void setTrackedRaceName(String trackedRaceName) {
this.trackedRaceName = trackedRaceName;
}
public WIND getWind() { public WIND getWind() {
return wind; return wind;
} }
@@ -165,6 +165,10 @@ public abstract class RaceMetadataDTO<WIND extends AbstractWindDTO> implements D
this.regattaDisplayName = regattaDisplayName; this.regattaDisplayName = regattaDisplayName;
} }
public RegattaAndRaceIdentifier getRegattaAndRaceIdentifier() {
return regattaAndRaceIdentifier;
}
@Override @Override
public int compareTo(RaceMetadataDTO<WIND> o) { public int compareTo(RaceMetadataDTO<WIND> o) {
Date thisStart = getStart(); Date thisStart = getStart();