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.livestream.Livestream;
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.EventOverviewTickerStageDTO;
import com.sap.sailing.gwt.ui.shared.dispatch.event.EventOverviewVideoStageDTO;
@@ -25,7 +26,8 @@ public class EventOverviewStage extends Composite implements RefreshableWidget<E
}
@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(!(lastContent instanceof 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;
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;
public class EventOverviewTickerStageDTO implements EventOverviewStageDTO {
public class EventOverviewTickerStageDTO implements EventOverviewStageContentDTO {
private Date startTime;
private String tickerInfo;
@@ -1,5 +1,5 @@
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) {
this.eventId = eventId;
}
@Override
@GwtIncompatible
public ResultWithTTL<EventOverviewStageDTO> execute(DispatchContext context) {
Event event = context.getRacingEventService().getEvent(eventId);
MillisecondsTimePoint now = MillisecondsTimePoint.now();
Event event = context.getRacingEventService().getEvent(eventId);
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) {
return new ResultWithTTL<EventOverviewStageDTO>(5000, new EventOverviewTickerStageDTO(event.getStartDate()
.asDate(), event.getName()));
ttl = Math.max(ttl, (int) now.until(event.getStartDate()).asMillis());
}
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) {
@@ -59,9 +71,9 @@ public class GetEventOverviewStageAction implements Action<ResultWithTTL<EventOv
}
}
if(!HomeServiceUtil.isSingleRegatta(event) && nextRegatta != null) {
return new ResultWithTTL<EventOverviewStageDTO>(5000, new EventOverviewRegattaTickerStageDTO(
return new EventOverviewRegattaTickerStageDTO(
new RegattaName(nextRegatta.getName()), nextRegatta.getName(), nextRegatta.getStartDate()
.asDate()));
.asDate());
} else {
// TODO find next race or live race
// for (LeaderboardGroup lg : event.getLeaderboardGroups()) {
@@ -76,14 +88,14 @@ public class GetEventOverviewStageAction implements Action<ResultWithTTL<EventOv
// TODO Proper Implementation (Type race)
EventOverviewTickerStageDTO ticker = new EventOverviewRaceTickerStageDTO(new RegattaNameAndRaceName(
"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?
// }
}
// finished
// if(TODO highlights video) {
return new ResultWithTTL<EventOverviewStageDTO>(5000, new EventOverviewVideoStageDTO());
return new EventOverviewVideoStageDTO();
// } else {
// }
}