Added statistics box to mobile series page

This commit is contained in:
Steffen Schaefer committed 2015-07-20 13:30:19 +02:00
1 parent add970ef04
commit 83ec13b330
4 files changed
+28 -19

No files matched your search

@@ -15,16 +15,16 @@
padding-bottom: 10px; padding-bottom: 10px;
} }
</ui:style> </ui:style>
<g:HTMLPanel> <g:HTMLPanel>
<div class="{style.headerWrapper}"> <div class="{style.headerWrapper}">
<mp:eventheader.EventHeader ui:field="eventHeaderUi" /> <mp:eventheader.EventHeader ui:field="eventHeaderUi" />
<mp:quickfinder.Quickfinder ui:field="quickFinderUi" /> <mp:quickfinder.Quickfinder ui:field="quickFinderUi" />
<mp:simpleinfoblock.SimpleInfoBlock ui:field="simpleInfoUi" /> <mp:simpleinfoblock.SimpleInfoBlock ui:field="simpleInfoUi" />
</div> </div>
<p:overview.EventOverviewStage ui:field="overviewStageUi" /> <p:overview.EventOverviewStage ui:field="overviewStageUi" />
<g:SimplePanel ui:field="listContentUi"/> <g:SimplePanel ui:field="listContentUi"/>
<mp:updatesBox.UpdatesBox ui:field="updatesBoxUi" /> <mp:updatesBox.UpdatesBox ui:field="updatesBoxUi" />
<mp:impressions.Impressions ui:field="impressionsUi" /> <mp:impressions.Impressions ui:field="impressionsUi" />
<mp:statisticsBox.StatisticsBox ui:field="statisticsBoxUi" /> <mp:statisticsBox.StatisticsBox ui:field="statisticsBoxUi" />
</g:HTMLPanel> </g:HTMLPanel>
</ui:UiBinder> </ui:UiBinder>
@@ -13,8 +13,10 @@ import com.sap.sailing.gwt.home.mobile.partials.minileaderboard.MinileaderboardB
import com.sap.sailing.gwt.home.mobile.partials.quickfinder.Quickfinder; import com.sap.sailing.gwt.home.mobile.partials.quickfinder.Quickfinder;
import com.sap.sailing.gwt.home.mobile.partials.recents.EventsOverviewRecentYearEvent; import com.sap.sailing.gwt.home.mobile.partials.recents.EventsOverviewRecentYearEvent;
import com.sap.sailing.gwt.home.mobile.partials.seriesheader.SeriesHeader; import com.sap.sailing.gwt.home.mobile.partials.seriesheader.SeriesHeader;
import com.sap.sailing.gwt.home.mobile.partials.statisticsBox.StatisticsBox;
import com.sap.sailing.gwt.home.mobile.places.QuickfinderPresenter; import com.sap.sailing.gwt.home.mobile.places.QuickfinderPresenter;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.dispatch.event.GetEventStatisticsAction;
import com.sap.sailing.gwt.ui.shared.dispatch.event.GetMiniOverallLeaderbordAction; import com.sap.sailing.gwt.ui.shared.dispatch.event.GetMiniOverallLeaderbordAction;
import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO; import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO;
import com.sap.sailing.gwt.ui.shared.general.EventMetadataDTO; import com.sap.sailing.gwt.ui.shared.general.EventMetadataDTO;
@@ -31,7 +33,7 @@ public class SeriesViewImpl extends Composite implements SeriesView {
@UiField Quickfinder quickFinderUi; @UiField Quickfinder quickFinderUi;
@UiField(provided = true) MinileaderboardBox leaderboardUi; @UiField(provided = true) MinileaderboardBox leaderboardUi;
@UiField FlowPanel eventsUi; @UiField FlowPanel eventsUi;
// @UiField(provided = true) StatisticsBox statisticsBoxUi; @UiField(provided = true) StatisticsBox statisticsBoxUi;
private final Presenter currentPresenter; private final Presenter currentPresenter;
private final RefreshManager refreshManager; private final RefreshManager refreshManager;
@@ -41,7 +43,7 @@ public class SeriesViewImpl extends Composite implements SeriesView {
this.refreshManager = new RefreshManager(this, currentPresenter.getDispatch()); this.refreshManager = new RefreshManager(this, currentPresenter.getDispatch());
EventSeriesViewDTO series = currentPresenter.getCtx().getSeriesDTO(); EventSeriesViewDTO series = currentPresenter.getCtx().getSeriesDTO();
eventHeaderUi = new SeriesHeader(series); eventHeaderUi = new SeriesHeader(series);
// this.setupStatisticsBox(event); this.setupStatisticsBox(series);
leaderboardUi = new MinileaderboardBox(true); leaderboardUi = new MinileaderboardBox(true);
initWidget(uiBinder.createAndBindUi(this)); initWidget(uiBinder.createAndBindUi(this));
this.setupListContent(series); this.setupListContent(series);
@@ -70,9 +72,9 @@ public class SeriesViewImpl extends Composite implements SeriesView {
leaderboardUi.setAction(MSG.showAll(), currentPresenter.getMiniOverallLeaderboardNavigation()); leaderboardUi.setAction(MSG.showAll(), currentPresenter.getMiniOverallLeaderboardNavigation());
refreshManager.add(leaderboardUi, new GetMiniOverallLeaderbordAction(event.getId(), 3)); refreshManager.add(leaderboardUi, new GetMiniOverallLeaderbordAction(event.getId(), 3));
} }
//
// private void setupStatisticsBox(EventViewDTO event) { private void setupStatisticsBox(EventSeriesViewDTO series) {
// statisticsBoxUi = new StatisticsBox(event.getType() == EventType.MULTI_REGATTA); statisticsBoxUi = new StatisticsBox(true);
// refreshManager.add(statisticsBoxUi, new GetEventStatisticsAction(event.getId())); refreshManager.add(statisticsBoxUi, new GetEventStatisticsAction(series.getId(), false));
// } }
} }
@@ -22,6 +22,6 @@
</div> </div>
<g:FlowPanel ui:field="eventsUi" /> <g:FlowPanel ui:field="eventsUi" />
<mp:minileaderboard.MinileaderboardBox ui:field="leaderboardUi"/> <mp:minileaderboard.MinileaderboardBox ui:field="leaderboardUi"/>
<!-- <mp:statisticsBox.StatisticsBox ui:field="statisticsBoxUi" /> --> <mp:statisticsBox.StatisticsBox ui:field="statisticsBoxUi" />
</g:HTMLPanel> </g:HTMLPanel>
</ui:UiBinder> </ui:UiBinder>
@@ -36,16 +36,23 @@ import com.sap.sse.common.impl.MillisecondsTimePoint;
public class GetEventStatisticsAction implements Action<ResultWithTTL<EventStatisticsDTO>> { public class GetEventStatisticsAction implements Action<ResultWithTTL<EventStatisticsDTO>> {
private static final Logger logger = Logger.getLogger(GetEventStatisticsAction.class.getName()); private static final Logger logger = Logger.getLogger(GetEventStatisticsAction.class.getName());
private UUID eventId;
private static boolean CALCULATE_MAX_SPEED = false; private static boolean CALCULATE_MAX_SPEED = false;
private static boolean CALCULATE_SAILED_MILES = true; private static boolean CALCULATE_SAILED_MILES = true;
private UUID eventId;
private boolean onlyCurrentEvent;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private GetEventStatisticsAction() { private GetEventStatisticsAction() {
} }
public GetEventStatisticsAction(UUID eventId) { public GetEventStatisticsAction(UUID eventId) {
this(eventId, true);
}
public GetEventStatisticsAction(UUID eventId, boolean onlyCurrentEvent) {
this.eventId = eventId; this.eventId = eventId;
this.onlyCurrentEvent = onlyCurrentEvent;
} }
@GwtIncompatible @GwtIncompatible
@@ -64,10 +71,10 @@ public class GetEventStatisticsAction implements Action<ResultWithTTL<EventStati
Triple<Competitor, Speed, TimePoint> maxSpeed = null; Triple<Competitor, Speed, TimePoint> maxSpeed = null;
final TimePoint now = MillisecondsTimePoint.now(); final TimePoint now = MillisecondsTimePoint.now();
final Set<Leaderboard> leaderboards = new HashSet<>(); final Set<Leaderboard> leaderboards = new HashSet<>();
final boolean series = HomeServiceUtil.isFakeSeries(event); final boolean filterLeaderboards = onlyCurrentEvent && HomeServiceUtil.isFakeSeries(event);
for (LeaderboardGroup lg : event.getLeaderboardGroups()) { for (LeaderboardGroup lg : event.getLeaderboardGroups()) {
for (Leaderboard leaderboard : lg.getLeaderboards()) { for (Leaderboard leaderboard : lg.getLeaderboards()) {
if(!series || HomeServiceUtil.isPartOfEvent(event, leaderboard)) { if(!filterLeaderboards || HomeServiceUtil.isPartOfEvent(event, leaderboard)) {
leaderboards.add(leaderboard); leaderboards.add(leaderboard);
} }
} }