Implementation of recent events redesign

This commit is contained in:
Steffen Schaefer committed 2015-03-13 16:15:39 +01:00
1 parent cb53f55ffd
commit 64e3eba991
20 files changed
+150 -173

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 865 B

@@ -1,77 +1,16 @@
package com.sap.sailing.gwt.home.client.place.events;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.gwt.user.client.ui.Composite;
import com.sap.sailing.gwt.common.client.DateUtil;
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListViewDTO;
public abstract class AbstractEventsView extends Composite implements EventsView {
private final Map<Integer, List<EventBaseDTO>> recentEventsByYearOrderedByEndDate;
private final List<EventBaseDTO> upcomingEvents;
public AbstractEventsView() {
recentEventsByYearOrderedByEndDate = new HashMap<Integer, List<EventBaseDTO>>();
upcomingEvents = new ArrayList<EventBaseDTO>();
}
protected EventListViewDTO eventListView;
@Override
public void setEvents(List<EventBaseDTO> events) {
for (EventBaseDTO event : events) {
if (event.startDate != null && event.endDate != null) {
if (DateUtil.isDayInPast(event.startDate) || event.isRunning()) {
// recent event or live event
int year = DateUtil.getYear(event.startDate);
List<EventBaseDTO> eventsOfYear = recentEventsByYearOrderedByEndDate.get(year);
if (eventsOfYear == null) {
eventsOfYear = new ArrayList<EventBaseDTO>();
recentEventsByYearOrderedByEndDate.put(year, eventsOfYear);
}
eventsOfYear.add(event);
} else {
// upcoming event
upcomingEvents.add(event);
}
}
}
for (List<EventBaseDTO> eventsPerYear : recentEventsByYearOrderedByEndDate.values()) {
Collections.sort(eventsPerYear, EVENTS_BY_DESCENDING_DATE_COMPARATOR);
}
Collections.sort(upcomingEvents, EVENTS_BY_ASCENDING_DATE_COMPARATOR);
public void setEvents(EventListViewDTO eventListView) {
this.eventListView = eventListView;
updateEventsUI();
}
protected abstract void updateEventsUI();
/**
* Returns a map whose keys denote years and whose values are event lists ordered by descending
* {@link EventBaseDTO#endDate end date}. Note that the iteration order for the map entries is undefined
* and in particular is not enumerating the years in any well-defined order.
*/
public Map<Integer, List<EventBaseDTO>> getRecentEventsByYearOrderedByEndDate() {
return recentEventsByYearOrderedByEndDate;
}
public List<EventBaseDTO> getUpcomingEvents() {
return upcomingEvents;
}
public static Comparator<EventBaseDTO> EVENTS_BY_ASCENDING_DATE_COMPARATOR = new Comparator<EventBaseDTO>() {
@Override
public int compare(EventBaseDTO e1, EventBaseDTO e2) {
return e1.endDate.compareTo(e2.endDate);
}
};
public static Comparator<EventBaseDTO> EVENTS_BY_DESCENDING_DATE_COMPARATOR = new Comparator<EventBaseDTO>() {
@Override
public int compare(EventBaseDTO e1, EventBaseDTO e2) {
return e2.endDate.compareTo(e1.endDate);
}
};
}
@@ -1,14 +1,13 @@
package com.sap.sailing.gwt.home.client.place.events;
import java.util.List;
import com.google.gwt.activity.shared.AbstractActivity;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.sap.sailing.gwt.home.client.shared.placeholder.Placeholder;
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListViewDTO;
import com.sap.sse.gwt.client.mvp.ErrorView;
public class EventsActivity extends AbstractActivity {
@@ -24,20 +23,21 @@ public class EventsActivity extends AbstractActivity {
@Override
public void start(final AcceptsOneWidget panel, EventBus eventBus) {
panel.setWidget(new Placeholder());
clientFactory.getSailingService().getPublicEventsOfAllSailingServers(new AsyncCallback<List<EventBaseDTO>>() {
clientFactory.getSailingService().getEventListView(new AsyncCallback<EventListViewDTO>() {
@Override
public void onSuccess(List<EventBaseDTO> events) {
public void onSuccess(EventListViewDTO eventListView) {
final EventsView eventsView = clientFactory.createEventsView();
panel.setWidget(eventsView.asWidget());
Window.setTitle(place.getTitle());
eventsView.setEvents(events);
eventsView.setEvents(eventListView);
}
@Override
public void onFailure(Throwable caught) {
final ErrorView view = clientFactory.createErrorView("Error while loading the sailing server instances with service getPublicEventsOfAllSailingServers()", caught);
GWT.debugger();
final ErrorView view = clientFactory.createErrorView("Error while loading the sailing server instances with service getEventListView()", caught);
panel.setWidget(view.asWidget());
}
});
@@ -1,12 +1,8 @@
package com.sap.sailing.gwt.home.client.place.events;
import java.util.List;
import com.google.gwt.user.client.ui.IsWidget;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListViewDTO;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
public interface EventsView {
Widget asWidget();
void setEvents(List<EventBaseDTO> events);
public interface EventsView extends IsWidget {
void setEvents(EventListViewDTO eventListView);
}
@@ -55,7 +55,7 @@ public class TabletAndDesktopEventsView extends AbstractEventsView {
@Override
protected void updateEventsUI() {
recentEventsWidget.updateEvents(getRecentEventsByYearOrderedByEndDate());
upcomingEventsWidget.updateEvents(getUpcomingEvents());
recentEventsWidget.updateEvents(eventListView.getRecentEvents());
upcomingEventsWidget.updateEvents(eventListView.getUpcommingEvents());
}
}
@@ -61,6 +61,8 @@
padding: 0.466666666666667em 1.133333333333333em;
}
.eventsoverviewrecent_year_header_info_arrow_image {
width: 1.333333333333333em;
vertical-align: middle;
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-ms-transform: rotate(180deg);
@@ -1,22 +1,15 @@
package com.sap.sailing.gwt.home.client.place.events.recent;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.Map.Entry;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.client.app.HomePlacesNavigator;
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListYearDTO;
public class EventsOverviewRecent extends Composite {
@@ -27,31 +20,24 @@ public class EventsOverviewRecent extends Composite {
private final HomePlacesNavigator navigator;
@UiField HTMLPanel recentEventsPerYearPanel;
private final Map<Integer, EventsOverviewRecentYear> recentEventsComposites;
@UiField FlowPanel year;
public EventsOverviewRecent(HomePlacesNavigator navigator) {
this.navigator = navigator;
recentEventsComposites = new HashMap<Integer, EventsOverviewRecentYear>();
EventsOverviewRecentResources.INSTANCE.css().ensureInjected();
initWidget(uiBinder.createAndBindUi(this));
}
public void updateEvents(Map<Integer, List<EventBaseDTO>> recentEventsByYearOrderedByEndDate) {
public void updateEvents(List<EventListYearDTO> years) {
// remove old widgets
recentEventsPerYearPanel.clear();
recentEventsComposites.clear();
// recent events of this year
LinkedHashMap<Integer, List<EventBaseDTO>> recentEventsOrderedDescendingByYearOrderedDescendingByEndDate =
sortEventsDescendingByYear(recentEventsByYearOrderedByEndDate);
year.clear();
boolean oneYearIsExpanded = false;
for (Entry<Integer, List<EventBaseDTO>> e : recentEventsOrderedDescendingByYearOrderedDescendingByEndDate.entrySet()) {
int currentYear = e.getKey();
EventsOverviewRecentYear recentEventsOfOneYear = new EventsOverviewRecentYear(currentYear, e.getValue(), navigator);
recentEventsPerYearPanel.add(recentEventsOfOneYear);
recentEventsComposites.put(currentYear, recentEventsOfOneYear);
for (EventListYearDTO yearDTO : years) {
EventsOverviewRecentYear recentEventsOfOneYear = new EventsOverviewRecentYear(yearDTO, navigator);
year.add(recentEventsOfOneYear);
if (oneYearIsExpanded == true) {
recentEventsOfOneYear.hideContent();
} else {
@@ -60,16 +46,4 @@ public class EventsOverviewRecent extends Composite {
}
}
}
private LinkedHashMap<Integer, List<EventBaseDTO>> sortEventsDescendingByYear(
Map<Integer, List<EventBaseDTO>> recentEventsByYearOrderedByEndDate) {
LinkedHashMap<Integer, List<EventBaseDTO>> result = new LinkedHashMap<>();
List<Integer> yearKeysInDescendingOrder = new ArrayList<>(recentEventsByYearOrderedByEndDate.keySet());
Collections.sort(yearKeysInDescendingOrder);
for (ListIterator<Integer> i=yearKeysInDescendingOrder.listIterator(yearKeysInDescendingOrder.size()); i.hasPrevious(); ) {
Integer year = i.previous();
result.put(year, recentEventsByYearOrderedByEndDate.get(year));
}
return result;
}
}
@@ -3,14 +3,8 @@
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared">
<ui:with field="i18n" type="com.sap.sailing.gwt.common.client.i18n.TextMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.place.events.recent.EventsOverviewRecentResources" />
<g:HTMLPanel addStyleNames="{local_res.css.eventsoverviewrecent}" >
<div class="{res.mediaCss.grid}">
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
<h3><ui:text from="{i18n.eventsOverviewRecentEvents}" /></h3>
</div>
</div>
<g:HTMLPanel ui:field="recentEventsPerYearPanel" addStyleNames="{local_res.css.accordion}" />
</g:HTMLPanel>
</ui:UiBinder>
<g:FlowPanel ui:field='year' addStyleNames="{local_res.css.eventsoverviewrecent} {local_res.css.accordion}">
</g:FlowPanel>
</ui:UiBinder>
@@ -4,6 +4,7 @@ import java.util.List;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.SpanElement;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.event.dom.client.ClickEvent;
@@ -15,8 +16,10 @@ import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.client.app.HomePlacesNavigator;
import com.sap.sailing.gwt.home.client.shared.recentevent.RecentEvent;
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
import com.sap.sailing.gwt.home.client.app.PlaceNavigation;
import com.sap.sailing.gwt.home.client.place.event2.EventDefaultPlace;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListYearDTO;
public class EventsOverviewRecentYear extends Composite {
@@ -27,25 +30,46 @@ public class EventsOverviewRecentYear extends Composite {
@UiField SpanElement year;
@UiField SpanElement eventsCount;
// @UiField SpanElement countriesCount;
// @UiField SpanElement sailorsCount;
// @UiField SpanElement trackedRacesCount;
@UiField SpanElement countriesCount;
@UiField SpanElement sailorsCount;
@UiField SpanElement trackedRacesCount;
@UiField Element countriesContainer;
@UiField Element sailorsContainer;
@UiField Element trackedRacesContainer;
@UiField FlowPanel recentEventsTeaserPanel;
@UiField DivElement contentDiv;
@UiField HTMLPanel headerDiv;
private boolean isContentVisible;
public EventsOverviewRecentYear(Integer year, List<EventBaseDTO> events, HomePlacesNavigator navigator) {
public EventsOverviewRecentYear(EventListYearDTO yearDTO, HomePlacesNavigator navigator) {
List<EventListEventDTO> events = yearDTO.getEvents();
EventsOverviewRecentResources.INSTANCE.css().ensureInjected();
initWidget(uiBinder.createAndBindUi(this));
this.year.setInnerText(String.valueOf(year));
this.year.setInnerText(String.valueOf(yearDTO.getYear()));
this.eventsCount.setInnerText(String.valueOf(events.size()));
if(yearDTO.getSailorCount() > 0) {
sailorsCount.setInnerText("" + yearDTO.getSailorCount());
} else {
sailorsContainer.removeFromParent();
}
if(yearDTO.getCountryCount() > 0) {
countriesCount.setInnerText("" + yearDTO.getCountryCount());
} else {
countriesContainer.removeFromParent();
}
if(yearDTO.getTrackedRacesCount() > 0) {
trackedRacesCount.setInnerText("" + yearDTO.getTrackedRacesCount());
} else {
trackedRacesContainer.removeFromParent();
}
// this.countriesCount.setInnerText("tbd.");
// this.sailorsCount.setInnerText("tbd.");
// this.trackedRacesCount.setInnerText("tbd.");
for (EventBaseDTO eventDTO : events) {
RecentEvent recentEvent = new RecentEvent(navigator, eventDTO);
for (EventListEventDTO eventDTO : events) {
PlaceNavigation<EventDefaultPlace> eventNavigation = navigator.getEventNavigation(eventDTO.getId().toString(), eventDTO.getBaseURL(), eventDTO.isOnRemoteServer());
RecentEventTeaser recentEvent = new RecentEventTeaser(eventNavigation, eventDTO);
recentEventsTeaserPanel.add(recentEvent);
}
isContentVisible = true;
@@ -24,33 +24,33 @@
</span>
</div>
</td>
<!-- <td>
<td ui:field="countriesContainer">
<div class="{local_res.css.eventsoverviewrecent_year_header_info_item}">
<span class="{local_res.css.eventsoverviewrecent_year_header_info_item_value}">
<span ui:field="countriesCount" />
<ui:text from='{i18n.countries}' />
<!-- <ui:text from='{i18n.countries}' /> -->
</span>
</div>
</td>
<td>
<td ui:field="sailorsContainer">
<div class="{local_res.css.eventsoverviewrecent_year_header_info_item}">
<span class="{local_res.css.eventsoverviewrecent_year_header_info_item_value}">
<span ui:field="sailorsCount" />
<ui:text from='{i18n.sailors}' />
<!-- <ui:text from='{i18n.sailors}' /> -->
</span>
</div>
</td>
<td>
<td ui:field="trackedRacesContainer">
<div class="{local_res.css.eventsoverviewrecent_year_header_info_item}">
<span class="{local_res.css.eventsoverviewrecent_year_header_info_item_value}">
<span ui:field="trackedRacesCount" />
<ui:text from='{i18n.trackedRaces}' />
</span>
</div>
</td> -->
</td>
<td>
<div class="{local_res.css.eventsoverviewrecent_year_header_info_arrow}">
<img src="images/home/arrow-down-yellow.png" class="{local_res.css.eventsoverviewrecent_year_header_info_arrow_image}"></img>
<img src="images/home/arrow-down-grey.png" class="{local_res.css.eventsoverviewrecent_year_header_info_arrow_image}"></img>
</div>
</td>
</tr>
@@ -60,9 +60,9 @@
</g:HTMLPanel>
<div ui:field="contentDiv" class="{local_res.css.eventsoverviewrecent_year_content} {local_res.css.accordion_content}">
<g:FlowPanel ui:field="recentEventsTeaserPanel" styleName="{res.mediaCss.grid}">
<!-- EACH event in year.events -->
<!-- EACH event in year.events -->
<!-- <s:eventsOverviewRecent.RecentEventTeaser ui:field='event'></s> -->
<!-- EACHEND -->
<!-- EACHEND -->
</g:FlowPanel>
</div>
</g:HTMLPanel>
@@ -0,0 +1,26 @@
package com.sap.sailing.gwt.home.client.place.events.recent;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
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.client.app.PlaceNavigation;
import com.sap.sailing.gwt.home.client.shared.event.EventTeaser;
import com.sap.sailing.gwt.ui.shared.general.EventMetadataDTO;
public class RecentEventTeaser extends Composite {
private static RecentEventTeaserUiBinder uiBinder = GWT.create(RecentEventTeaserUiBinder.class);
interface RecentEventTeaserUiBinder extends UiBinder<Widget, RecentEventTeaser> {
}
@UiField(provided = true) EventTeaser eventTeaser;
public RecentEventTeaser(final PlaceNavigation<?> placeNavigation, final EventMetadataDTO event) {
eventTeaser = new EventTeaser(placeNavigation, event);
initWidget(uiBinder.createAndBindUi(this));
}
}
@@ -0,0 +1,8 @@
<!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"
xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared.event">
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<s:EventTeaser ui:field='eventTeaser' addStyleNames="{res.mediaCss.small12} {res.mediaCss.medium6} {res.mediaCss.large4} {res.mediaCss.columns}" />
</ui:UiBinder>
@@ -14,7 +14,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.client.app.HomePlacesNavigator;
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
public class EventsOverviewUpcoming extends Composite {
@@ -47,16 +47,16 @@ public class EventsOverviewUpcoming extends Composite {
}, ClickEvent.getType());
}
public void updateEvents(List<EventBaseDTO> events) {
setVisible(events.size() > 0);
public void updateEvents(ArrayList<EventListEventDTO> arrayList) {
setVisible(arrayList.size() > 0);
eventsPlaceholder.clear();
upcomingEventComposites.clear();
for (EventBaseDTO event : events) {
for (EventListEventDTO event : arrayList) {
UpcomingEvent upcomingEvent = new UpcomingEvent(event, navigator);
upcomingEventComposites.add(upcomingEvent);
eventsPlaceholder.getElement().appendChild(upcomingEvent.getElement());
}
eventsCount.setInnerText(""+events.size());
eventsCount.setInnerText(""+arrayList.size());
}
private void onHeaderCicked() {
@@ -14,7 +14,7 @@ import com.sap.sailing.gwt.home.client.app.HomePlacesNavigator;
import com.sap.sailing.gwt.home.client.app.PlaceNavigation;
import com.sap.sailing.gwt.home.client.place.event2.EventDefaultPlace;
import com.sap.sailing.gwt.home.client.shared.EventDatesFormatterUtil;
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
public class UpcomingEvent extends Composite {
@@ -31,18 +31,18 @@ public class UpcomingEvent extends Composite {
private static UpcomingEventUiBinder uiBinder = GWT.create(UpcomingEventUiBinder.class);
public UpcomingEvent(final EventBaseDTO event, final HomePlacesNavigator navigator) {
public UpcomingEvent(final EventListEventDTO event, final HomePlacesNavigator navigator) {
this.navigator = navigator;
EventsOverviewUpcomingResources.INSTANCE.css().ensureInjected();
initWidget(uiBinder.createAndBindUi(this));
eventNavigation = navigator.getEventNavigation(event.id.toString(), event.getBaseURL(), event.isOnRemoteServer());
eventNavigation = navigator.getEventNavigation(event.getId().toString(), event.getBaseURL(), event.isOnRemoteServer());
eventOverviewLink.setHref(eventNavigation.getTargetUrl());
eventName.setInnerText(event.getName());
venueName.setInnerText(event.venue.getName());
eventStartDate.setInnerText(EventDatesFormatterUtil.formatDateRangeWithoutYear(event.startDate, event.endDate));
eventName.setInnerText(event.getDisplayName());
venueName.setInnerText(event.getVenue());
eventStartDate.setInnerText(EventDatesFormatterUtil.formatDateRangeWithoutYear(event.getStartDate(), event.getEndDate()));
}
@UiHandler("eventOverviewLink")
@@ -10,9 +10,9 @@ import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.common.client.controls.tabbar.TabView;
import com.sap.sailing.gwt.home.client.app.PlaceNavigation;
import com.sap.sailing.gwt.home.client.place.event2.EventDefaultPlace;
import com.sap.sailing.gwt.home.client.place.events.recent.RecentEventTeaser;
import com.sap.sailing.gwt.home.client.place.fakeseries.SeriesTabView;
import com.sap.sailing.gwt.home.client.place.fakeseries.SeriesView;
import com.sap.sailing.gwt.home.client.shared.event.EventTeaser;
import com.sap.sailing.gwt.ui.shared.general.EventMetadataDTO;
/**
@@ -47,7 +47,7 @@ public class SeriesEventsTabView extends Composite implements SeriesTabView<Seri
for (EventMetadataDTO eventOfSeries : currentPresenter.getCtx().getSeriesDTO().getEvents()) {
final PlaceNavigation<EventDefaultPlace> eventNavigation = currentPresenter.getEventNavigation(eventOfSeries.getId());
EventTeaser eventTeaser = new EventTeaser(eventNavigation, eventOfSeries);
RecentEventTeaser eventTeaser = new RecentEventTeaser(eventNavigation, eventOfSeries);
eventsContainer.add(eventTeaser);
}
@@ -5,7 +5,7 @@
<ui:with field="i18n" type="com.sap.sailing.gwt.common.client.i18n.TextMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.shared.event.EventTeaserResources" />
<g:HTMLPanel addStyleNames="{res.mediaCss.small12} {res.mediaCss.medium6} {res.mediaCss.large4} {res.mediaCss.columns}">
<g:HTMLPanel>
<div class="{local_res.css.eventteasercontainer}">
<a ui:field="eventLink" class="{local_res.css.eventteaser}">
<div ui:field="eventImage" class="{local_res.css.eventteaser_image}"></div>
@@ -55,6 +55,7 @@ public class MainEvents extends Composite {
}
private void createRecentEvent(EventBaseDTO eventBase) {
// TODO use RecentEventTeaser for new Design and delete
RecentEvent event = new RecentEvent(navigator, eventBase);
recentEventsDiv.appendChild(event.getElement());
}
@@ -22,6 +22,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -264,7 +265,6 @@ import com.sap.sailing.domain.tractracadapter.TracTracAdapter;
import com.sap.sailing.domain.tractracadapter.TracTracAdapterFactory;
import com.sap.sailing.domain.tractracadapter.TracTracConfiguration;
import com.sap.sailing.domain.tractracadapter.TracTracConnectionConstants;
import com.sap.sailing.gwt.common.client.DateUtil;
import com.sap.sailing.gwt.ui.client.SailingService;
import com.sap.sailing.gwt.ui.shared.BulkScoreCorrectionDTO;
import com.sap.sailing.gwt.ui.shared.CompactRaceMapDataDTO;
@@ -5644,7 +5644,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
for (Event event : getService().getAllEvents()) {
if(event.isPublic()) {
EventListEventDTO eventDTO = convertToEventListDTO(event, requestedBaseURL, false);
result.addEvent(eventDTO, DateUtil.getYear(eventDTO.getStartDate()));
result.addEvent(eventDTO, getYear(eventDTO.getStartDate()));
}
}
for (Entry<RemoteSailingServerReference, com.sap.sse.common.Util.Pair<Iterable<EventBase>, Exception>> serverRefAndEventsOrException :
@@ -5655,14 +5655,22 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
URL baseURL = getBaseURL(serverRef.getURL());
if (remoteEvents != null) {
for (EventBase remoteEvent : remoteEvents) {
EventListEventDTO eventDTO = convertToEventListDTO(remoteEvent, baseURL, true);
result.addEvent(eventDTO, DateUtil.getYear(eventDTO.getStartDate()));
if(remoteEvent.isPublic()) {
EventListEventDTO eventDTO = convertToEventListDTO(remoteEvent, baseURL, true);
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);
}
private EventListEventDTO convertToEventListDTO(EventBase event, URL baseURL, boolean onRemoteServer) {
EventListEventDTO dto = new EventListEventDTO();
mapToMetadataDTO(event, dto);
@@ -5685,6 +5693,6 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
dto.setState(calculateEventState(event.isPublic(), dto.getStartDate(), dto.getEndDate()));
dto.setVenue(event.getVenue().getName());
// TODO wrong! we need the teaser img here
dto.setLogoImageURL(event.getLogoImageURL().toString());
// dto.setLogoImageURL(event.getLogoImageURL().toString());
}
}
@@ -16,8 +16,10 @@ public class EventListViewDTO implements IsSerializable {
private void addUpcommingEvent(EventListEventDTO event) {
for(int i = 0; i < upcommingEvents.size(); i++) {
if(upcommingEvents.get(i).getStartDate().compareTo(event.getStartDate()) > 0);
upcommingEvents.add(i, event);
if(upcommingEvents.get(i).getStartDate().compareTo(event.getStartDate()) > 0) {
upcommingEvents.add(i, event);
return;
}
}
upcommingEvents.add(event);
}
@@ -1,6 +1,7 @@
package com.sap.sailing.gwt.ui.shared.eventlist;
import java.util.ArrayList;
import java.util.List;
import com.google.gwt.user.client.rpc.IsSerializable;
@@ -23,14 +24,16 @@ public class EventListYearDTO implements IsSerializable {
return year;
}
public ArrayList<EventListEventDTO> getEvents() {
public List<EventListEventDTO> getEvents() {
return events;
}
protected void addEvent(EventListEventDTO event) {
for(int i = 0; i < events.size(); i++) {
if(events.get(i).getStartDate().compareTo(event.getStartDate()) < 0);
events.add(i, event);
if(events.get(i).getStartDate().compareTo(event.getStartDate()) < 0) {
events.add(i, event);
return;
}
}
events.add(event);
}