mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-07 12:51:02 +00:00
Merge remote-tracking branch 'origin/newhome'
This commit is contained in:
commit
5ae5d6a4d4
6 files changed
+58
-21
No files matched your search
+1
@@ -26,6 +26,7 @@ public interface TextMessages extends Messages {
|
|||||||
String pleaseTryAgain();
|
String pleaseTryAgain();
|
||||||
String reloadPage();
|
String reloadPage();
|
||||||
String errorMessageLoadingData();
|
String errorMessageLoadingData();
|
||||||
|
String raceNotScheduled();
|
||||||
|
|
||||||
String countdownDays();
|
String countdownDays();
|
||||||
String countdownHours();
|
String countdownHours();
|
||||||
|
|||||||
+1
@@ -18,6 +18,7 @@ pleaseEnterASearchTerm=Please enter a search term.
|
|||||||
pleaseTryAgain=Please try again...
|
pleaseTryAgain=Please try again...
|
||||||
reloadPage=Reload page
|
reloadPage=Reload page
|
||||||
errorMessageLoadingData=An error occured while loading the data for this page.
|
errorMessageLoadingData=An error occured while loading the data for this page.
|
||||||
|
raceNotScheduled=Not scheduled.
|
||||||
|
|
||||||
countdownDays=Days
|
countdownDays=Days
|
||||||
countdownHours=Hrs
|
countdownHours=Hrs
|
||||||
|
|||||||
+1
@@ -18,6 +18,7 @@ pleaseEnterASearchTerm=Bitte gebe einen Suchbegriff ein.
|
|||||||
pleaseTryAgain=Bitte versuchen sie es erneut...
|
pleaseTryAgain=Bitte versuchen sie es erneut...
|
||||||
reloadPage=Seite neu laden
|
reloadPage=Seite neu laden
|
||||||
errorMessageLoadingData=Beim Laden der Daten für diese Seite ist ein Fehler aufgetreten.
|
errorMessageLoadingData=Beim Laden der Daten für diese Seite ist ein Fehler aufgetreten.
|
||||||
|
raceNotScheduled=Keine Startzeit bekannt
|
||||||
|
|
||||||
countdownDays=Tage
|
countdownDays=Tage
|
||||||
countdownHours=Std.
|
countdownHours=Std.
|
||||||
|
|||||||
+30
-16
@@ -32,22 +32,19 @@ public class EventActivity extends AbstractActivity {
|
|||||||
private final RegattaRaceStatesSettings raceStatesSettings;
|
private final RegattaRaceStatesSettings raceStatesSettings;
|
||||||
|
|
||||||
private EventView view;
|
private EventView view;
|
||||||
|
private EventDTO event;
|
||||||
|
|
||||||
public EventActivity(EventPlace place, EventClientFactory clientFactory) {
|
public EventActivity(EventPlace place, EventClientFactory clientFactory) {
|
||||||
this.clientFactory = clientFactory;
|
this.clientFactory = clientFactory;
|
||||||
this.eventPlace = place;
|
this.eventPlace = place;
|
||||||
|
|
||||||
|
this.view = null;
|
||||||
|
this.event = null;
|
||||||
|
|
||||||
timerForClientServerOffset = new Timer(PlayModes.Replay);
|
timerForClientServerOffset = new Timer(PlayModes.Replay);
|
||||||
serverUpdateTimer = new Timer(PlayModes.Live, serverUpdateRateInMs);
|
serverUpdateTimer = new Timer(PlayModes.Live, serverUpdateRateInMs);
|
||||||
|
|
||||||
raceStatesSettings = new RegattaRaceStatesSettings();
|
raceStatesSettings = new RegattaRaceStatesSettings();
|
||||||
serverUpdateTimer.addTimeListener(new TimeListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void timeChanged(Date newTime, Date oldTime) {
|
|
||||||
// loadAndUpdateEventRaceStatesLog();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -59,6 +56,18 @@ public class EventActivity extends AbstractActivity {
|
|||||||
clientFactory.getSailingService().getEventById(eventUUID, true, new AsyncCallback<EventDTO>() {
|
clientFactory.getSailingService().getEventById(eventUUID, true, new AsyncCallback<EventDTO>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(final EventDTO event) {
|
public void onSuccess(final EventDTO event) {
|
||||||
|
loadRegattaStructure(panel, clientTimeWhenRequestWasSent, event);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
createErrorView("Error while loading the event with service getEventById()", caught, panel);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadRegattaStructure(final AcceptsOneWidget panel, final long clientTimeWhenRequestWasSent, final EventDTO event) {
|
||||||
|
this.event = event;
|
||||||
if(event.getLeaderboardGroups().size() > 0) {
|
if(event.getLeaderboardGroups().size() > 0) {
|
||||||
clientFactory.getSailingService().getRegattaStructureOfEvent(event.id, new AsyncCallback<List<RaceGroupDTO>>() {
|
clientFactory.getSailingService().getRegattaStructureOfEvent(event.id, new AsyncCallback<List<RaceGroupDTO>>() {
|
||||||
@Override
|
@Override
|
||||||
@@ -72,6 +81,17 @@ public class EventActivity extends AbstractActivity {
|
|||||||
timerForClientServerOffset.adjustClientServerOffset(clientTimeWhenRequestWasSent, leaderboardGroupDTO.getCurrentServerTime(), clientTimeWhenResponseWasReceived);
|
timerForClientServerOffset.adjustClientServerOffset(clientTimeWhenRequestWasSent, leaderboardGroupDTO.getCurrentServerTime(), clientTimeWhenResponseWasReceived);
|
||||||
}
|
}
|
||||||
createEventView(event, raceGroups, panel);
|
createEventView(event, raceGroups, panel);
|
||||||
|
|
||||||
|
if(event.isRunning()) {
|
||||||
|
// create update time for race states only for running events
|
||||||
|
serverUpdateTimer.addTimeListener(new TimeListener() {
|
||||||
|
@Override
|
||||||
|
public void timeChanged(Date newTime, Date oldTime) {
|
||||||
|
loadAndUpdateEventRaceStatesLog();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
createEventWithoutRegattasView(event, panel);
|
createEventWithoutRegattasView(event, panel);
|
||||||
}
|
}
|
||||||
@@ -87,13 +107,6 @@ public class EventActivity extends AbstractActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(Throwable caught) {
|
|
||||||
createErrorView("Error while loading the event with service getEventById()", caught, panel);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createErrorView(String errorMessage, Throwable errorReason, AcceptsOneWidget panel) {
|
private void createErrorView(String errorMessage, Throwable errorReason, AcceptsOneWidget panel) {
|
||||||
ErrorView view = clientFactory.createErrorView(errorMessage, errorReason);
|
ErrorView view = clientFactory.createErrorView(errorMessage, errorReason);
|
||||||
panel.setWidget(view.asWidget());
|
panel.setWidget(view.asWidget());
|
||||||
@@ -111,10 +124,10 @@ public class EventActivity extends AbstractActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void loadAndUpdateEventRaceStatesLog() {
|
protected void loadAndUpdateEventRaceStatesLog() {
|
||||||
|
if(view != null && event != null) {
|
||||||
final long clientTimeWhenRequestWasSent = System.currentTimeMillis();
|
final long clientTimeWhenRequestWasSent = System.currentTimeMillis();
|
||||||
UUID eventUUID = UUID.fromString(eventPlace.getEventUuidAsString());
|
|
||||||
|
|
||||||
clientFactory.getSailingService().getRaceStateEntriesForRaceGroup(eventUUID, raceStatesSettings.getVisibleCourseAreas(),
|
clientFactory.getSailingService().getRaceStateEntriesForRaceGroup(event.id, raceStatesSettings.getVisibleCourseAreas(),
|
||||||
raceStatesSettings.getVisibleRegattas(), raceStatesSettings.isShowOnlyCurrentlyRunningRaces(), raceStatesSettings.isShowOnlyRacesOfSameDay(),
|
raceStatesSettings.getVisibleRegattas(), raceStatesSettings.isShowOnlyCurrentlyRunningRaces(), raceStatesSettings.isShowOnlyRacesOfSameDay(),
|
||||||
new MarkedAsyncCallback<List<RegattaOverviewEntryDTO>>(
|
new MarkedAsyncCallback<List<RegattaOverviewEntryDTO>>(
|
||||||
new AsyncCallback<List<RegattaOverviewEntryDTO>>() {
|
new AsyncCallback<List<RegattaOverviewEntryDTO>>() {
|
||||||
@@ -137,5 +150,6 @@ public class EventActivity extends AbstractActivity {
|
|||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+22
-5
@@ -25,7 +25,7 @@ import com.sap.sse.gwt.client.player.Timer;
|
|||||||
public class EventRegattaRacesRace extends UIObject {
|
public class EventRegattaRacesRace extends UIObject {
|
||||||
private static EventRegattaRacesRaceUiBinder uiBinder = GWT.create(EventRegattaRacesRaceUiBinder.class);
|
private static EventRegattaRacesRaceUiBinder uiBinder = GWT.create(EventRegattaRacesRaceUiBinder.class);
|
||||||
|
|
||||||
private enum SimpleRaceStates { NOT_TRACKED, TRACKED_AND_NOT_LIVE, TRACKED_AND_LIVE };
|
private enum SimpleRaceStates { NOT_TRACKED, TRACKED_AND_FINISHED, TRACKED_AND_RUNNING, TRACKED_BUT_NOT_SCHEDULED };
|
||||||
|
|
||||||
interface EventRegattaRacesRaceUiBinder extends UiBinder<DivElement, EventRegattaRacesRace> {
|
interface EventRegattaRacesRaceUiBinder extends UiBinder<DivElement, EventRegattaRacesRace> {
|
||||||
}
|
}
|
||||||
@@ -38,6 +38,7 @@ public class EventRegattaRacesRace extends UIObject {
|
|||||||
@UiField SpanElement averageRaceWind;
|
@UiField SpanElement averageRaceWind;
|
||||||
|
|
||||||
@UiField DivElement raceNotTrackedDiv;
|
@UiField DivElement raceNotTrackedDiv;
|
||||||
|
@UiField DivElement raceNotScheduledDiv;
|
||||||
@UiField DivElement watchRaceDiv;
|
@UiField DivElement watchRaceDiv;
|
||||||
@UiField DivElement analyzeRaceDiv;
|
@UiField DivElement analyzeRaceDiv;
|
||||||
@UiField AnchorElement watchRaceLink;
|
@UiField AnchorElement watchRaceLink;
|
||||||
@@ -83,7 +84,7 @@ public class EventRegattaRacesRace extends UIObject {
|
|||||||
EventRegattaRacesResources.INSTANCE.css().ensureInjected();
|
EventRegattaRacesResources.INSTANCE.css().ensureInjected();
|
||||||
setElement(uiBinder.createAndBindUi(this));
|
setElement(uiBinder.createAndBindUi(this));
|
||||||
|
|
||||||
allConditionalElements = new Element[] {raceWinnerDiv, raceLeaderDiv, watchRaceDiv, analyzeRaceDiv, raceNotTrackedDiv,
|
allConditionalElements = new Element[] {raceWinnerDiv, raceLeaderDiv, watchRaceDiv, analyzeRaceDiv, raceNotTrackedDiv, raceNotScheduledDiv,
|
||||||
raceFeaturesDiv, legProgressDiv, raceFlagDiv, windStatusDiv };
|
raceFeaturesDiv, legProgressDiv, raceFlagDiv, windStatusDiv };
|
||||||
|
|
||||||
if(fleet.getColor() != null) {
|
if(fleet.getColor() != null) {
|
||||||
@@ -127,7 +128,20 @@ public class EventRegattaRacesRace extends UIObject {
|
|||||||
SimpleRaceStates simpleRaceState = SimpleRaceStates.NOT_TRACKED;
|
SimpleRaceStates simpleRaceState = SimpleRaceStates.NOT_TRACKED;
|
||||||
|
|
||||||
if(race != null && race.trackedRace != null) {
|
if(race != null && race.trackedRace != null) {
|
||||||
simpleRaceState = isLive() ? SimpleRaceStates.TRACKED_AND_LIVE : SimpleRaceStates.TRACKED_AND_NOT_LIVE;
|
if(isLive()) {
|
||||||
|
simpleRaceState = SimpleRaceStates.TRACKED_AND_RUNNING;
|
||||||
|
if(race.startOfRace == null) {
|
||||||
|
simpleRaceState = SimpleRaceStates.TRACKED_BUT_NOT_SCHEDULED;
|
||||||
|
} else if (race.endOfRace != null) {
|
||||||
|
simpleRaceState = SimpleRaceStates.TRACKED_AND_FINISHED;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(race.startOfRace == null) {
|
||||||
|
simpleRaceState = SimpleRaceStates.TRACKED_BUT_NOT_SCHEDULED;
|
||||||
|
} else if (race.endOfRace != null) {
|
||||||
|
simpleRaceState = SimpleRaceStates.TRACKED_AND_FINISHED;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return simpleRaceState;
|
return simpleRaceState;
|
||||||
}
|
}
|
||||||
@@ -147,7 +161,10 @@ public class EventRegattaRacesRace extends UIObject {
|
|||||||
case NOT_TRACKED:
|
case NOT_TRACKED:
|
||||||
showElement(raceNotTrackedDiv);
|
showElement(raceNotTrackedDiv);
|
||||||
break;
|
break;
|
||||||
case TRACKED_AND_LIVE:
|
case TRACKED_BUT_NOT_SCHEDULED:
|
||||||
|
showElement(raceNotScheduledDiv);
|
||||||
|
break;
|
||||||
|
case TRACKED_AND_RUNNING:
|
||||||
showElement(watchRaceDiv);
|
showElement(watchRaceDiv);
|
||||||
|
|
||||||
if(race.startOfRace != null) {
|
if(race.startOfRace != null) {
|
||||||
@@ -164,7 +181,7 @@ public class EventRegattaRacesRace extends UIObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case TRACKED_AND_NOT_LIVE:
|
case TRACKED_AND_FINISHED:
|
||||||
showElement(analyzeRaceDiv);
|
showElement(analyzeRaceDiv);
|
||||||
|
|
||||||
if(race.trackedRaceStatistics.hasLeaderData && race.trackedRaceStatistics.leaderOrWinner != null) {
|
if(race.trackedRaceStatistics.hasLeaderData && race.trackedRaceStatistics.leaderOrWinner != null) {
|
||||||
|
|||||||
+3
@@ -41,6 +41,9 @@
|
|||||||
<div ui:field="raceNotTrackedDiv" class="{local_res.css.eventregattarace_action} {local_res.css.eventregattarace_actiondisabled}">
|
<div ui:field="raceNotTrackedDiv" class="{local_res.css.eventregattarace_action} {local_res.css.eventregattarace_actiondisabled}">
|
||||||
<ui:text from='{i18n.eventRegattaRaceNotTracked}'/>
|
<ui:text from='{i18n.eventRegattaRaceNotTracked}'/>
|
||||||
</div>
|
</div>
|
||||||
|
<div ui:field="raceNotScheduledDiv" class="{local_res.css.eventregattarace_action} {local_res.css.eventregattarace_actiondisabled}">
|
||||||
|
<ui:text from='{i18n.raceNotScheduled}'/>
|
||||||
|
</div>
|
||||||
<div ui:field="watchRaceDiv" class="{local_res.css.eventregattarace_action}">
|
<div ui:field="watchRaceDiv" class="{local_res.css.eventregattarace_action}">
|
||||||
<a ui:field="watchRaceLink" class="{res.mainCss.button} {local_res.css.eventregattarace_action_watch}"><ui:text from='{i18n.eventRegattaRaceWatch}'/></a>
|
<a ui:field="watchRaceLink" class="{res.mainCss.button} {local_res.css.eventregattarace_action_watch}"><ui:text from='{i18n.eventRegattaRaceWatch}'/></a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in new issue
Block a user