mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-28 14:57:12 +00:00
fixed raceboard link creation for flexible leaderboards
This commit is contained in:
1 parent
afdd645d48
commit
af5226e646
11 files changed
+46
-49
No files matched your search
-6
@@ -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()));
|
||||||
|
|||||||
+2
-1
@@ -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);
|
||||||
|
|||||||
+1
-1
@@ -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);
|
||||||
|
|||||||
+1
-1
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -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) {
|
||||||
|
|||||||
+3
-2
@@ -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() {
|
||||||
|
|||||||
+6
-3
@@ -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());
|
||||||
|
|||||||
+4
-3
@@ -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() {
|
||||||
|
|||||||
+9
-17
@@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+3
-2
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-11
@@ -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();
|
||||||
|
|||||||
Reference in new issue
Block a user