Added mobile overview for regattas in multi regatta events

This commit is contained in:
Benjamin Barth committed 2015-08-25 15:39:22 +02:00
1 parent 5d3a451d73
commit 6fde74c71b
3 files changed
+118

No files matched your search

@@ -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<RegattaOverviewPlace> 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;
}
}
@@ -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 {
}
}
@@ -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<RegattaView.Presenter> 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<RegattaMetadataDTO> regattaMetadatas) {
QuickfinderPresenter.getForRegattaOverview(quickfinder, currentPresenter, regattaMetadatas);
}
}