diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/regatta/RegattaActivity.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/regatta/RegattaActivity.java new file mode 100644 index 00000000000..9f8cc958236 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/regatta/RegattaActivity.java @@ -0,0 +1,21 @@ +package com.sap.sailing.gwt.home.mobile.places.regatta; + +import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaOverviewPlace; +import com.sap.sailing.gwt.home.mobile.app.MobileApplicationClientFactory; +import com.sap.sailing.gwt.home.mobile.places.event.AbstractEventActivity; +import com.sap.sailing.gwt.home.mobile.places.event.EventViewBase; + +public class RegattaActivity extends AbstractEventActivity implements RegattaView.Presenter { + + public RegattaActivity(RegattaOverviewPlace place, MobileApplicationClientFactory clientFactory) { + super(place, clientFactory); + } + + @Override + protected EventViewBase initView() { + final RegattaView view = new RegattaViewImpl(this); + initQuickfinder(view, true); + return view; + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/regatta/RegattaView.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/regatta/RegattaView.java new file mode 100644 index 00000000000..fabab53fb7a --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/regatta/RegattaView.java @@ -0,0 +1,12 @@ +package com.sap.sailing.gwt.home.mobile.places.regatta; + +import com.sap.sailing.gwt.home.mobile.partials.updatesBox.NewsItemLinkProvider; +import com.sap.sailing.gwt.home.mobile.places.event.EventViewBase; + +public interface RegattaView extends EventViewBase { + + public interface Presenter extends EventViewBase.Presenter, NewsItemLinkProvider { + + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/regatta/RegattaViewImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/regatta/RegattaViewImpl.java new file mode 100644 index 00000000000..b0044ed7c0c --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/regatta/RegattaViewImpl.java @@ -0,0 +1,85 @@ +package com.sap.sailing.gwt.home.mobile.places.regatta; + +import java.util.Collection; + +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.Panel; +import com.sap.sailing.gwt.home.mobile.partials.eventsteps.EventSteps; +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.section.MobileSection; +import com.sap.sailing.gwt.home.mobile.partials.sectionHeader.SectionHeaderContent; +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.ui.client.StringMessages; +import com.sap.sailing.gwt.ui.shared.dispatch.event.GetEventOverviewNewsAction; +import com.sap.sailing.gwt.ui.shared.dispatch.event.GetEventStatisticsAction; +import com.sap.sailing.gwt.ui.shared.dispatch.event.GetMiniLeaderbordAction; +import com.sap.sailing.gwt.ui.shared.dispatch.event.GetRegattaWithProgressAction; +import com.sap.sailing.gwt.ui.shared.eventview.RegattaMetadataDTO; +import com.sap.sailing.gwt.ui.shared.general.EventState; + +public class RegattaViewImpl extends AbstractEventView implements RegattaView { + + private EventSteps regattaProgressUi; + private MinileaderboardBox leaderboardUi; + private UpdatesBox latestNewsUi; + private StatisticsBox statisticsUi; + + public RegattaViewImpl(RegattaView.Presenter presenter) { + super(presenter, true, true); + Panel container = new FlowPanel(); + this.initRegattaProgressUi(container); + this.initLeaderboardUi(container); + this.initLatestNewsUi(container); + this.initRacesNavigation(container); + this.initStatisticsUi(container); + setViewContent(container); + } + + private void initRegattaProgressUi(Panel container) { + regattaProgressUi = new EventSteps(); + refreshManager.add(regattaProgressUi, new GetRegattaWithProgressAction(getEventId(), getRegattaId())); + container.add(regattaProgressUi); + } + + private void initLeaderboardUi(Panel container) { + leaderboardUi = new MinileaderboardBox(false); + leaderboardUi.setAction(StringMessages.INSTANCE.showAll(), currentPresenter.getRegattaMiniLeaderboardNavigation(getRegattaId())); + refreshManager.add(leaderboardUi, new GetMiniLeaderbordAction(getEventId(), getRegattaId(), 3)); + container.add(leaderboardUi); + } + + private void initLatestNewsUi(Panel container) { + latestNewsUi = new UpdatesBox(currentPresenter, refreshManager); + if (currentPresenter.getCtx().getEventDTO().getState() == EventState.RUNNING) { + refreshManager.add(latestNewsUi, new GetEventOverviewNewsAction(getEventId(), 2)); + container.add(latestNewsUi); + } + } + + private void initRacesNavigation(Panel container) { + MobileSection mobileSection = new MobileSection(); + SectionHeaderContent header = new SectionHeaderContent(); + header.setSectionTitle(StringMessages.INSTANCE.racesCount(currentPresenter.getCtx().getRegatta().getRaceCount())); + header.setInfoText(StringMessages.INSTANCE.showAll()); + header.setClickAction(currentPresenter.getRegattaRacesNavigation(getRegattaId())); + mobileSection.addHeader(header); + container.add(mobileSection); + } + + private void initStatisticsUi(Panel container) { + statisticsUi = new StatisticsBox(false); + // FIXME only show statistics of the regatta + refreshManager.add(statisticsUi, new GetEventStatisticsAction(getEventId(), true)); + container.add(statisticsUi); + } + + @Override + protected void setQuickFinderValues(Quickfinder quickfinder, Collection regattaMetadatas) { + QuickfinderPresenter.getForRegattaOverview(quickfinder, currentPresenter, regattaMetadatas); + } + +}