Refactored mobile event view and added regatta progress for single

regatta and series events
This commit is contained in:
Benjamin Barth committed 2015-08-25 13:06:37 +02:00
1 parent 726e0f1d93
commit c76e2506a5
2 files changed
+40 -40

No files matched your search

@@ -2,12 +2,10 @@ package com.sap.sailing.gwt.home.mobile.places.event;
import java.util.Collection;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
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.impressions.Impressions;
import com.sap.sailing.gwt.home.mobile.partials.minileaderboard.MinileaderboardBox;
import com.sap.sailing.gwt.home.mobile.partials.regattaStatus.RegattaStatus;
@@ -19,6 +17,7 @@ import com.sap.sailing.gwt.ui.shared.dispatch.event.GetEventOverviewNewsAction;
import com.sap.sailing.gwt.ui.shared.dispatch.event.GetEventOverviewStageAction;
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.dispatch.event.GetRegattasAndLiveRacesForEventAction;
import com.sap.sailing.gwt.ui.shared.general.EventState;
import com.sap.sailing.gwt.ui.shared.media.SailingImageDTO;
@@ -26,57 +25,70 @@ import com.sap.sailing.gwt.ui.shared.media.SailingImageDTO;
public class EventViewImpl extends AbstractEventView<EventView.Presenter> implements EventView {
private static final StringMessages MSG = StringMessages.INSTANCE;
private static StartPageViewUiBinder uiBinder = GWT.create(StartPageViewUiBinder.class);
interface StartPageViewUiBinder extends UiBinder<Widget, EventViewImpl> {
}
@UiField(provided = true) EventOverviewStage overviewStageUi;
@UiField SimplePanel listContentUi;
@UiField Impressions impressionsUi;
@UiField(provided = true) StatisticsBox statisticsBoxUi;
@UiField(provided = true) UpdatesBox updatesBoxUi;
private EventOverviewStage overviewStageUi;
private EventSteps eventStepsUi;
private Impressions impressionsUi;
private StatisticsBox statisticsBoxUi;
private UpdatesBox updatesBoxUi;
public EventViewImpl(EventView.Presenter presenter) {
super(presenter, false, false);
this.setupOverviewStage();
this.setupUpdateBox();
this.setupStatisticsBox();
setViewContent(uiBinder.createAndBindUi(this));
this.setupListContent();
impressionsUi.getElement().getStyle().setDisplay(Display.NONE);
FlowPanel container = new FlowPanel();
this.setupOverviewStage(container);
this.setupProgress(container);
this.setupListContent(container);
this.setupUpdateBox(container);
this.setupImpressions(container);
this.setupStatisticsBox(container);
setViewContent(container);
}
private void setupOverviewStage() {
private void setupProgress(Panel container) {
eventStepsUi = new EventSteps();
if (!isMultiRegattaEvent()) {
refreshManager.add(eventStepsUi, new GetRegattaWithProgressAction(getEventId(), getRegattaId()));
container.add(eventStepsUi);
}
}
private void setupOverviewStage(Panel container) {
overviewStageUi = new EventOverviewStage(currentPresenter);
refreshManager.add(overviewStageUi, new GetEventOverviewStageAction(getEventId()));
container.add(overviewStageUi);
}
private void setupListContent() {
private void setupListContent(Panel container) {
if (isMultiRegattaEvent()) {
RegattaStatus regattaStatus = new RegattaStatus(currentPresenter);
listContentUi.add(regattaStatus);
container.add(regattaStatus);
refreshManager.add(regattaStatus, new GetRegattasAndLiveRacesForEventAction(getEventId()));
} else {
MinileaderboardBox miniLeaderboard = new MinileaderboardBox(false);
miniLeaderboard.setAction(MSG.showAll(), currentPresenter.getRegattaMiniLeaderboardNavigation(getRegattaId()));
listContentUi.add(miniLeaderboard);
container.add(miniLeaderboard);
refreshManager.add(miniLeaderboard, new GetMiniLeaderbordAction(getEventId(), getRegattaId(), 3));
}
}
private void setupUpdateBox() {
private void setupUpdateBox(Panel container) {
updatesBoxUi = new UpdatesBox(currentPresenter, refreshManager);
if (currentPresenter.getCtx().getEventDTO().getState() == EventState.RUNNING) {
refreshManager.add(updatesBoxUi, new GetEventOverviewNewsAction(getEventId(), 2));
} else {
updatesBoxUi.removeFromParent();
container.add(updatesBoxUi);
}
}
private void setupStatisticsBox() {
private void setupImpressions(Panel container) {
impressionsUi = new Impressions();
impressionsUi.getElement().getStyle().setDisplay(Display.NONE);
container.add(impressionsUi);
}
private void setupStatisticsBox(Panel container) {
statisticsBoxUi = new StatisticsBox(isMultiRegattaEvent());
refreshManager.add(statisticsBoxUi, new GetEventStatisticsAction(getEventId()));
container.add(statisticsBoxUi);
}
@Override
@@ -1,12 +0,0 @@
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:mp="urn:import:com.sap.sailing.gwt.home.mobile.partials" xmlns:e="urn:import:com.sap.sailing.gwt.home.mobile.places.event">
<ui:with field="res" type="com.sap.sailing.gwt.home.mobile.resources.SharedResources" />
<g:HTMLPanel>
<e:overview.EventOverviewStage ui:field="overviewStageUi" />
<g:SimplePanel ui:field="listContentUi"/>
<mp:updatesBox.UpdatesBox ui:field="updatesBoxUi" />
<mp:impressions.Impressions ui:field="impressionsUi" />
<mp:statisticsBox.StatisticsBox ui:field="statisticsBoxUi" />
</g:HTMLPanel>
</ui:UiBinder>