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);
}
@Override
public String getRaceViewerURL(String regattaName, String trackedRaceName) {
return EntryPointLinkFactory
.createRaceBoardLink(createRaceBoardLinkParameters(regattaName, regattaName, trackedRaceName));
}
public String getRaceViewerURL(String leaderboardName, RegattaAndRaceIdentifier raceIdentifier) {
return EntryPointLinkFactory
.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.user.client.rpc.AsyncCallback;
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.gwt.common.client.controls.tabbar.TabView;
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(String regattaName, String trackedRaceName);
String getRaceViewerURL(String leaderboardName, RegattaAndRaceIdentifier raceIdentifier);
PlaceNavigation<RegattaRacesPlace> getRegattaRacesNavigation(String regattaName);
PlaceNavigation<AbstractEventRegattaPlace> getRegattaNavigation(String regattaName);
@@ -38,7 +38,7 @@ public class RegattaCompetitionSeries extends Composite {
RegattaCompetitionFleet competitionFleet = new RegattaCompetitionFleet(fleet);
for (RaceListRaceDTO race : fleet.getRaces()) {
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);
}
containerUi.add(competitionFleet);
@@ -514,7 +514,7 @@ public class RaceListColumnFactory {
} else {
String styleNames = data.getViewState() == RaceViewState.FINISHED ? analyseRaceStyle : watchNowStyle;
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));
}
}
@@ -75,8 +75,8 @@ public class UpdatesBoxItem extends Widget {
placeNavigation = presenter.getRegattaLeaderboardNavigation(((LeaderboardNewsEntryDTO) entry).getLeaderboardName());
} else if(entry instanceof AbstractRaceNewsEntryDTO) {
AbstractRaceNewsEntryDTO raceEntry = (AbstractRaceNewsEntryDTO) entry;
if(raceEntry.getTrackedRaceName() != null) {
directLink = presenter.getRaceViewerURL(raceEntry.getRegattaName(), raceEntry.getTrackedRaceName());
if(raceEntry.getRegattaAndRaceIdentfier() != null) {
directLink = presenter.getRaceViewerURL(raceEntry.getLeaderboardName(), raceEntry.getRegattaAndRaceIdentfier());
}
}
if(placeNavigation != null) {
@@ -1,5 +1,6 @@
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.RaceMetadataDTO;
import com.sap.sailing.gwt.ui.shared.race.RaceProgressDTO;
@@ -15,8 +16,8 @@ public class LiveRaceDTO extends RaceMetadataDTO<SimpleWindDTO> {
private LiveRaceDTO() {
}
public LiveRaceDTO(String regattaName, String raceName) {
super(regattaName, raceName);
public LiveRaceDTO(String leaderboardName, RegattaAndRaceIdentifier regattaAndRaceIdentifier, String raceName) {
super(leaderboardName, regattaAndRaceIdentifier, raceName);
}
public FlagStateDTO getFlagState() {
@@ -100,6 +100,10 @@ public class RaceContext {
return !LeaderboardNameConstants.DEFAULT_FLEET_NAME.equals(fleet.getName());
}
public String getLeaderboardName() {
return leaderboard.getName();
}
public String getRegattaName() {
if (leaderboard instanceof RegattaLeaderboard) {
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
if (isLiveOrOfPublicInterest()) {
// 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);
liveRaceDTO.setFlagState(getFlagStateOrNull());
liveRaceDTO.setProgress(getProgressOrNull());
@@ -348,7 +352,7 @@ public class RaceContext {
// and special flags states indicating how the postponed/canceled races will be continued
if (getLiveRaceViewState() == RaceViewState.FINISHED) {
// 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);
liveRaceDTO.setDuration(getDurationOrNull());
liveRaceDTO.setWinner(getWinnerOrNull());
@@ -436,7 +440,6 @@ public class RaceContext {
private void fillRaceData(RaceMetadataDTO<?> dto) {
dto.setViewState(getLiveRaceViewState());
dto.setRegattaDisplayName(getRegattaDisplayName());
dto.setTrackedRaceName(trackedRace != null ? trackedRace.getRaceIdentifier().getRaceName() : null);
dto.setTrackingState(getRaceTrackingState());
dto.setFleet(getFleetMetadataOrNull());
dto.setStart(getStartTimeAsDate());
@@ -1,5 +1,6 @@
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.wind.WindStatisticsDTO;
import com.sap.sse.common.Duration;
@@ -15,9 +16,9 @@ public class RaceListRaceDTO extends RaceMetadataDTO<WindStatisticsDTO> {
@SuppressWarnings("unused")
private RaceListRaceDTO() {
}
public RaceListRaceDTO(String regattaName, String raceName) {
super(regattaName, raceName);
public RaceListRaceDTO(String leaderboardName, RegattaAndRaceIdentifier regattaAndRaceIdentifier, String raceName) {
super(leaderboardName, regattaAndRaceIdentifier, raceName);
}
public Duration getDuration() {
@@ -3,21 +3,21 @@ package com.sap.sailing.gwt.ui.shared.dispatch.news;
import java.util.Date;
import com.google.gwt.core.shared.GwtIncompatible;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
public abstract class AbstractRaceNewsEntryDTO extends NewsEntryDTO {
private String regattaName;
private String trackedRaceName;
private String leaderboardName;
private RegattaAndRaceIdentifier regattaAndRaceIdentfier;
private String boatClass;
protected AbstractRaceNewsEntryDTO() {
}
@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);
this.regattaName = regattaName;
this.trackedRaceName = trackedRaceName;
this.leaderboardName = leaderboardName;
this.boatClass = boatClass;
}
@@ -26,19 +26,11 @@ public abstract class AbstractRaceNewsEntryDTO extends NewsEntryDTO {
return boatClass;
}
public String getRegattaName() {
return regattaName;
public String getLeaderboardName() {
return leaderboardName;
}
public void setRegattaName(String regattaName) {
this.regattaName = regattaName;
}
public String getTrackedRaceName() {
return trackedRaceName;
}
public void setTrackedRaceName(String trackedRaceName) {
this.trackedRaceName = trackedRaceName;
public RegattaAndRaceIdentifier getRegattaAndRaceIdentfier() {
return regattaAndRaceIdentfier;
}
}
@@ -2,6 +2,7 @@ package com.sap.sailing.gwt.ui.shared.dispatch.news;
import java.util.Date;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.gwt.ui.client.StringMessages;
public class RaceCompetitorNewsEntryDTO extends AbstractRaceNewsEntryDTO {
@@ -17,8 +18,8 @@ public class RaceCompetitorNewsEntryDTO extends AbstractRaceNewsEntryDTO {
private RaceCompetitorNewsEntryDTO() {
}
public RaceCompetitorNewsEntryDTO(String regattaName, String trackedRaceName, String raceTitle, String boatClass, Date timestamp, String competitorName, Type type) {
super(regattaName, trackedRaceName, raceTitle, boatClass, timestamp);
public RaceCompetitorNewsEntryDTO(String leaderboardName, RegattaAndRaceIdentifier regattaAndRaceIdentifier, String raceTitle, String boatClass, Date timestamp, String competitorName, Type type) {
super(leaderboardName, regattaAndRaceIdentifier, raceTitle, boatClass, timestamp);
this.competitorName = competitorName;
this.type = type;
}
@@ -2,6 +2,7 @@ package com.sap.sailing.gwt.ui.shared.race;
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.shared.dispatch.DTO;
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
}
private String leaderboardName;
private RegattaAndRaceIdentifier regattaAndRaceIdentifier;
private String regattaName;
private String regattaDisplayName;
private String raceName;
private String trackedRaceName;
private FleetMetadataDTO fleet;
private Date start;
private String courseArea;
@@ -72,8 +74,10 @@ public abstract class RaceMetadataDTO<WIND extends AbstractWindDTO> implements D
protected RaceMetadataDTO() {
}
public RaceMetadataDTO(String regattaName, String raceName) {
this.regattaName = regattaName;
public RaceMetadataDTO(String leaderboardName, RegattaAndRaceIdentifier regattaAndRaceIdentifier, String raceName) {
this.leaderboardName = leaderboardName;
this.regattaAndRaceIdentifier = regattaAndRaceIdentifier;
this.regattaName = leaderboardName;
this.raceName = raceName;
}
@@ -81,6 +85,10 @@ public abstract class RaceMetadataDTO<WIND extends AbstractWindDTO> implements D
return regattaName;
}
public String getLeaderboardName() {
return leaderboardName;
}
public String getRaceName() {
return raceName;
}
@@ -141,14 +149,6 @@ public abstract class RaceMetadataDTO<WIND extends AbstractWindDTO> implements D
this.trackingState = trackingState;
}
public String getTrackedRaceName() {
return trackedRaceName;
}
public void setTrackedRaceName(String trackedRaceName) {
this.trackedRaceName = trackedRaceName;
}
public WIND getWind() {
return wind;
}
@@ -165,6 +165,10 @@ public abstract class RaceMetadataDTO<WIND extends AbstractWindDTO> implements D
this.regattaDisplayName = regattaDisplayName;
}
public RegattaAndRaceIdentifier getRegattaAndRaceIdentifier() {
return regattaAndRaceIdentifier;
}
@Override
public int compareTo(RaceMetadataDTO<WIND> o) {
Date thisStart = getStart();