-fixed positioning of regatta state in regatta partial

-added some i18n messages
-added legCount and totalLegCount to TrackedRaceDTO
This commit is contained in:
fmittag committed 2014-07-31 15:02:07 +02:00
1 parent 0930b69141
commit 68685e2a32
9 files changed
+45 -19

No files matched your search

@@ -22,6 +22,10 @@ public class TrackedRaceDTO implements Serializable {
public Date timePointOfNewestEvent;
public long delayToLiveInMs;
public int totalLegsCount = -1;
public int currentLegNo = -1;
// public CompetitorDTO leaderOrWinner;
@Override
public int hashCode() {
final int prime = 31;
@@ -1,8 +1,11 @@
package com.sap.sailing.gwt.home.client.i18n;
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.Messages;
public interface TextMessages extends Messages {
public static final TextMessages INSTANCE = GWT.create(TextMessages.class);
String chooseALanguage();
String home();
String events();
@@ -15,6 +18,9 @@ public interface TextMessages extends Messages {
String english();
String fullEventSchedule();
String officalEventWebsite();
String leg();
String leader();
String winner();
String countdownDays();
String countdownHours();
@@ -10,6 +10,9 @@ german=Deutsch
english=English
fullEventSchedule=Full event schedule
officalEventWebsite=Official event website
leg=Leg
leader=Leader
winner=Winner
countdownDays=Days
countdownHours=Hrs
@@ -10,6 +10,9 @@ german=Deutsch
english=English
fullEventSchedule=Full event schedule
officalEventWebsite=Official event website
leg=Leg
leader=Leader
winner=Winner
countdownDays=Tage
countdownHours=Std.
@@ -41,8 +41,8 @@ public class Regatta extends Composite {
private LeaderboardGroupDTO leaderboardGroup;
@UiField DivElement regattaDiv;
@UiField HeadingElement regattaName1;
@UiField HeadingElement regattaName2;
@UiField HeadingElement regattaNameHeading1;
@UiField HeadingElement regattaNameHeading2;
@UiField DivElement leaderboardGroupName;
// @UiField SpanElement scheduledStart;
@UiField DivElement regattaPhasesPanel;
@@ -66,8 +66,7 @@ public class Regatta extends Composite {
@UiField DivElement regattaImageWithoutLink;
@UiField AnchorElement regattaImageWithLink;
@UiField DivElement regattaNameWithoutLink;
@UiField AnchorElement regattaNameWithLink;
@UiField AnchorElement regattaNameLink;
public Regatta(EventDTO event, boolean isNavigatable, Timer timerForClientServerOffset, EventPageNavigator pageNavigator) {
this.event = event;
@@ -86,10 +85,10 @@ public class Regatta extends Composite {
if(isNavigatable) {
regattaDiv.setAttribute("data-rendermode", "link");
regattaImageWithoutLink.getStyle().setDisplay(Display.NONE);
regattaNameWithoutLink.getStyle().setDisplay(Display.NONE);
regattaNameHeading2.getStyle().setDisplay(Display.NONE);
} else {
regattaImageWithLink.getStyle().setDisplay(Display.NONE);
regattaNameWithLink.getStyle().setDisplay(Display.NONE);
regattaNameLink.getStyle().setDisplay(Display.NONE);
}
registerEvents();
@@ -112,8 +111,8 @@ public class Regatta extends Composite {
}
String regattaDisplayName = leaderboard.displayName != null ? leaderboard.displayName : leaderboard.name;
regattaName1.setInnerText(regattaDisplayName);
regattaName2.setInnerText(regattaDisplayName);
regattaNameHeading1.setInnerText(regattaDisplayName);
regattaNameHeading2.setInnerText(regattaDisplayName);
if(raceGroup.leaderboardGroupName != null) {
leaderboardGroupName.setInnerText(raceGroup.leaderboardGroupName);
leaderboardGroupName.setAttribute("data-labeltype", "group1");
@@ -165,8 +164,8 @@ public class Regatta extends Composite {
}
});
Event.sinkEvents(regattaNameWithLink, Event.ONCLICK);
Event.setEventListener(regattaNameWithLink, new EventListener() {
Event.sinkEvents(regattaNameLink, Event.ONCLICK);
Event.setEventListener(regattaNameLink, new EventListener() {
@Override
public void onBrowserEvent(Event event) {
pageNavigator.goToRegattaRaces(raceGroup, leaderboard);
@@ -20,12 +20,10 @@
<div class="{local_res.css.regatta_intro_header}">
<div class="{res.mainCss.grid}">
<div class="{res.mediaCss.small4} {res.mediaCss.columns}">
<a href="javascript:;" ui:field="regattaNameWithLink">
<h3 ui:field="regattaName1" class="{local_res.css.regatta_intro_header_name} {local_res.css.regatta_intro_header_namelink}" />
<a href="javascript:;" ui:field="regattaNameLink">
<h3 ui:field="regattaNameHeading1" class="{local_res.css.regatta_intro_header_name} {local_res.css.regatta_intro_header_namelink}" />
</a>
<div ui:field="regattaNameWithoutLink">
<h3 ui:field="regattaName2" class="{local_res.css.regatta_intro_header_name}"></h3>
</div>
<h3 ui:field="regattaNameHeading2" class="{local_res.css.regatta_intro_header_name}"></h3>
<div ui:field="isLiveDiv" data-labeltype="live" class="{res.mainCss.label}"><ui:text from='{i18n.live}'/></div>
<div ui:field="isFinishedDiv" data-labeltype="finished" class="{res.mainCss.label}"><ui:text from='{i18n.finished}'/></div>
</div>
@@ -56,10 +56,10 @@ public class EventRegattaRacesRace extends UIObject {
@UiField DivElement featureAudio;
@UiField DivElement featureVideo;
// local_res.css.eventregattarace_featureunavailable
@UiField SpanElement currentLegNo;
@UiField SpanElement totalLegsCount;
private final DateTimeFormat raceTimeFormat = DateTimeFormat.getFormat("EEE, h:mm a");
// private final TextMessages textMessages = GWT.create(TextMessages.class);
private final StrippedLeaderboardDTO leaderboard;
private final FleetDTO fleet;
@@ -82,7 +82,7 @@ public class EventRegattaRacesRace extends UIObject {
setElement(uiBinder.createAndBindUi(this));
allConditionalElements = new Element[] {raceWinnerDiv, raceLeaderDiv, watchRaceDiv, analyzeRaceDiv, raceNotTrackedDiv,
raceFeaturesDiv, legProgressDiv, raceFlagDiv, windStatusDiv };
raceFeaturesDiv, legProgressDiv, raceFlagDiv, windStatusDiv, currentLegNo, totalLegsCount };
if(fleet.getColor() != null) {
fleetColor.getStyle().setBackgroundColor(fleet.getColor().getAsHtml());
@@ -141,8 +141,12 @@ public class EventRegattaRacesRace extends UIObject {
showElement(watchRaceDiv);
showElement(raceLeaderDiv);
showElement(legProgressDiv);
showElement(currentLegNo);
showElement(totalLegsCount);
raceTime.setInnerText(raceTimeFormat.format(race.startOfRace));
currentLegNo.setInnerText(String.valueOf(race.trackedRace.currentLegNo));
totalLegsCount.setInnerText(String.valueOf(race.trackedRace.totalLegsCount));
break;
case TRACKED_AND_NOT_LIVE:
@@ -27,7 +27,7 @@
<div ui:field="raceLeaderDiv" class="{local_res.css.eventregattarace_details} {local_res.css.eventregattarace_leader}">
Leader:<br></br> - &nbsp;<span ui:field="raceLeader" class="{local_res.css.eventregattarace_leader_name}"></span>
</div>
<div ui:field="legProgressDiv" class="{local_res.css.eventregattarace_details} {local_res.css.eventregattarace_legs}">Leg (race.leg of race.totalLegs):
<div ui:field="legProgressDiv" class="{local_res.css.eventregattarace_details} {local_res.css.eventregattarace_legs}"><ui:text from='{i18n.leg}'/>&nbps;<span ui:field="currentLegNo" />/<span ui:field="totalLegsCount" />
<div class="{local_res.css.eventregattarace_legs_list}">
<div data-status="r" class="{local_res.css.eventregattarace_legs_leg}"></div>
</div>
@@ -958,6 +958,15 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
trackedRaceDTO = getBaseDomainFactory().createTrackedRaceDTO(trackedRace);
trackedRaceDTO.hasVideoData = false;
trackedRaceDTO.hasAudioData = false;
if(r.getCourse() != null) {
trackedRaceDTO.totalLegsCount = r.getCourse().getLegs().size();
TrackedLeg currentLeg = trackedRace.getCurrentLeg(MillisecondsTimePoint.now());
if(currentLeg != null) {
trackedRaceDTO.currentLegNo = r.getCourse().getIndexOfWaypoint(currentLeg.getLeg().getFrom());
} else {
trackedRaceDTO.currentLegNo = 0;
}
}
Collection<MediaTrack> mediaTracksForRace = getService().getMediaTracksForRace(raceIdentifier);
for(MediaTrack track: mediaTracksForRace) {
switch(track.mimeType.mediaType) {