Adjusted/extended mobile series event navigation

This commit is contained in:
Benjamin Barth committed 2015-10-01 18:02:22 +02:00
1 parent aeaffd1f24
commit 6e1e1cc438
8 files changed
+111 -9

No files matched your search

@@ -1,6 +1,7 @@
package com.sap.sailing.gwt.home.mobile.places;
import java.util.Collection;
import java.util.UUID;
import com.sap.sailing.gwt.home.mobile.partials.quickfinder.Quickfinder;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
@@ -43,23 +44,67 @@ public class QuickfinderPresenter {
}
public static QuickfinderPresenter getForSeriesLeaderboards(Quickfinder quickfinder, String seriesName,
SeriesLeaderboardNavigationProvider navigator, Collection<? extends EventReferenceDTO> eventsOfSeries) {
return new QuickfinderPresenter(quickfinder, navigator, seriesName, eventsOfSeries);
final SeriesLeaderboardNavigationProvider navigator, Collection<? extends EventReferenceDTO> eventsOfSeries) {
return new QuickfinderPresenter(quickfinder, MSG.resultsQuickfinder(), new SeriesEventPlaceNaviationProvider() {
@Override
public PlaceNavigation<?> getPlaceNavigation(UUID eventId) {
return navigator.getMiniLeaderboardNavigation(eventId);
}
@Override
public PlaceNavigation<?> getOverallPlaceNavigation() {
return navigator.getMiniOverallLeaderboardNavigation();
}
}, seriesName, eventsOfSeries);
}
private QuickfinderPresenter(Quickfinder quickfinder, SeriesLeaderboardNavigationProvider navigator, String seriesName, Collection<? extends EventReferenceDTO> eventsOfSeries) {
public static QuickfinderPresenter getForSeriesEventRaces(Quickfinder quickfinder, String seriesName,
final SeriesEventRacesNavigationProvider navigator, Collection<? extends EventReferenceDTO> eventsOfSeries) {
return new QuickfinderPresenter(quickfinder, MSG.racesQuickfinder(), new SeriesEventPlaceNaviationProvider() {
@Override
public PlaceNavigation<?> getPlaceNavigation(UUID eventId) {
return navigator.getSeriesEventRacesNavigation(eventId);
}
@Override
public PlaceNavigation<?> getOverallPlaceNavigation() {
return null;
}
}, seriesName, eventsOfSeries);
}
public static QuickfinderPresenter getForSeriesEventOverview(Quickfinder quickfinder, String seriesName,
final SeriesEventOverviewNavigationProvider navigator, Collection<? extends EventReferenceDTO> eventsOfSeries) {
return new QuickfinderPresenter(quickfinder, MSG.eventQuickfinder(), new SeriesEventPlaceNaviationProvider() {
@Override
public PlaceNavigation<?> getPlaceNavigation(UUID eventId) {
return navigator.getSeriesEventOverviewNavigation(eventId);
}
@Override
public PlaceNavigation<?> getOverallPlaceNavigation() {
return null;
}
}, seriesName, eventsOfSeries);
}
private QuickfinderPresenter(Quickfinder quickfinder, String placeholder, SeriesEventPlaceNaviationProvider provider,
String seriesName, Collection<? extends EventReferenceDTO> eventsOfSeries) {
if (eventsOfSeries == null) {
quickfinder.removeFromParent();
return;
}
quickfinder.addPlaceholderItem(MSG.resultsQuickfinder());
quickfinder.addItemToGroup(seriesName, MSG.overallLeaderboardSelection(), navigator.getMiniOverallLeaderboardNavigation());
quickfinder.addPlaceholderItem(placeholder);
PlaceNavigation<?> overallPlaceNavigation = provider.getOverallPlaceNavigation();
if (overallPlaceNavigation != null) {
quickfinder.addItemToGroup(seriesName, MSG.overallLeaderboardSelection(), overallPlaceNavigation);
}
for (EventReferenceDTO eventOfSeries : eventsOfSeries) {
String displayName = eventOfSeries.getDisplayName();
if(eventOfSeries instanceof EventMetadataDTO) {
displayName = ((EventMetadataDTO) eventOfSeries).getLocationOrDisplayName();
}
quickfinder.addItemToGroup(seriesName, displayName, navigator.getMiniLeaderboardNavigation(eventOfSeries.getId()));
quickfinder.addItemToGroup(seriesName, displayName, provider.getPlaceNavigation(eventOfSeries.getId()));
}
}
@@ -79,6 +124,11 @@ public class QuickfinderPresenter {
}
}
private interface SeriesEventPlaceNaviationProvider {
PlaceNavigation<?> getOverallPlaceNavigation();
PlaceNavigation<?> getPlaceNavigation(UUID eventId);
}
private interface RegattaPlaceNaviationProvider {
PlaceNavigation<?> getPlaceNavigation(String regattaId);
}
@@ -0,0 +1,11 @@
package com.sap.sailing.gwt.home.mobile.places;
import java.util.UUID;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
public interface SeriesEventOverviewNavigationProvider {
PlaceNavigation<?> getSeriesEventOverviewNavigation(UUID eventId);
}
@@ -0,0 +1,10 @@
package com.sap.sailing.gwt.home.mobile.places;
import java.util.UUID;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
public interface SeriesEventRacesNavigationProvider {
PlaceNavigation<?> getSeriesEventRacesNavigation(UUID eventId);
}
@@ -168,10 +168,20 @@ public abstract class AbstractEventActivity<PLACE extends AbstractEventPlace> ex
return clientFactory.getNavigator().getEventNavigation(new RegattaOverviewPlace(ctx), null, false);
}
@Override
public PlaceNavigation<?> getSeriesEventOverviewNavigation(UUID eventId) {
return clientFactory.getNavigator().getEventNavigation(new EventDefaultPlace(eventId.toString()), null, false);
}
public PlaceNavigation<?> getRegattaRacesNavigation(String regattaId) {
EventContext ctx = new EventContext(getCtx()).withRegattaId(regattaId).withRegattaAnalyticsManager(null);
return clientFactory.getNavigator().getEventNavigation(new RegattaRacesPlace(ctx), null, false);
}
@Override
public PlaceNavigation<?> getSeriesEventRacesNavigation(UUID eventId) {
return clientFactory.getNavigator().getEventNavigation(new RegattaRacesPlace(eventId.toString(), null), null, false);
}
public String getRaceViewerURL(String regattaName, String trackedRaceName) {
return null; // TODO No mobile "RaceViewer implemented yet
@@ -76,6 +76,10 @@ public abstract class AbstractEventView<P extends EventViewBase.Presenter> exten
QuickfinderPresenter.getForRegattaLeaderboards(quickfinder, currentPresenter, regattaMetadatas);
}
protected void setQuickFinderValues(Quickfinder quickfinder, String seriesName, Collection<EventReferenceDTO> eventsOfSeries) {
QuickfinderPresenter.getForSeriesLeaderboards(quickfinder, seriesName, currentPresenter, eventsOfSeries);
}
protected void initRacesNavigation(Panel container) {
MobileSection mobileSection = new MobileSection();
SectionHeaderContent header = new SectionHeaderContent();
@@ -93,7 +97,7 @@ public abstract class AbstractEventView<P extends EventViewBase.Presenter> exten
@Override
public final void setQuickFinderValues(String seriesName, Collection<EventReferenceDTO> eventsOfSeries) {
QuickfinderPresenter.getForSeriesLeaderboards(layout.quickFinderUi, seriesName, currentPresenter, eventsOfSeries);
setQuickFinderValues(layout.quickFinderUi, seriesName, eventsOfSeries);
}
@Override
@@ -6,6 +6,8 @@ import com.google.gwt.user.client.ui.IsWidget;
import com.sap.sailing.gwt.home.mobile.places.RegattaLeaderboardNavigationProvider;
import com.sap.sailing.gwt.home.mobile.places.RegattaOverviewNavigationProvider;
import com.sap.sailing.gwt.home.mobile.places.RegattaRacesNavigationProvider;
import com.sap.sailing.gwt.home.mobile.places.SeriesEventOverviewNavigationProvider;
import com.sap.sailing.gwt.home.mobile.places.SeriesEventRacesNavigationProvider;
import com.sap.sailing.gwt.home.mobile.places.SeriesLeaderboardNavigationProvider;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.home.shared.dispatch.DispatchSystem;
@@ -26,7 +28,8 @@ public interface EventViewBase extends IsWidget {
void setSeriesNavigation(String buttonLabel, PlaceNavigation<?> placeNavigation);
public interface Presenter extends RegattaLeaderboardNavigationProvider, SeriesLeaderboardNavigationProvider,
RegattaRacesNavigationProvider, RegattaOverviewNavigationProvider {
RegattaRacesNavigationProvider, SeriesEventRacesNavigationProvider, RegattaOverviewNavigationProvider,
SeriesEventOverviewNavigationProvider {
EventContext getCtx();
@@ -9,9 +9,11 @@ import com.sap.sailing.gwt.home.mobile.partials.eventsteps.EventSteps;
import com.sap.sailing.gwt.home.mobile.partials.impressions.Impressions;
import com.sap.sailing.gwt.home.mobile.partials.liveraces.RegattaLiveRaces;
import com.sap.sailing.gwt.home.mobile.partials.minileaderboard.MinileaderboardBox;
import com.sap.sailing.gwt.home.mobile.partials.quickfinder.Quickfinder;
import com.sap.sailing.gwt.home.mobile.partials.regattaStatus.RegattaStatus;
import com.sap.sailing.gwt.home.mobile.partials.statisticsBox.StatisticsBox;
import com.sap.sailing.gwt.home.mobile.partials.updatesBox.UpdatesBox;
import com.sap.sailing.gwt.home.mobile.places.QuickfinderPresenter;
import com.sap.sailing.gwt.home.mobile.places.event.AbstractEventView;
import com.sap.sailing.gwt.home.shared.ExperimentalFeatures;
import com.sap.sailing.gwt.ui.client.StringMessages;
@@ -23,6 +25,7 @@ import com.sap.sailing.gwt.ui.shared.dispatch.event.GetMiniLeaderbordAction;
import com.sap.sailing.gwt.ui.shared.dispatch.event.GetRegattaStatisticsAction;
import com.sap.sailing.gwt.ui.shared.dispatch.event.GetRegattaWithProgressAction;
import com.sap.sailing.gwt.ui.shared.dispatch.event.GetRegattasAndLiveRacesForEventAction;
import com.sap.sailing.gwt.ui.shared.general.EventReferenceDTO;
import com.sap.sailing.gwt.ui.shared.general.EventState;
import com.sap.sailing.gwt.ui.shared.media.SailingImageDTO;
@@ -113,6 +116,11 @@ public class EventViewImpl extends AbstractEventView<EventView.Presenter> implem
: new GetRegattaStatisticsAction(getEventId(), getRegattaId()));
container.add(statisticsBoxUi);
}
@Override
protected void setQuickFinderValues(Quickfinder quickfinder, String seriesName, Collection<EventReferenceDTO> eventsOfSeries) {
QuickfinderPresenter.getForSeriesEventOverview(quickfinder, seriesName, currentPresenter, eventsOfSeries);
}
@Override
public void setMediaForImpressions(int nrOfImages, int nrOfVideos, Collection<SailingImageDTO> images) {
@@ -13,6 +13,7 @@ import com.sap.sailing.gwt.home.mobile.places.event.AbstractEventView;
import com.sap.sailing.gwt.ui.shared.dispatch.event.GetCompetitionFormatRacesAction;
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO.EventType;
import com.sap.sailing.gwt.ui.shared.eventview.RegattaMetadataDTO;
import com.sap.sailing.gwt.ui.shared.general.EventReferenceDTO;
public class RacesViewImpl extends AbstractEventView<RacesView.Presenter> implements RacesView {
@@ -34,5 +35,10 @@ public class RacesViewImpl extends AbstractEventView<RacesView.Presenter> implem
protected void setQuickFinderValues(Quickfinder quickfinder, Collection<RegattaMetadataDTO> regattaMetadatas) {
QuickfinderPresenter.getForRegattaRaces(quickfinder, currentPresenter, regattaMetadatas);
}
@Override
protected void setQuickFinderValues(Quickfinder quickfinder, String seriesName, Collection<EventReferenceDTO> eventsOfSeries) {
QuickfinderPresenter.getForSeriesEventRaces(quickfinder, seriesName, currentPresenter, eventsOfSeries);
}
}