mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-30 15:57:11 +00:00
Adjusted the event overview stage DTO model to prepare it for further
development of the UI
This commit is contained in:
1 parent
6704f45d89
commit
ed12bc669c
6 files changed
+56
-13
No files matched your search
+3
-1
@@ -7,6 +7,7 @@ import com.sap.sailing.gwt.home.client.place.event.EventView;
|
|||||||
import com.sap.sailing.gwt.home.client.place.event.partials.countdown.Countdown;
|
import com.sap.sailing.gwt.home.client.place.event.partials.countdown.Countdown;
|
||||||
import com.sap.sailing.gwt.home.client.place.event.partials.livestream.Livestream;
|
import com.sap.sailing.gwt.home.client.place.event.partials.livestream.Livestream;
|
||||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.reload.RefreshableWidget;
|
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.reload.RefreshableWidget;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.dispatch.event.EventOverviewStageContentDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.dispatch.event.EventOverviewStageDTO;
|
import com.sap.sailing.gwt.ui.shared.dispatch.event.EventOverviewStageDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.dispatch.event.EventOverviewTickerStageDTO;
|
import com.sap.sailing.gwt.ui.shared.dispatch.event.EventOverviewTickerStageDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.dispatch.event.EventOverviewVideoStageDTO;
|
import com.sap.sailing.gwt.ui.shared.dispatch.event.EventOverviewVideoStageDTO;
|
||||||
@@ -25,7 +26,8 @@ public class EventOverviewStage extends Composite implements RefreshableWidget<E
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setData(EventOverviewStageDTO data, long nextUpdate, int updateNo) {
|
public void setData(EventOverviewStageDTO stageData, long nextUpdate, int updateNo) {
|
||||||
|
EventOverviewStageContentDTO data = stageData.getStageContent();
|
||||||
if(data instanceof EventOverviewVideoStageDTO) {
|
if(data instanceof EventOverviewVideoStageDTO) {
|
||||||
if(!(lastContent instanceof Livestream)) {
|
if(!(lastContent instanceof Livestream)) {
|
||||||
lastContent = new Livestream();
|
lastContent = new Livestream();
|
||||||
|
|||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package com.sap.sailing.gwt.ui.shared.dispatch.event;
|
||||||
|
|
||||||
|
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||||
|
|
||||||
|
public interface EventOverviewStageContentDTO extends IsSerializable {
|
||||||
|
|
||||||
|
}
|
||||||
+23
-1
@@ -2,6 +2,28 @@ package com.sap.sailing.gwt.ui.shared.dispatch.event;
|
|||||||
|
|
||||||
import com.sap.sailing.gwt.ui.shared.dispatch.DTO;
|
import com.sap.sailing.gwt.ui.shared.dispatch.DTO;
|
||||||
|
|
||||||
public interface EventOverviewStageDTO extends DTO {
|
public class EventOverviewStageDTO implements DTO {
|
||||||
|
|
||||||
|
private String eventMessage;
|
||||||
|
private EventOverviewStageContentDTO stageContent;
|
||||||
|
|
||||||
|
// TODO news
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
private EventOverviewStageDTO() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public EventOverviewStageDTO(String eventMessage, EventOverviewStageContentDTO stageContent) {
|
||||||
|
super();
|
||||||
|
this.eventMessage = eventMessage;
|
||||||
|
this.stageContent = stageContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEventMessage() {
|
||||||
|
return eventMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EventOverviewStageContentDTO getStageContent() {
|
||||||
|
return stageContent;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -2,7 +2,7 @@ package com.sap.sailing.gwt.ui.shared.dispatch.event;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
public class EventOverviewTickerStageDTO implements EventOverviewStageDTO {
|
public class EventOverviewTickerStageDTO implements EventOverviewStageContentDTO {
|
||||||
|
|
||||||
private Date startTime;
|
private Date startTime;
|
||||||
private String tickerInfo;
|
private String tickerInfo;
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
package com.sap.sailing.gwt.ui.shared.dispatch.event;
|
package com.sap.sailing.gwt.ui.shared.dispatch.event;
|
||||||
|
|
||||||
public class EventOverviewVideoStageDTO implements EventOverviewStageDTO {
|
public class EventOverviewVideoStageDTO implements EventOverviewStageContentDTO {
|
||||||
|
|
||||||
}
|
}
|
||||||
+21
-9
@@ -27,17 +27,29 @@ public class GetEventOverviewStageAction implements Action<ResultWithTTL<EventOv
|
|||||||
public GetEventOverviewStageAction(UUID eventId) {
|
public GetEventOverviewStageAction(UUID eventId) {
|
||||||
this.eventId = eventId;
|
this.eventId = eventId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@GwtIncompatible
|
@GwtIncompatible
|
||||||
public ResultWithTTL<EventOverviewStageDTO> execute(DispatchContext context) {
|
public ResultWithTTL<EventOverviewStageDTO> execute(DispatchContext context) {
|
||||||
Event event = context.getRacingEventService().getEvent(eventId);
|
|
||||||
MillisecondsTimePoint now = MillisecondsTimePoint.now();
|
MillisecondsTimePoint now = MillisecondsTimePoint.now();
|
||||||
|
Event event = context.getRacingEventService().getEvent(eventId);
|
||||||
EventState state = HomeServiceUtil.calculateEventState(event);
|
EventState state = HomeServiceUtil.calculateEventState(event);
|
||||||
|
int ttl = 1000 * 60 * 5;
|
||||||
|
if(state == EventState.RUNNING) {
|
||||||
|
ttl = 1000 * 60 * 2;
|
||||||
|
}
|
||||||
if(state == EventState.UPCOMING || state == EventState.PLANNED) {
|
if(state == EventState.UPCOMING || state == EventState.PLANNED) {
|
||||||
return new ResultWithTTL<EventOverviewStageDTO>(5000, new EventOverviewTickerStageDTO(event.getStartDate()
|
ttl = Math.max(ttl, (int) now.until(event.getStartDate()).asMillis());
|
||||||
.asDate(), event.getName()));
|
}
|
||||||
|
return new ResultWithTTL<>(ttl, new EventOverviewStageDTO(null, getStageContent(event, state, now)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GwtIncompatible
|
||||||
|
public EventOverviewStageContentDTO getStageContent(Event event, EventState state, MillisecondsTimePoint now) {
|
||||||
|
|
||||||
|
if(state == EventState.UPCOMING || state == EventState.PLANNED) {
|
||||||
|
return new EventOverviewTickerStageDTO(event.getStartDate()
|
||||||
|
.asDate(), event.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(state == EventState.RUNNING) {
|
if(state == EventState.RUNNING) {
|
||||||
@@ -59,9 +71,9 @@ public class GetEventOverviewStageAction implements Action<ResultWithTTL<EventOv
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!HomeServiceUtil.isSingleRegatta(event) && nextRegatta != null) {
|
if(!HomeServiceUtil.isSingleRegatta(event) && nextRegatta != null) {
|
||||||
return new ResultWithTTL<EventOverviewStageDTO>(5000, new EventOverviewRegattaTickerStageDTO(
|
return new EventOverviewRegattaTickerStageDTO(
|
||||||
new RegattaName(nextRegatta.getName()), nextRegatta.getName(), nextRegatta.getStartDate()
|
new RegattaName(nextRegatta.getName()), nextRegatta.getName(), nextRegatta.getStartDate()
|
||||||
.asDate()));
|
.asDate());
|
||||||
} else {
|
} else {
|
||||||
// TODO find next race or live race
|
// TODO find next race or live race
|
||||||
// for (LeaderboardGroup lg : event.getLeaderboardGroups()) {
|
// for (LeaderboardGroup lg : event.getLeaderboardGroups()) {
|
||||||
@@ -76,14 +88,14 @@ public class GetEventOverviewStageAction implements Action<ResultWithTTL<EventOv
|
|||||||
// TODO Proper Implementation (Type race)
|
// TODO Proper Implementation (Type race)
|
||||||
EventOverviewTickerStageDTO ticker = new EventOverviewRaceTickerStageDTO(new RegattaNameAndRaceName(
|
EventOverviewTickerStageDTO ticker = new EventOverviewRaceTickerStageDTO(new RegattaNameAndRaceName(
|
||||||
"Regatta XY", "Race 1"), "Race 1 - Gold Fleet", new Date(new Date().getTime() + 5000));
|
"Regatta XY", "Race 1"), "Race 1 - Gold Fleet", new Date(new Date().getTime() + 5000));
|
||||||
return new ResultWithTTL<EventOverviewStageDTO>(5000, ticker);
|
return ticker;
|
||||||
}
|
}
|
||||||
// TODO clever fallback for live event/regatta?
|
// TODO clever fallback for live event/regatta?
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
// finished
|
// finished
|
||||||
// if(TODO highlights video) {
|
// if(TODO highlights video) {
|
||||||
return new ResultWithTTL<EventOverviewStageDTO>(5000, new EventOverviewVideoStageDTO());
|
return new EventOverviewVideoStageDTO();
|
||||||
// } else {
|
// } else {
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user