mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-01 08:40:52 +00:00
- lot's of small fixes
- new version of place management for remote references
This commit is contained in:
1 parent
6c4a908d20
commit
adef2a6444
18 files changed
+71
-48
No files matched your search
+2
-2
@@ -2,8 +2,8 @@ package com.sap.sailing.gwt.home.client.app;
|
||||
|
||||
public interface PlaceNavigator {
|
||||
void goToHome();
|
||||
void goToEvent(String eventUuidAsString, String baseUrl);
|
||||
void goToRegattaOfEvent(String eventUuidAsString, String regattaIdAsNameString, String baseUrl);
|
||||
void goToEvent(String eventUuidAsString, String baseUrl, boolean isOnRemoteServer);
|
||||
void goToRegattaOfEvent(String eventUuidAsString, String regattaIdAsNameString, String baseUrl, boolean isOnRemoteServer);
|
||||
void goToSearchResult(String searchQuery);
|
||||
void goToEvents();
|
||||
void goToAboutUs();
|
||||
|
||||
+15
-11
@@ -16,7 +16,6 @@ import com.sap.sailing.gwt.home.client.place.start.StartPlace;
|
||||
public class PlaceNavigatorImpl implements PlaceNavigator {
|
||||
private final PlaceController placeController;
|
||||
private final static String SAPSAILING_DOMAIN = "www.sapsailing.com";
|
||||
private final static String NEW_HOME_TEST_DOMAIN = "newhome.sapsailing.com";
|
||||
|
||||
protected PlaceNavigatorImpl(PlaceController placeController) {
|
||||
super();
|
||||
@@ -29,15 +28,15 @@ public class PlaceNavigatorImpl implements PlaceNavigator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToEvent(String eventUuidAsString, String baseUrl) {
|
||||
public void goToEvent(String eventUuidAsString, String baseUrl, boolean isOnRemoteServer) {
|
||||
EventPlace eventPlace = new EventPlace(eventUuidAsString, null);
|
||||
gotoPlace(baseUrl, eventPlace, new EventPlace.Tokenizer());
|
||||
gotoPlace(baseUrl, isOnRemoteServer, eventPlace, new EventPlace.Tokenizer());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToRegattaOfEvent(String eventUuidAsString, String leaderboardIdAsNameString, String baseUrl) {
|
||||
public void goToRegattaOfEvent(String eventUuidAsString, String leaderboardIdAsNameString, String baseUrl, boolean isOnRemoteServer) {
|
||||
EventPlace eventPlace = new EventPlace(eventUuidAsString, leaderboardIdAsNameString);
|
||||
gotoPlace(baseUrl, eventPlace, new EventPlace.Tokenizer());
|
||||
gotoPlace(baseUrl, isOnRemoteServer, eventPlace, new EventPlace.Tokenizer());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -73,9 +72,18 @@ public class PlaceNavigatorImpl implements PlaceNavigator {
|
||||
private <T extends Place> void gotoPlace(T destinationPlace) {
|
||||
placeController.goTo(destinationPlace);
|
||||
}
|
||||
|
||||
|
||||
private <T extends Place> void gotoPlace(String baseUrl, T destinationPlace, PlaceTokenizer<T> tokenizer) {
|
||||
if(isLocationOnLocalhost(baseUrl) || isLocationOnSapSailingCom(baseUrl) || isLocationOnNewHomeTest(baseUrl)) {
|
||||
if(isLocationOnLocalhost(baseUrl) || isLocationOnSapSailingCom(baseUrl)) {
|
||||
placeController.goTo(destinationPlace);
|
||||
} else {
|
||||
String homeUrl = buildRemotePlaceUrl(baseUrl, destinationPlace, tokenizer);
|
||||
Window.Location.replace(homeUrl);
|
||||
}
|
||||
}
|
||||
|
||||
private <T extends Place> void gotoPlace(String baseUrl, boolean isOnRemoteServer, T destinationPlace, PlaceTokenizer<T> tokenizer) {
|
||||
if(isLocationOnLocalhost(baseUrl) || !isOnRemoteServer) {
|
||||
placeController.goTo(destinationPlace);
|
||||
} else {
|
||||
String homeUrl = buildRemotePlaceUrl(baseUrl, destinationPlace, tokenizer);
|
||||
@@ -91,10 +99,6 @@ public class PlaceNavigatorImpl implements PlaceNavigator {
|
||||
return baseUrl + "/gwt/Home.html#" + destinationPlace.getClass().getSimpleName() + ":" + tokenizer.getToken(destinationPlace);
|
||||
}
|
||||
|
||||
private boolean isLocationOnNewHomeTest(String urlToCheck) {
|
||||
return urlToCheck.contains(NEW_HOME_TEST_DOMAIN);
|
||||
}
|
||||
|
||||
private boolean isLocationOnSapSailingCom(String urlToCheck) {
|
||||
return urlToCheck.contains(SAPSAILING_DOMAIN);
|
||||
}
|
||||
|
||||
+2
-1
@@ -20,7 +20,8 @@ public interface TextMessages extends Messages {
|
||||
String officalEventWebsite();
|
||||
String leg();
|
||||
String leader();
|
||||
String winner();
|
||||
String races();
|
||||
String showEvent();
|
||||
|
||||
String countdownDays();
|
||||
String countdownHours();
|
||||
|
||||
+2
-1
@@ -12,7 +12,8 @@ fullEventSchedule=Full event schedule
|
||||
officalEventWebsite=Official event website
|
||||
leg=Leg
|
||||
leader=Leader
|
||||
winner=Winner
|
||||
races=Races
|
||||
showEvent=ShowEvent
|
||||
|
||||
countdownDays=Days
|
||||
countdownHours=Hrs
|
||||
|
||||
+2
-1
@@ -12,7 +12,8 @@ fullEventSchedule=Full event schedule
|
||||
officalEventWebsite=Official event website
|
||||
leg=Leg
|
||||
leader=Leader
|
||||
winner=Winner
|
||||
races=Races
|
||||
showEvent=ShowEvent
|
||||
|
||||
countdownDays=Tage
|
||||
countdownHours=Std.
|
||||
|
||||
-4
@@ -29,15 +29,11 @@ public class EventRegattaRaces extends Composite {
|
||||
@UiField HTMLPanel regattaPhasesPanel;
|
||||
@UiField HTMLPanel rootPanel;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private final EventDTO event;
|
||||
|
||||
private final Timer timerForClientServerOffset;
|
||||
private final EventPageNavigator pageNavigator;
|
||||
private final List<EventRegattaRacesPhase> phaseElements;
|
||||
|
||||
public EventRegattaRaces(EventDTO event, Timer timerForClientServerOffset, EventPageNavigator pageNavigator) {
|
||||
this.event = event;
|
||||
this.timerForClientServerOffset = timerForClientServerOffset;
|
||||
this.pageNavigator = pageNavigator;
|
||||
|
||||
|
||||
+7
-11
@@ -2,13 +2,13 @@ package com.sap.sailing.gwt.home.client.place.event.regattaraces;
|
||||
|
||||
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.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.user.client.ui.UIObject;
|
||||
import com.sap.sailing.domain.common.dto.FleetDTO;
|
||||
|
||||
public class EventRegattaRacesFleet {
|
||||
public class EventRegattaRacesFleet extends UIObject {
|
||||
private static EventRegattaRacesFleetUiBinder uiBinder = GWT.create(EventRegattaRacesFleetUiBinder.class);
|
||||
|
||||
interface EventRegattaRacesFleetUiBinder extends UiBinder<DivElement, EventRegattaRacesFleet> {
|
||||
@@ -16,21 +16,17 @@ public class EventRegattaRacesFleet {
|
||||
|
||||
@UiField SpanElement fleetName;
|
||||
@UiField DivElement fleetCountAndColor;
|
||||
|
||||
private DivElement root;
|
||||
|
||||
public EventRegattaRacesFleet(FleetDTO fleet) {
|
||||
public EventRegattaRacesFleet(FleetDTO fleet, int maxNumberOfCompetitorsInFleetRace) {
|
||||
EventRegattaRacesResources.INSTANCE.css().ensureInjected();
|
||||
root = uiBinder.createAndBindUi(this);
|
||||
setElement(uiBinder.createAndBindUi(this));
|
||||
|
||||
fleetName.setInnerText(fleet.getName());
|
||||
if(fleet.getColor() != null) {
|
||||
fleetCountAndColor.getStyle().setBackgroundColor(fleet.getColor().getAsHtml());
|
||||
}
|
||||
fleetCountAndColor.setInnerText("tbd.");
|
||||
}
|
||||
|
||||
public Element getElement() {
|
||||
return root;
|
||||
if(maxNumberOfCompetitorsInFleetRace > 0) {
|
||||
fleetCountAndColor.setInnerText(String.valueOf(maxNumberOfCompetitorsInFleetRace));
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -34,7 +34,7 @@ public class EventRegattaRacesFleetGroup extends Composite {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
|
||||
for(FleetDTO fleet: fleetsToShow) {
|
||||
EventRegattaRacesFleet eventRegattaRacesFleet = new EventRegattaRacesFleet(fleet);
|
||||
EventRegattaRacesFleet eventRegattaRacesFleet = new EventRegattaRacesFleet(fleet, 0);
|
||||
fleetsPanel.appendChild(eventRegattaRacesFleet.getElement());
|
||||
|
||||
updateFleetRacesUI(leaderboard, series, fleet, timerForClientServerOffset, pageNavigator);
|
||||
|
||||
+2
-1
@@ -11,6 +11,7 @@ import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.user.client.ui.UIObject;
|
||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.common.dto.FleetDTO;
|
||||
import com.sap.sailing.gwt.home.client.i18n.TextMessages;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPageNavigator;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceGroupSeriesDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
@@ -30,7 +31,7 @@ public class EventRegattaRacesPhase extends UIObject {
|
||||
setElement(uiBinder.createAndBindUi(this));
|
||||
|
||||
if(series.getName().equals(LeaderboardNameConstants.DEFAULT_SERIES_NAME)) {
|
||||
phaseName.setInnerText("Races");
|
||||
phaseName.setInnerText(TextMessages.INSTANCE.races());
|
||||
} else {
|
||||
phaseName.setInnerText(series.getName());
|
||||
}
|
||||
|
||||
+2
-2
@@ -22,10 +22,10 @@
|
||||
<span class="{local_res.css.eventregattarace_wind_strength}"><span ui:field="averageRaceWind" /></span>
|
||||
</div>
|
||||
<div ui:field="raceWinnerDiv" class="{local_res.css.eventregattarace_details} {local_res.css.eventregattarace_leader}">
|
||||
<ui:text from='{i18n.eventRegattaRaceWinner}'/><br></br> - <span ui:field="raceWinner" class="{local_res.css.eventregattarace_leader_name}"></span>
|
||||
<ui:text from="{i18n.eventRegattaRaceWinner}"/>:<br></br> - <span ui:field="raceWinner" class="{local_res.css.eventregattarace_leader_name}"></span>
|
||||
</div>
|
||||
<div ui:field="raceLeaderDiv" class="{local_res.css.eventregattarace_details} {local_res.css.eventregattarace_leader}">
|
||||
Leader:<br></br> - <span ui:field="raceLeader" class="{local_res.css.eventregattarace_leader_name}"></span>
|
||||
<ui:text from="{i18n.leader}"/>:<br></br> - <span ui:field="raceLeader" class="{local_res.css.eventregattarace_leader_name}"></span>
|
||||
</div>
|
||||
<div ui:field="legProgressDiv" class="{local_res.css.eventregattarace_details} {local_res.css.eventregattarace_legs}"><ui:text from='{i18n.leg}'/>&nbps;<span ui:field="currentLegNo" />/<span ui:field="totalLegsCount" />
|
||||
<div class="{local_res.css.eventregattarace_legs_list}">
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ public class UpcomingEvent extends UIObject {
|
||||
Event.setEventListener(eventOverviewLink, new EventListener() {
|
||||
@Override
|
||||
public void onBrowserEvent(Event browserEvent) {
|
||||
navigator.goToEvent(event.id.toString(), event.getBaseURL());
|
||||
navigator.goToEvent(event.id.toString(), event.getBaseURL(), event.isOnRemoteServer());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ public class RecentEvent extends Composite {
|
||||
Event.setEventListener(eventOverviewLink, new EventListener() {
|
||||
@Override
|
||||
public void onBrowserEvent(Event browserEvent) {
|
||||
navigator.goToEvent(event.id.toString(), event.getBaseURL());
|
||||
navigator.goToEvent(event.id.toString(), event.getBaseURL(), event.isOnRemoteServer());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
+2
-2
@@ -55,12 +55,12 @@ public class SearchResultItem extends Composite {
|
||||
@UiHandler("regattaLink")
|
||||
public void goToRegatta(ClickEvent e) {
|
||||
EventBaseDTO event = searchResult.getEvent();
|
||||
placeNavigator.goToRegattaOfEvent(event.id.toString(), searchResult.getLeaderboardName(), searchResult.getBaseURL());
|
||||
placeNavigator.goToRegattaOfEvent(event.id.toString(), searchResult.getLeaderboardName(), searchResult.getBaseURL(), searchResult.isOnRemoteServer());
|
||||
}
|
||||
|
||||
@UiHandler("eventOverviewLink")
|
||||
public void goToEventPlace(ClickEvent e) {
|
||||
EventBaseDTO event = searchResult.getEvent();
|
||||
placeNavigator.goToEvent(event.id.toString(), searchResult.getBaseURL());
|
||||
placeNavigator.goToEvent(event.id.toString(), searchResult.getBaseURL(), searchResult.isOnRemoteServer());
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -7,12 +7,12 @@
|
||||
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.shared.searchresult.SearchResultResources" />
|
||||
<g:HTMLPanel>
|
||||
<div class="{local_res.css.searchresult_content_item}">
|
||||
<g:Anchor ui:field="regattaLink" styleName="{local_res.css.searchresult_content_item_headline}" />
|
||||
<g:Anchor ui:field="regattaLink" styleName="{local_res.css.searchresult_content_item_headline}" href="javascript:;" />
|
||||
<div class="{local_res.css.searchresult_content_item_description}"><span ui:field="resultRegattaDetails" />
|
||||
<!-- <a href="http://" class="{local_res.css.searchresult_content_item_description_morelink}">More</a>-->
|
||||
</div>
|
||||
<div class="{local_res.css.searchresult_content_item_footer}">
|
||||
<g:Anchor ui:field="eventOverviewLink" styleName="{local_res.css.searchresult_content_item_footer_link}" />
|
||||
<g:Anchor ui:field="eventOverviewLink" styleName="{local_res.css.searchresult_content_item_footer_link}" href="javascript:;" />
|
||||
<span class="{local_res.css.searchresult_content_item_footer_separator}">|</span><span ui:field="resultEventVenue" />
|
||||
<span class="{local_res.css.searchresult_content_item_footer_separator}">|</span><span ui:field="resultEventDate" />
|
||||
</div>
|
||||
|
||||
+3
-2
@@ -2,6 +2,7 @@ package com.sap.sailing.gwt.home.client.shared.stage;
|
||||
|
||||
import com.google.gwt.dom.client.Style.Display;
|
||||
import com.sap.sailing.gwt.home.client.app.PlaceNavigator;
|
||||
import com.sap.sailing.gwt.home.client.i18n.TextMessages;
|
||||
import com.sap.sailing.gwt.home.client.shared.EventDatesFormatterUtil;
|
||||
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
|
||||
|
||||
@@ -14,12 +15,12 @@ public class LiveStageTeaserBand extends StageTeaserBand {
|
||||
bandSubtitle.setInnerText(EventDatesFormatterUtil.formatDateRangeWithYear(event.startDate, event.endDate));
|
||||
|
||||
actionLink.getStyle().setDisplay(Display.INLINE_BLOCK);
|
||||
actionLink.setInnerText("Show event");
|
||||
actionLink.setInnerText(TextMessages.INSTANCE.showEvent());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionLinkClicked() {
|
||||
EventBaseDTO event = getEvent();
|
||||
getPlaceNavigator().goToEvent(event.id.toString(), event.getBaseURL());
|
||||
getPlaceNavigator().goToEvent(event.id.toString(), event.getBaseURL(), event.isOnRemoteServer());
|
||||
}
|
||||
}
|
||||
+7
-4
@@ -3038,6 +3038,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
for (Event event : getService().getAllEvents()) {
|
||||
EventDTO eventDTO = convertToEventDTO(event);
|
||||
eventDTO.setBaseURL(requestBaseURL);
|
||||
eventDTO.setIsOnRemoteServer(false);
|
||||
result.add(eventDTO);
|
||||
}
|
||||
return result;
|
||||
@@ -3059,6 +3060,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
for (EventBase remoteEvent : remoteEvents) {
|
||||
EventBaseDTO remoteEventDTO = convertToEventDTO(remoteEvent);
|
||||
remoteEventDTO.setBaseURL(baseURL);
|
||||
remoteEventDTO.setIsOnRemoteServer(true);
|
||||
result.add(remoteEventDTO);
|
||||
}
|
||||
}
|
||||
@@ -4769,24 +4771,25 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
if (serverNameOrNullForMain == null) {
|
||||
Result<LeaderboardSearchResult> searchResult = getService().search(query);
|
||||
for (LeaderboardSearchResult hit : searchResult.getHits()) {
|
||||
result.add(createLeaderboardSearchResultDTO(hit, getRequestBaseURL()));
|
||||
result.add(createLeaderboardSearchResultDTO(hit, getRequestBaseURL(), false));
|
||||
}
|
||||
} else {
|
||||
RemoteSailingServerReference remoteRef = getService().getRemoteServerReferenceByName(serverNameOrNullForMain);
|
||||
for (LeaderboardSearchResultBase hit : getService().searchRemotely(serverNameOrNullForMain, query).getHits()) {
|
||||
result.add(createLeaderboardSearchResultDTO(hit, remoteRef.getURL()));
|
||||
result.add(createLeaderboardSearchResultDTO(hit, remoteRef.getURL(), true));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private LeaderboardSearchResultDTO createLeaderboardSearchResultDTO(LeaderboardSearchResultBase leaderboardSearchResult, URL baseURL) {
|
||||
private LeaderboardSearchResultDTO createLeaderboardSearchResultDTO(LeaderboardSearchResultBase leaderboardSearchResult, URL baseURL,
|
||||
boolean isOnRemoteServer) {
|
||||
ArrayList<LeaderboardGroupBaseDTO> leaderboardGroups = new ArrayList<>();
|
||||
for (LeaderboardGroupBase lgb : leaderboardSearchResult.getLeaderboardGroups()) {
|
||||
LeaderboardGroupBaseDTO leaderboardGroupDTO = convertToLeaderboardGroupBaseDTO(lgb);
|
||||
leaderboardGroups.add(leaderboardGroupDTO);
|
||||
}
|
||||
return new LeaderboardSearchResultDTO(baseURL.toString(), leaderboardSearchResult.getLeaderboard().getName(),
|
||||
return new LeaderboardSearchResultDTO(baseURL.toString(), isOnRemoteServer, leaderboardSearchResult.getLeaderboard().getName(),
|
||||
leaderboardSearchResult.getLeaderboard().getDisplayName(), leaderboardSearchResult.getRegattaName(),
|
||||
leaderboardSearchResult.getBoatClassName(), convertToEventDTO(leaderboardSearchResult.getEvent()),
|
||||
leaderboardGroups);
|
||||
|
||||
+13
@@ -32,6 +32,11 @@ public class EventBaseDTO extends NamedDTO implements IsSerializable {
|
||||
* resolve to the correct host IP and Java server instance.
|
||||
*/
|
||||
private String baseURL;
|
||||
|
||||
/**
|
||||
* Indicates whether the event is hosted on a remote server or not
|
||||
*/
|
||||
private boolean isOnRemoteServer;
|
||||
|
||||
EventBaseDTO() {} // for serialization only
|
||||
|
||||
@@ -130,4 +135,12 @@ public class EventBaseDTO extends NamedDTO implements IsSerializable {
|
||||
return leaderboardGroups;
|
||||
}
|
||||
|
||||
public boolean isOnRemoteServer() {
|
||||
return isOnRemoteServer;
|
||||
}
|
||||
|
||||
public void setIsOnRemoteServer(boolean isOnRemoteServer) {
|
||||
this.isOnRemoteServer = isOnRemoteServer;
|
||||
}
|
||||
|
||||
}
|
||||
+7
-1
@@ -17,6 +17,7 @@ import com.sap.sailing.domain.base.RemoteSailingServerReference;
|
||||
*/
|
||||
public class LeaderboardSearchResultDTO implements IsSerializable {
|
||||
private String baseURL;
|
||||
private boolean isOnRemoteServer;
|
||||
private String leaderboardName;
|
||||
private String leaderboardDisplayName;
|
||||
private String regattaName;
|
||||
@@ -26,11 +27,12 @@ public class LeaderboardSearchResultDTO implements IsSerializable {
|
||||
|
||||
LeaderboardSearchResultDTO() {} // for GWT RPC serialization only
|
||||
|
||||
public LeaderboardSearchResultDTO(String baseURL, String leaderboardName, String leaderboardDisplayName,
|
||||
public LeaderboardSearchResultDTO(String baseURL, boolean isOnRemoteServer, String leaderboardName, String leaderboardDisplayName,
|
||||
String regattaName, String boatClassName, EventBaseDTO event,
|
||||
Iterable<LeaderboardGroupBaseDTO> leaderboardGroups) {
|
||||
super();
|
||||
this.baseURL = baseURL;
|
||||
this.isOnRemoteServer = isOnRemoteServer;
|
||||
this.leaderboardName = leaderboardName;
|
||||
this.leaderboardDisplayName = leaderboardDisplayName;
|
||||
this.regattaName = regattaName;
|
||||
@@ -91,4 +93,8 @@ public class LeaderboardSearchResultDTO implements IsSerializable {
|
||||
sb.append(getRegattaName());
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public boolean isOnRemoteServer() {
|
||||
return isOnRemoteServer;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user