Merge remote-tracking branch 'origin/design2015-seriesevents' into

design2015-mobileeventlist

Conflicts:
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventsOverviewRecentYearEvent.java
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventsOverviewRecentYearEvent.ui.xml
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/eventlist/EventListEventDTO.java
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/start/EventStageDTO.java
This commit is contained in:
Steffen Schaefer committed 2015-08-20 13:50:30 +02:00
commit ac39341863
43 files changed
+392 -101

No files matched your search

@@ -70,7 +70,7 @@ public class EventOverviewStage extends Composite {
public void setupRefresh(RefreshManager refreshManager) {
this.refreshManager = refreshManager;
refreshManager.add(refreshable, new GetEventOverviewStageAction(presenter.getCtx().getEventDTO().getId()));
refreshManager.add(refreshable, new GetEventOverviewStageAction(presenter.getCtx().getEventDTO().getId(), false));
if(presenter.getCtx().getEventDTO().getState() == EventState.RUNNING) {
refreshManager.add(newsRefreshable, new GetEventOverviewNewsAction(presenter.getCtx().getEventDTO().getId(), 15));
@@ -72,6 +72,11 @@ public class EventsOverviewRecentYear extends Composite {
for (EventListEventDTO eventDTO : events) {
PlaceNavigation<EventDefaultPlace> eventNavigation = navigator.getEventNavigation(eventDTO.getId().toString(), eventDTO.getBaseURL(), eventDTO.isOnRemoteServer());
RecentEventTeaser recentEvent = new RecentEventTeaser(eventNavigation, eventDTO, eventDTO.getState().getListStateMarker());
if (eventDTO.getEventSeries() != null) {
String seriesId = eventDTO.getEventSeries().getId().toString(), baseUrl = eventDTO.getBaseURL();
PlaceNavigation<?> seriesNavigation = navigator.getEventSeriesNavigation(seriesId, baseUrl, eventDTO.isOnRemoteServer());
recentEvent.setSeriesInformation(seriesNavigation, eventDTO.getEventSeries());
}
recentEventsTeaserPanel.add(recentEvent);
}
headerDiv.addDomHandler(new ClickHandler() {
@@ -7,6 +7,7 @@ import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.client.shared.event.EventTeaser;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventSeriesDTO;
import com.sap.sailing.gwt.ui.shared.general.EventMetadataDTO;
import com.sap.sailing.gwt.ui.shared.general.LabelType;
@@ -23,6 +24,10 @@ public class RecentEventTeaser extends Composite {
eventTeaser = new EventTeaser(placeNavigation, event, labelType);
initWidget(uiBinder.createAndBindUi(this));
}
public void setSeriesInformation(PlaceNavigation<?> seriesNavigation, EventListEventSeriesDTO eventSeries) {
eventTeaser.setSeriesInformation(seriesNavigation, eventSeries);
}
public void hideImage(boolean hide) {
eventTeaser.hideImage(hide);
@@ -1,6 +1,7 @@
/**
* A event teaser with image
*/
@def SERIES_CORNER_SIZE 6em;
.eventteasercontainer {
font-size: 1rem;
text-align: center;
@@ -40,6 +41,34 @@
position: absolute;
bottom: 0;
right: 0;
width: SERIES_CORNER_SIZE;
height: SERIES_CORNER_SIZE;
overflow: hidden;
}
.eventteaser_series .eventteaser_series_corner {
position: absolute;
border-style: solid;
border-color: rgba(240, 171, 0, 0.75) transparent;
border-width: 0 0 SERIES_CORNER_SIZE SERIES_CORNER_SIZE;
}
.eventteaser_series .eventteaser_series_text {
display: block;
text-align: center;
color: white;
font-weight: 600;
font-size: 120%;
width: 7em;
height: 3.5em;
transform: rotate(315deg) translate(-1.25em, 1.6em);
}
.eventteaser_series .eventteaser_series_eventcount {
position: absolute;
bottom: 0.5em;
right: 0.5em;
text-align: right;
font-weight: 600;
color: white;
font-size: 120%;
}
.eventteaser_name {
width: 100%;
@@ -17,23 +17,18 @@ import com.sap.sailing.gwt.home.client.shared.EventDatesFormatterUtil;
import com.sap.sailing.gwt.home.client.shared.LabelTypeUtil;
import com.sap.sailing.gwt.home.client.shared.LongNamesUtil;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventSeriesDTO;
import com.sap.sailing.gwt.ui.shared.general.EventMetadataDTO;
import com.sap.sailing.gwt.ui.shared.general.LabelType;
public class EventTeaser extends Composite {
@UiField
SpanElement eventName;
@UiField
SpanElement venue;
@UiField
SpanElement eventDate;
@UiField
AnchorElement eventLink;
@UiField
DivElement eventImage;
@UiField
DivElement eventState;
@UiField SpanElement eventName;
@UiField SpanElement venue;
@UiField SpanElement eventDate;
@UiField AnchorElement eventLink;
@UiField DivElement eventImage;
@UiField DivElement eventState;
private final EventMetadataDTO event;
@@ -77,7 +72,6 @@ public class EventTeaser extends Composite {
eventDate.setInnerText(EventDatesFormatterUtil.formatDateRangeWithoutYear(event.getStartDate(), event.getEndDate()));
final StringBuilder thumbnailUrlBuilder = new StringBuilder("url('");
final String thumbnailImageUrl = event.getThumbnailImageURL();
if (thumbnailImageUrl == null || thumbnailImageUrl.isEmpty()) {
thumbnailUrlBuilder.append(EventTeaserResources.INSTANCE.defaultEventPhotoImage().getSafeUri().asString());
@@ -87,7 +81,11 @@ public class EventTeaser extends Composite {
thumbnailUrlBuilder.append("')");
eventImage.getStyle().setBackgroundImage(thumbnailUrlBuilder.toString());
}
public void setSeriesInformation(PlaceNavigation<?> seriesNavigation, EventListEventSeriesDTO eventSeries) {
eventImage.appendChild(new EventTeaserSeriesInfoCorner(seriesNavigation, eventSeries).getElement());
}
public void hideImage(boolean hide) {
if (hide) {
eventImage.getStyle().setDisplay(Display.NONE);
@@ -18,6 +18,9 @@ public interface EventTeaserResources extends ClientBundle {
String eventteaser_title_name();
String eventteaser_image();
String eventteaser_series();
String eventteaser_series_corner();
String eventteaser_series_text();
String eventteaser_series_eventcount();
String eventteaser_name();
String eventteaser_title_name_label();
String label();
@@ -0,0 +1,32 @@
package com.sap.sailing.gwt.home.client.shared.event;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.AnchorElement;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.UIObject;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventSeriesDTO;
public class EventTeaserSeriesInfoCorner extends UIObject {
private static EventTeaserSeriesInfoCornerUiBinder uiBinder = GWT.create(EventTeaserSeriesInfoCornerUiBinder.class);
interface EventTeaserSeriesInfoCornerUiBinder extends UiBinder<DivElement, EventTeaserSeriesInfoCorner> {
}
@UiField DivElement seriesEventsCountUi;
@UiField AnchorElement seriesInfoTextUi;
public EventTeaserSeriesInfoCorner(PlaceNavigation<?> seriesNavigation, EventListEventSeriesDTO eventSeries) {
setElement(uiBinder.createAndBindUi(this));
int eventCount = eventSeries.getEventsCount();
seriesInfoTextUi.setTitle(eventSeries.getDisplayName() + " - " +
StringMessages.INSTANCE.eventsHaveTakenPlace(eventSeries.getEventsCount()));
seriesNavigation.configureAnchorElement(seriesInfoTextUi);
seriesEventsCountUi.setInnerText(String.valueOf(eventCount));
}
}
@@ -0,0 +1,10 @@
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:with field="i18n" type="com.sap.sailing.gwt.common.client.i18n.TextMessages" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.shared.event.EventTeaserResources" />
<div class="{local_res.css.eventteaser_series}">
<div class="{local_res.css.eventteaser_series_corner}"></div>
<a class="{local_res.css.eventteaser_series_text}" ui:field="seriesInfoTextUi"><ui:text from="{i18n.series}"/></a>
<div class="{local_res.css.eventteaser_series_eventcount}" ui:field="seriesEventsCountUi"></div>
</div>
</ui:UiBinder>
@@ -0,0 +1,32 @@
package com.sap.sailing.gwt.home.mobile.partials.recents;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.AnchorElement;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.UIObject;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventSeriesDTO;
public class EventOverviewRecentSeriesInfo extends UIObject {
private static EventOverviewRecentSeriesInfoUiBinder uiBinder = GWT
.create(EventOverviewRecentSeriesInfoUiBinder.class);
interface EventOverviewRecentSeriesInfoUiBinder extends UiBinder<AnchorElement, EventOverviewRecentSeriesInfo> {
}
@UiField DivElement seriesNameUi;
@UiField DivElement seriesInfoUi;
private final AnchorElement seriesUi;
public EventOverviewRecentSeriesInfo(PlaceNavigation<?> seriesNavigation, EventListEventSeriesDTO eventSeries) {
setElement(seriesUi = uiBinder.createAndBindUi(this));
seriesNameUi.setInnerText(eventSeries.getDisplayName());
seriesInfoUi.setInnerText(StringMessages.INSTANCE.eventsHaveTakenPlace(eventSeries.getEventsCount()));
seriesNavigation.configureAnchorElement(seriesUi);
}
}
@@ -0,0 +1,15 @@
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.home.mobile.resources.SharedResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.mobile.partials.recents.EventsOverviewRecentResources" />
<a class="{local_res.css.eventsoverviewrecent_event} {local_res.css.seriesInfo}">
<div class="{local_res.css.eventteaser_title}">
<div class="{local_res.css.eventteaser_title_name}" ui:field="seriesNameUi"></div>
<div class="{local_res.css.eventteaser_title_location}" ui:field="seriesInfoUi"></div>
</div>
<div class="{local_res.css.eventsoverviewrecent_event_arrow}">
<img src="images/home/arrow-down-grey.png" class="{local_res.css.eventsoverviewrecent_event_arrow_image}"></img>
</div>
</a>
</ui:UiBinder>
@@ -197,3 +197,14 @@
.togglecontainerhidden {
display: none;
}
.seriesInfo {
display: block;
padding: 0.5rem;
padding-left: 3em;
}
.seriesInfo .eventteaser_title {
font-size: 93.3333333333%;
}
.seriesInfo .eventteaser_title_name {
color: #bcbcbc;
}
@@ -46,6 +46,7 @@ public interface EventsOverviewRecentResources extends ClientBundle {
String eventsoverviewrecent_event_arrow();
String eventsoverviewrecent_event_arrow_image();
String togglecontainerhidden();
String seriesInfo();
}
@Source("com/sap/sailing/gwt/home/images/default_event_photo.jpg")
@@ -51,11 +51,15 @@ public class EventsOverviewRecentYear extends Composite {
this.eventsCount.setInnerText(i18n.eventsCount(events.size()));
boolean first = true;
for (EventListEventDTO eventDTO : events) {
PlaceNavigation<EventDefaultPlace> eventNavigation = navigator.getEventNavigation(eventDTO.getId()
.toString(), eventDTO.getBaseURL(), eventDTO.isOnRemoteServer());
EventsOverviewRecentYearEvent recentEvent = new EventsOverviewRecentYearEvent(eventNavigation, eventDTO,
eventDTO.getState().getListStateMarker(), first || eventDTO.isRunning());
if (eventDTO.getEventSeries() != null) {
String seriesId = eventDTO.getEventSeries().getId().toString(), baseUrl = eventDTO.getBaseURL();
PlaceNavigation<?> seriesNavigation = navigator.getEventSeriesNavigation(seriesId, baseUrl, eventDTO.isOnRemoteServer());
recentEvent.setSeriesInformation(seriesNavigation, eventDTO.getEventSeries());
}
recentEventsTeaserPanel.add(recentEvent);
if (first) {
first = false;
@@ -11,6 +11,7 @@ import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.client.shared.EventDatesFormatterUtil;
import com.sap.sailing.gwt.home.client.shared.LabelTypeUtil;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventSeriesDTO;
import com.sap.sailing.gwt.ui.shared.general.EventMetadataDTO;
import com.sap.sailing.gwt.ui.shared.general.LabelType;
@@ -20,6 +21,8 @@ public class EventsOverviewRecentYearEvent extends Widget {
interface RecentEventTeaserUiBinder extends UiBinder<Element, EventsOverviewRecentYearEvent> {
}
private final Element eventContainerUi;
@UiField AnchorElement eventLinkUi;
@UiField DivElement eventStateUi;
@@ -30,7 +33,7 @@ public class EventsOverviewRecentYearEvent extends Widget {
public EventsOverviewRecentYearEvent(final PlaceNavigation<?> placeNavigation, final EventMetadataDTO event,
LabelType labelType, boolean isTeaserEvent) {
EventsOverviewRecentResources.INSTANCE.css().ensureInjected();
setElement(uiBinder.createAndBindUi(this));
setElement(eventContainerUi = uiBinder.createAndBindUi(this));
eventNameUi.setInnerText(event.getDisplayName());
eventLinkUi.setTitle(event.getDisplayName());
eventLinkUi.setHref(placeNavigation.getTargetUrl());
@@ -40,4 +43,7 @@ public class EventsOverviewRecentYearEvent extends Widget {
eventDateUi.setInnerText(EventDatesFormatterUtil.formatDateRangeWithoutYear(event.getStartDate(), event.getEndDate()));
}
public void setSeriesInformation(PlaceNavigation<?> seriesNavigation, EventListEventSeriesDTO eventSeries) {
eventContainerUi.appendChild(new EventOverviewRecentSeriesInfo(seriesNavigation, eventSeries).getElement());
}
}
@@ -7,7 +7,7 @@
type="com.sap.sailing.gwt.home.mobile.resources.SharedResources" />
<ui:with field="local_res"
type="com.sap.sailing.gwt.home.mobile.partials.recents.EventsOverviewRecentResources" />
<div>
<a ui:field="eventLinkUi">
<div class="{local_res.css.eventsoverviewrecent_event}">
<div class="{local_res.css.eventteaser_title}">
@@ -26,4 +26,5 @@
</div>
</div>
</a>
</div>
</ui:UiBinder>
@@ -1,13 +1,13 @@
package com.sap.sailing.gwt.home.mobile.partials.stage;
import com.sap.sailing.gwt.home.mobile.app.MobilePlacesNavigator;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
public class LiveEventStageTeaser extends StageTeaser {
private final LiveStageTeaserBand teaserBand;
public LiveEventStageTeaser(EventListEventDTO event, MobilePlacesNavigator placeNavigator) {
public LiveEventStageTeaser(EventLinkAndMetadataDTO event, MobilePlacesNavigator placeNavigator) {
super(event);
title.setInnerText(event.getDisplayName());
@@ -4,7 +4,7 @@ import com.google.gwt.event.dom.client.ClickEvent;
import com.sap.sailing.gwt.common.client.i18n.TextMessages;
import com.sap.sailing.gwt.home.client.shared.EventDatesFormatterUtil;
import com.sap.sailing.gwt.home.mobile.app.MobilePlacesNavigator;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
/**
* Teaser band for a live event on the homepage stage
@@ -13,7 +13,7 @@ import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
*/
public class LiveStageTeaserBand extends StageTeaserBand {
public LiveStageTeaserBand(EventListEventDTO event, MobilePlacesNavigator placeNavigator) {
public LiveStageTeaserBand(EventLinkAndMetadataDTO event, MobilePlacesNavigator placeNavigator) {
super(event, placeNavigator);
bandTitle.setInnerText(event.getDisplayName());
@@ -2,7 +2,7 @@ package com.sap.sailing.gwt.home.mobile.partials.stage;
import com.sap.sailing.gwt.home.client.shared.EventDatesFormatterUtil;
import com.sap.sailing.gwt.home.mobile.app.MobilePlacesNavigator;
import com.sap.sailing.gwt.ui.shared.start.EventStageDTO;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
/**
* Teaser band with no action on the homepage stage
@@ -10,7 +10,7 @@ import com.sap.sailing.gwt.ui.shared.start.EventStageDTO;
*/
public class NoActionStageTeaserBand extends StageTeaserBand {
public NoActionStageTeaserBand(EventStageDTO event, MobilePlacesNavigator placeNavigator) {
public NoActionStageTeaserBand(EventListEventDTO event, MobilePlacesNavigator placeNavigator) {
super(event, placeNavigator);
bandTitle.setInnerText(event.getDisplayName());
@@ -1,13 +1,13 @@
package com.sap.sailing.gwt.home.mobile.partials.stage;
import com.sap.sailing.gwt.home.mobile.app.MobilePlacesNavigator;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
public class PopularEventStageTeaser extends StageTeaser {
private final PopularEventStageTeaserBand teaserBand;
public PopularEventStageTeaser(EventListEventDTO event, MobilePlacesNavigator placeNavigator) {
public PopularEventStageTeaser(EventLinkAndMetadataDTO event, MobilePlacesNavigator placeNavigator) {
super(event);
title.setInnerText(event.getDisplayName());
@@ -4,7 +4,7 @@ import com.google.gwt.event.dom.client.ClickEvent;
import com.sap.sailing.gwt.common.client.i18n.TextMessages;
import com.sap.sailing.gwt.home.client.shared.EventDatesFormatterUtil;
import com.sap.sailing.gwt.home.mobile.app.MobilePlacesNavigator;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
/**
* Teaser band for a popular but finished event on the homepage stage
@@ -13,7 +13,7 @@ import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
*/
public class PopularEventStageTeaserBand extends StageTeaserBand {
public PopularEventStageTeaserBand(EventListEventDTO event, MobilePlacesNavigator placeNavigator) {
public PopularEventStageTeaserBand(EventLinkAndMetadataDTO event, MobilePlacesNavigator placeNavigator) {
super(event, placeNavigator);
bandTitle.setInnerText(event.getDisplayName());
@@ -11,7 +11,7 @@ import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.mobile.app.MobilePlacesNavigator;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
import com.sap.sse.gwt.client.controls.carousel.WidgetCarousel;
public class Stage extends Composite {
@@ -39,8 +39,8 @@ public class Stage extends Composite {
stageTeaserComposites = new ArrayList<StageTeaser>();
}
public void setFeaturedEvents(List<? extends EventListEventDTO> list) {
for (EventListEventDTO event : list) {
public void setFeaturedEvents(List<? extends EventLinkAndMetadataDTO> list) {
for (EventLinkAndMetadataDTO event : list) {
switch (event.getStageType()) {
case POPULAR:
stageTeaser = new PopularEventStageTeaser(event, placeNavigator);
@@ -13,7 +13,7 @@ import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.mobile.partials.countdown.CountdownTicker;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.impl.MillisecondsTimePoint;
import com.sap.sse.gwt.client.controls.carousel.LazyLoadable;
@@ -37,7 +37,7 @@ public abstract class StageTeaser extends Composite implements LazyLoadable {
}
private static StageTeaserUiBinder uiBinder = GWT.create(StageTeaserUiBinder.class);
private final EventListEventDTO event;
private final EventLinkAndMetadataDTO event;
@Override
public void doInitializeLazyComponents() {
@@ -50,7 +50,7 @@ public abstract class StageTeaser extends Composite implements LazyLoadable {
protected void handleUserAction() {
}
public StageTeaser(EventListEventDTO event) {
public StageTeaser(EventLinkAndMetadataDTO event) {
this.event = event;
StageResources.INSTANCE.css().ensureInjected();
@@ -13,7 +13,7 @@ import com.sap.sailing.gwt.home.client.place.event.EventDefaultPlace;
import com.sap.sailing.gwt.home.mobile.app.MobilePlacesNavigator;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigator;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
public abstract class StageTeaserBand extends Composite {
@@ -29,10 +29,10 @@ public abstract class StageTeaserBand extends Composite {
@UiField Anchor actionLink;
private final MobilePlacesNavigator placeNavigator;
private final EventListEventDTO event;
private final EventLinkAndMetadataDTO event;
private final PlaceNavigation<EventDefaultPlace> eventNavigation;
public StageTeaserBand(EventListEventDTO event, MobilePlacesNavigator placeNavigator) {
public StageTeaserBand(EventLinkAndMetadataDTO event, MobilePlacesNavigator placeNavigator) {
this.event = event;
this.placeNavigator = placeNavigator;
@@ -51,7 +51,7 @@ public abstract class StageTeaserBand extends Composite {
return placeNavigator;
}
public EventListEventDTO getEvent() {
public EventLinkAndMetadataDTO getEvent() {
return event;
}
@@ -1,13 +1,13 @@
package com.sap.sailing.gwt.home.mobile.partials.stage;
import com.sap.sailing.gwt.home.mobile.app.MobilePlacesNavigator;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
public class UpcomingEventStageTeaser extends StageTeaser {
private final UpcomingEventStageTeaserBand teaserBand;
public UpcomingEventStageTeaser(EventListEventDTO event, MobilePlacesNavigator placeNavigator) {
public UpcomingEventStageTeaser(EventLinkAndMetadataDTO event, MobilePlacesNavigator placeNavigator) {
super(event);
title.setInnerText(event.getDisplayName());
@@ -4,7 +4,7 @@ import com.google.gwt.event.dom.client.ClickEvent;
import com.sap.sailing.gwt.common.client.i18n.TextMessages;
import com.sap.sailing.gwt.home.client.shared.EventDatesFormatterUtil;
import com.sap.sailing.gwt.home.mobile.app.MobilePlacesNavigator;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
/**
* Teaser band for an upcoming event on the homepage stage
@@ -13,7 +13,7 @@ import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
*/
public class UpcomingEventStageTeaserBand extends StageTeaserBand {
public UpcomingEventStageTeaserBand(EventListEventDTO event, MobilePlacesNavigator placeNavigator) {
public UpcomingEventStageTeaserBand(EventLinkAndMetadataDTO event, MobilePlacesNavigator placeNavigator) {
super(event, placeNavigator);
bandTitle.setInnerText(event.getDisplayName());
@@ -70,7 +70,7 @@ public class EventViewImpl extends Composite implements EventView {
private void setupOverviewStage(UUID eventId) {
overviewStageUi = new EventOverviewStage(currentPresenter);
refreshManager.add(overviewStageUi, new GetEventOverviewStageAction(eventId));
refreshManager.add(overviewStageUi, new GetEventOverviewStageAction(eventId, true));
}
private void setupListContent(EventViewDTO event) {
@@ -7,7 +7,7 @@ import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.mobile.app.MobilePlacesNavigator;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.ui.shared.dispatch.start.EventQuickfinderDTO;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
public interface StartView {
@@ -21,6 +21,6 @@ public interface StartView {
PlaceNavigation<?> getEventNavigation(EventQuickfinderDTO event);
}
void setFeaturedEvents(List<? extends EventListEventDTO> list);
void setFeaturedEvents(List<? extends EventLinkAndMetadataDTO> list);
}
@@ -15,7 +15,7 @@ import com.sap.sailing.gwt.home.mobile.partials.stage.Stage;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.dispatch.start.EventQuickfinderDTO;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
import com.sap.sailing.gwt.ui.shared.general.EventState;
public class StartViewImpl extends Composite implements StartView {
@@ -43,7 +43,7 @@ public class StartViewImpl extends Composite implements StartView {
}
@Override
public void setFeaturedEvents(List<? extends EventListEventDTO> list) {
public void setFeaturedEvents(List<? extends EventLinkAndMetadataDTO> list) {
stage.setFeaturedEvents(list);
}
@@ -102,6 +102,7 @@ public class PlaceNavigation<T extends Place> {
public void onBrowserEvent(Event event) {
if (LinkUtil.handleLinkClick(event)) {
event.preventDefault();
event.stopPropagation();
goToPlace();
}
}
@@ -0,0 +1,67 @@
package com.sap.sailing.gwt.server;
import java.net.URL;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import com.sap.sailing.domain.base.EventBase;
import com.sap.sailing.gwt.server.HomeServiceUtil.EventVisitor;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventSeriesDTO;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListViewDTO;
import com.sap.sailing.gwt.ui.shared.general.EventState;
import com.sap.sailing.server.RacingEventService;
public class EventListDataCalculator implements EventVisitor {
private final Map<String, EventListEventDTO> lastestEventPerSeries = new HashMap<>();
private final Map<String, Integer> numberOfEventsPerSeries = new HashMap<>();
private final EventListViewDTO result = new EventListViewDTO();
private final RacingEventService service;
public EventListDataCalculator(RacingEventService service) {
this.service = service;
}
@Override
public void visit(EventBase event, boolean onRemoteServer, URL baseURL) {
EventListEventDTO eventDTO = HomeServiceUtil.convertToEventListDTO(event, baseURL, onRemoteServer, service);
if (HomeServiceUtil.calculateEventState(event) != EventState.UPCOMING && HomeServiceUtil.isFakeSeries(event)) {
String seriesName = HomeServiceUtil.getSeriesName(event);
EventListEventDTO latestEvent = lastestEventPerSeries.get(seriesName);
if (latestEvent == null || latestEvent.getStartDate().before(eventDTO.getStartDate())) {
lastestEventPerSeries.put(seriesName, eventDTO);
}
increaseNumberOfEvents(seriesName);
} else {
addEventToResults(eventDTO);
}
}
private void increaseNumberOfEvents(String seriesName) {
Integer currentValue = numberOfEventsPerSeries.get(seriesName);
currentValue = currentValue == null ? 0 : currentValue;
numberOfEventsPerSeries.put(seriesName, ++currentValue);
}
public EventListViewDTO getResult() {
for (Entry<String, EventListEventDTO> latestEventInSeries : lastestEventPerSeries.entrySet()) {
String seriesName = latestEventInSeries.getKey();
EventListEventDTO latestEvent = latestEventInSeries.getValue();
latestEvent.setEventSeries(new EventListEventSeriesDTO(latestEvent.getId(), seriesName));
latestEvent.getEventSeries().setEventsCount(numberOfEventsPerSeries.get(seriesName));
addEventToResults(latestEvent);
}
return result;
}
private void addEventToResults(EventListEventDTO eventDTO) {
Calendar cal = GregorianCalendar.getInstance();
cal.setTime(eventDTO.getStartDate());
result.addEvent(eventDTO, cal.get(Calendar.YEAR));
}
}
@@ -1,13 +1,9 @@
package com.sap.sailing.gwt.server;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
@@ -20,11 +16,9 @@ import org.osgi.util.tracker.ServiceTracker;
import com.sap.sailing.domain.base.Event;
import com.sap.sailing.domain.base.EventBase;
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
import com.sap.sailing.gwt.server.HomeServiceUtil.EventVisitor;
import com.sap.sailing.gwt.ui.client.HomeService;
import com.sap.sailing.gwt.ui.server.Activator;
import com.sap.sailing.gwt.ui.server.ProxiedRemoteServiceServlet;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListViewDTO;
import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO;
import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO.EventSeriesState;
@@ -262,21 +256,8 @@ public class HomeServiceImpl extends ProxiedRemoteServiceServlet implements Home
@Override
public EventListViewDTO getEventListView() throws MalformedURLException {
// TODO fill stats of years
final EventListViewDTO result = new EventListViewDTO();
HomeServiceUtil.forAllPublicEvents(getService(), getThreadLocalRequest(), new EventVisitor() {
@Override
public void visit(EventBase event, boolean onRemoteServer, URL baseURL) {
EventListEventDTO eventDTO = HomeServiceUtil.convertToEventListDTO(event, baseURL, onRemoteServer, getService());
result.addEvent(eventDTO, getYear(eventDTO.getStartDate()));
}
});
return result;
}
private int getYear(Date date) {
Calendar cal = GregorianCalendar.getInstance();
cal.setTime(date);
return cal.get(Calendar.YEAR);
EventListDataCalculator eventListDataCalculator = new EventListDataCalculator(getService());
HomeServiceUtil.forAllPublicEvents(getService(), getThreadLocalRequest(), eventListDataCalculator);
return eventListDataCalculator.getResult();
}
}
@@ -1360,4 +1360,5 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, c
String choosePresentation();
String openFullscreenView();
String closeFullscreenView();
String eventsHaveTakenPlace(@PluralCount(DefaultRule_1_0n.class) int eventCount);
}
@@ -1328,4 +1328,6 @@ plainText=Plain Text
columnChart=Column Chart
choosePresentation=Choose Presentation
openFullscreenView=Open fullscreen view
closeFullscreenView=Close fullscreen view
closeFullscreenView=Close fullscreen view
eventsHaveTakenPlace={0} events have taken place
eventsHaveTakenPlace[one]= One event has taken place
@@ -1318,4 +1318,6 @@ plainText=Einfacher Text
columnChart=Säulendiagramm
choosePresentation=Wähle Präsentation
openFullscreenView=Vollbildansicht öffnen
closeFullscreenView=Vollbildansicht schließen
closeFullscreenView=Vollbildansicht schließen
eventsHaveTakenPlace={0} Veranstaltungen haben stattgefunden
eventsHaveTakenPlace[one]= Eine Veranstaltung hat stattgefunden
@@ -1265,4 +1265,6 @@ plainText=Plain Text
columnChart=Column Chart
choosePresentation=Choose Presentation
openFullscreenView=Open fullscreen view
closeFullscreenView=Close fullscreen view
closeFullscreenView=Close fullscreen view
eventsHaveTakenPlace={0} events have taken place
eventsHaveTakenPlace[one]= One event has taken place
@@ -1307,4 +1307,6 @@ noFinishedRaces=There are no finished races yet
racesOverview=Races overview
latestRegattaStandings=Latest Regatta Standings
openFullscreenView=Open fullscreen view
closeFullscreenView=Close fullscreen view
closeFullscreenView=Close fullscreen view
eventsHaveTakenPlace={0} events have taken place
eventsHaveTakenPlace[one]= One event has taken place
@@ -1,5 +1,8 @@
package com.sap.sailing.gwt.ui.shared.dispatch.event;
import static com.sap.sailing.gwt.server.HomeServiceUtil.findEventThumbnailImageUrlAsString;
import static com.sap.sailing.gwt.server.HomeServiceUtil.getStageImageURLAsString;
import java.util.Arrays;
import java.util.Collection;
import java.util.UUID;
@@ -23,13 +26,15 @@ public class GetEventOverviewStageAction implements Action<ResultWithTTL<EventOv
private static final Collection<String> rankedTagsFinished = Arrays.asList(MediaTagConstants.STAGE, MediaTagConstants.FEATURED, MediaTagConstants.HIGHLIGHT);
private UUID eventId;
private boolean useTeaserImage;
@SuppressWarnings("unused")
private GetEventOverviewStageAction() {
}
public GetEventOverviewStageAction(UUID eventId) {
public GetEventOverviewStageAction(UUID eventId, boolean useTeaserImage) {
this.eventId = eventId;
this.useTeaserImage = useTeaserImage;
}
@Override
@@ -63,7 +68,7 @@ public class GetEventOverviewStageAction implements Action<ResultWithTTL<EventOv
if(stageVideo != null) {
return new EventOverviewVideoStageDTO(EventOverviewVideoStageDTO.Type.MEDIA, HomeServiceUtil.toVideoDTO(stageVideo));
}
String stageImageUrl = HomeServiceUtil.getStageImageURLAsString(event);
String stageImageUrl = useTeaserImage ? findEventThumbnailImageUrlAsString(event) : getStageImageURLAsString(event);
if(state == EventState.UPCOMING || state == EventState.PLANNED) {
return new EventOverviewTickerStageDTO(event.getStartDate().asDate(), event.getName(), stageImageUrl);
}
@@ -1,30 +1,18 @@
package com.sap.sailing.gwt.ui.shared.eventlist;
import com.sap.sailing.gwt.ui.shared.general.EventMetadataDTO;
import com.sap.sailing.gwt.ui.shared.general.EventState;
import com.sap.sailing.gwt.ui.shared.start.StageEventType;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
public class EventListEventDTO extends EventMetadataDTO {
private String baseURL;
private boolean isOnRemoteServer;
public class EventListEventDTO extends EventLinkAndMetadataDTO {
public StageEventType getStageType() {
return getState() == EventState.RUNNING ? StageEventType.RUNNING : StageEventType.POPULAR;
private EventListEventSeriesDTO eventSeries;
@Override
public EventListEventSeriesDTO getEventSeries() {
return eventSeries;
}
public String getBaseURL() {
return baseURL;
}
public void setBaseURL(String baseURL) {
this.baseURL = baseURL;
}
public boolean isOnRemoteServer() {
return isOnRemoteServer;
}
public void setOnRemoteServer(boolean isOnRemoteServer) {
this.isOnRemoteServer = isOnRemoteServer;
public void setEventSeries(EventListEventSeriesDTO eventSeries) {
this.eventSeries = eventSeries;
}
}
@@ -0,0 +1,26 @@
package com.sap.sailing.gwt.ui.shared.eventlist;
import java.util.UUID;
import com.sap.sailing.gwt.ui.shared.general.EventSeriesReferenceDTO;
public class EventListEventSeriesDTO extends EventSeriesReferenceDTO {
private int eventsCount;
protected EventListEventSeriesDTO() {
}
public EventListEventSeriesDTO(UUID id, String displayName) {
super(id, displayName);
}
public int getEventsCount() {
return eventsCount;
}
public void setEventsCount(int eventsCount) {
this.eventsCount = eventsCount;
}
}
@@ -0,0 +1,30 @@
package com.sap.sailing.gwt.ui.shared.general;
import com.sap.sailing.gwt.ui.shared.start.StageEventType;
public class EventLinkAndMetadataDTO extends EventMetadataDTO {
private String baseURL;
private boolean isOnRemoteServer;
public StageEventType getStageType() {
return getState() == EventState.RUNNING ? StageEventType.RUNNING : StageEventType.POPULAR;
}
public String getBaseURL() {
return baseURL;
}
public void setBaseURL(String baseURL) {
this.baseURL = baseURL;
}
public boolean isOnRemoteServer() {
return isOnRemoteServer;
}
public void setOnRemoteServer(boolean isOnRemoteServer) {
this.isOnRemoteServer = isOnRemoteServer;
}
}
@@ -2,6 +2,8 @@ package com.sap.sailing.gwt.ui.shared.general;
import java.util.Date;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventSeriesDTO;
public class EventMetadataDTO extends EventReferenceDTO {
private EventState state;
@@ -41,8 +43,6 @@ public class EventMetadataDTO extends EventReferenceDTO {
return state;
}
public void setState(EventState state) {
this.state = state;
}
@@ -107,4 +107,8 @@ public class EventMetadataDTO extends EventReferenceDTO {
}
return venue;
}
public EventListEventSeriesDTO getEventSeries() {
return null;
}
}
@@ -0,0 +1,28 @@
package com.sap.sailing.gwt.ui.shared.general;
import java.util.UUID;
import com.sap.sailing.gwt.ui.shared.dispatch.DTO;
public class EventSeriesReferenceDTO implements DTO {
private UUID id;
private String displayName;
protected EventSeriesReferenceDTO() {
}
public EventSeriesReferenceDTO(UUID id, String displayName) {
this.id = id;
this.displayName = displayName;
}
public UUID getId() {
return id;
}
public String getDisplayName() {
return displayName;
}
}
@@ -1,8 +1,8 @@
package com.sap.sailing.gwt.ui.shared.start;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.general.EventLinkAndMetadataDTO;
public class EventStageDTO extends EventListEventDTO {
public class EventStageDTO extends EventLinkAndMetadataDTO {
private StageEventType stageType;
private String stageImageURL;