mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-20 03:00:00 +00:00
Adjusted SearchResultDTO to refer a list of events instead of one
This commit is contained in:
1 parent
cd391ccb47
commit
dd4913a924
5 files changed
+60
-44
No files matched your search
+1
-1
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
+44
-34
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -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());
|
||||
|
||||
+6
-4
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+6
-4
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user