Adjusted SearchResultDTO to refer a list of events instead of one

This commit is contained in:
Benjamin Barth committed 2015-11-06 11:22:13 +01:00
1 parent cd391ccb47
commit dd4913a924
5 files changed
+60 -44

No files matched your search

@@ -58,7 +58,7 @@ public class GetSearchResultsAction implements SailingAction<ListResult<SearchRe
ListResult<SearchResultDTO> resultList = new ListResult<>();
for (T hit : result.getHits()) {
// TODO: for now filter all results where we no event is defined
if (!Util.isEmpty(hit.getEvents())) {
if (hit.getEvents() != null && !Util.isEmpty(hit.getEvents())) {
resultList.addValue(new SearchResultDTO(hit, baseUrl, isOnRemoteServer));
}
}
@@ -1,6 +1,7 @@
package com.sap.sailing.gwt.home.communication.search;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.UUID;
@@ -12,16 +13,10 @@ import com.sap.sailing.gwt.dispatch.client.DTO;
public class SearchResultDTO implements DTO {
private String displayName;
private UUID eventId;
private String eventName;
private String eventVenueName;
private Date eventStartDate;
private Date eventEndDate;
private String leaderboardName;
private String baseUrl;
private boolean isOnRemoteServer;
private ArrayList<EventInfoDTO> events = new ArrayList<>();
@SuppressWarnings("unused")
private SearchResultDTO() {
@@ -32,13 +27,8 @@ public class SearchResultDTO implements DTO {
this.leaderboardName = hit.getLeaderboard().getName();
this.displayName = hit.getLeaderboard().getDisplayName() != null ? hit.getLeaderboard().getDisplayName() :
(hit.getRegattaName() != null ? hit.getRegattaName() : leaderboardName);
EventBase event = hit.getEvents().iterator().next();
if (event != null) {
this.eventId = (UUID) event.getId();
this.eventName = event.getName();
this.eventVenueName = event.getVenue() != null ? event.getVenue().getName() : null;
this.eventStartDate = event.getStartDate() != null ? event.getStartDate().asDate() : null;
this.eventEndDate = event.getEndDate() != null ? event.getEndDate().asDate() : null;
for (EventBase event : hit.getEvents()) {
events.add(new EventInfoDTO(event));
}
this.baseUrl = baseUrl.toString();
this.isOnRemoteServer = isOnRemoteServer;
@@ -48,26 +38,6 @@ public class SearchResultDTO implements DTO {
return displayName;
}
public UUID getEventId() {
return eventId;
}
public String getEventName() {
return eventName;
}
public String getEventVenueName() {
return eventVenueName;
}
public Date getEventStartDate() {
return eventStartDate;
}
public Date getEventEndDate() {
return eventEndDate;
}
public String getLeaderboardName() {
return leaderboardName;
}
@@ -79,5 +49,45 @@ public class SearchResultDTO implements DTO {
public boolean isOnRemoteServer() {
return isOnRemoteServer;
}
public ArrayList<EventInfoDTO> getEvents() {
return events;
}
public class EventInfoDTO implements DTO {
private UUID id;
private String name;
private String venueName;
private Date startDate;
private Date endDate;
@GwtIncompatible
public EventInfoDTO(EventBase event) {
this.id = (UUID) event.getId();
this.name = event.getName();
this.venueName = event.getVenue() != null ? event.getVenue().getName() : null;
this.startDate = event.getStartDate() != null ? event.getStartDate().asDate() : null;
this.endDate = event.getEndDate() != null ? event.getEndDate().asDate() : null;
}
public UUID getId() {
return id;
}
public String getName() {
return name;
}
public String getVenueName() {
return venueName;
}
public Date getStartDate() {
return startDate;
}
public Date getEndDate() {
return endDate;
}
}
}
@@ -7,6 +7,7 @@ import com.google.gwt.dom.client.SpanElement;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.sap.sailing.gwt.home.communication.search.SearchResultDTO;
import com.sap.sailing.gwt.home.communication.search.SearchResultDTO.EventInfoDTO;
import com.sap.sailing.gwt.home.desktop.app.DesktopPlacesNavigator;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.home.shared.partials.searchresult.AbstractSearchResultItem;
@@ -26,7 +27,8 @@ public class SearchResultItem extends AbstractSearchResultItem {
SearchResultItem(DesktopPlacesNavigator navigator, SearchResultDTO item) {
init(uiBinder.createAndBindUi(this), item);
String eventId = String.valueOf(item.getEventId()), leaderboardName = item.getLeaderboardName(), baseUrl = item.getBaseUrl();
EventInfoDTO event = item.getEvents().get(0);
String eventId = String.valueOf(event.getId()), leaderboardName = item.getLeaderboardName(), baseUrl = item.getBaseUrl();
PlaceNavigation<?> regattaNavigation = navigator.getRegattaNavigation(eventId, leaderboardName, baseUrl, item.isOnRemoteServer());
regattaNavigation.configureAnchorElement(resultTitleUi);
PlaceNavigation<?> eventNavigation = navigator.getEventNavigation(eventId, baseUrl, item.isOnRemoteServer());
@@ -8,6 +8,7 @@ import com.google.gwt.dom.client.SpanElement;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.sap.sailing.gwt.home.communication.search.SearchResultDTO;
import com.sap.sailing.gwt.home.communication.search.SearchResultDTO.EventInfoDTO;
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.partials.searchresult.AbstractSearchResultItem;
@@ -25,10 +26,11 @@ public class SearchResultItem extends AbstractSearchResultItem {
@UiField SpanElement eventDateUi;
private final AnchorElement anchorUi;
SearchResultItem(MobilePlacesNavigator navigator, SearchResultDTO result) {
init(anchorUi = uiBinder.createAndBindUi(this), result);
String eventId = String.valueOf(result.getEventId()), leaderboardName = result.getLeaderboardName(), baseUrl = result.getBaseUrl();
PlaceNavigation<?> regattaNavigation = navigator.getRegattaOverviewNavigation(eventId, leaderboardName, baseUrl, result.isOnRemoteServer());
SearchResultItem(MobilePlacesNavigator navigator, SearchResultDTO item) {
init(anchorUi = uiBinder.createAndBindUi(this), item);
EventInfoDTO event = item.getEvents().get(0);
String eventId = String.valueOf(event.getId()), leaderboardName = item.getLeaderboardName(), baseUrl = item.getBaseUrl();
PlaceNavigation<?> regattaNavigation = navigator.getRegattaOverviewNavigation(eventId, leaderboardName, baseUrl, item.isOnRemoteServer());
regattaNavigation.configureAnchorElement(anchorUi);
}
@@ -5,16 +5,18 @@ import static com.sap.sailing.gwt.home.shared.utils.EventDatesFormatterUtil.form
import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.communication.search.SearchResultDTO;
import com.sap.sailing.gwt.home.communication.search.SearchResultDTO.EventInfoDTO;
public abstract class AbstractSearchResultItem extends Widget {
protected final void init(Element element, SearchResultDTO item) {
setElement(element);
getResultTitleUi().setInnerText(item.getDisplayName());
getEventNameUi().setInnerText(item.getEventName());
getEventVenueUi().setInnerText(item.getEventVenueName());
if (item.getEventStartDate() != null && item.getEventEndDate() != null) {
getEventDateUi().setInnerText(formatDateRangeWithYear(item.getEventStartDate(), item.getEventEndDate()));
EventInfoDTO event = item.getEvents().get(0);
getEventNameUi().setInnerText(event.getName());
getEventVenueUi().setInnerText(event.getVenueName());
if (event.getStartDate() != null && event.getEndDate() != null) {
getEventDateUi().setInnerText(formatDateRangeWithYear(event.getStartDate(), event.getEndDate()));
}
}