Adjusted the event overview stage DTO model to prepare it for further

development of the UI
This commit is contained in:
Steffen Schaefer committed 2015-05-20 12:15:26 +02:00
1 parent 6704f45d89
commit ed12bc669c
6 files changed
+56 -13

No files matched your search

@@ -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();
@@ -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 {
}
@@ -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;
}
} }
@@ -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,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 {
} }
@@ -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 {
// } // }
} }