Refactored RacesViewImpl to use mobile event view abstraction

This commit is contained in:
Benjamin Barth committed 2015-08-19 12:00:39 +02:00
1 parent ff630de764
commit 3693891f53
3 files changed
+11 -63

No files matched your search

@@ -1,34 +1,12 @@
package com.sap.sailing.gwt.home.mobile.places.races;
import java.util.Collection;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.client.place.event.EventContext;
import com.sap.sailing.gwt.home.mobile.places.RegattaLeaderboardNavigationProvider;
import com.sap.sailing.gwt.home.mobile.places.RegattaRacesNavigationProvider;
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;
import com.sap.sailing.gwt.ui.shared.eventview.RegattaMetadataDTO;
import com.sap.sailing.gwt.ui.shared.general.EventReferenceDTO;
import com.sap.sailing.gwt.home.mobile.places.event.EventViewBase;
public interface RacesView {
public interface RacesView extends EventViewBase {
public interface Presenter extends RegattaLeaderboardNavigationProvider, SeriesLeaderboardNavigationProvider,
RegattaRacesNavigationProvider {
public interface Presenter extends EventViewBase.Presenter, RegattaRacesNavigationProvider {
PlaceNavigation<?> getEventNavigation();
DispatchSystem getDispatch();
EventContext getCtx();
}
Widget asWidget();
void setQuickFinderValues(Collection<RegattaMetadataDTO> regattas);
void setQuickFinderValues(String seriesName, Collection<EventReferenceDTO> eventsOfSeries);
void hideQuickfinder();
}
@@ -1,59 +1,39 @@
package com.sap.sailing.gwt.home.mobile.places.races;
import java.util.Collection;
import java.util.UUID;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.client.place.event.partials.listNavigation.RegattaNavigationResources;
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.reload.RefreshManager;
import com.sap.sailing.gwt.home.mobile.partials.eventheader.EventHeader;
import com.sap.sailing.gwt.home.mobile.partials.quickfinder.Quickfinder;
import com.sap.sailing.gwt.home.mobile.partials.regattacompetition.RegattaCompetition;
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.shared.dispatch.event.GetCompetitionFormatRacesAction;
import com.sap.sailing.gwt.ui.shared.eventview.RegattaMetadataDTO;
import com.sap.sailing.gwt.ui.shared.general.EventReferenceDTO;
public class RacesViewImpl extends Composite implements RacesView {
public class RacesViewImpl extends AbstractEventView<RacesView.Presenter> implements RacesView {
private static RacesViewImplUiBinder uiBinder = GWT.create(RacesViewImplUiBinder.class);
interface RacesViewImplUiBinder extends UiBinder<Widget, RacesViewImpl> {
}
private Presenter currentPresenter;
@UiField(provided = true) EventHeader eventHeaderUi;
@UiField(provided = true) RegattaCompetition regattaCompetitionUi;
@UiField Quickfinder quickFinderUi;
public RacesViewImpl(Presenter presenter) {
currentPresenter = presenter;
eventHeaderUi = new EventHeader(presenter.getCtx().getEventDTO(), presenter.getEventNavigation());
public RacesViewImpl(RacesView.Presenter presenter) {
super(presenter, true);
RegattaNavigationResources.INSTANCE.css().ensureInjected();
regattaCompetitionUi = new RegattaCompetition(presenter);
initWidget(uiBinder.createAndBindUi(this));
RefreshManager refreshManager = new RefreshManager(this, presenter.getDispatch());
UUID eventId = presenter.getCtx().getEventDTO().getId();
refreshManager.add(regattaCompetitionUi, new GetCompetitionFormatRacesAction(eventId, presenter.getCtx().getRegattaId()));
}
@Override
public void setQuickFinderValues(Collection<RegattaMetadataDTO> regattaMetadatas) {
QuickfinderPresenter.getForRegattaRaces(quickFinderUi, currentPresenter, regattaMetadatas);
refreshManager.add(regattaCompetitionUi, new GetCompetitionFormatRacesAction(getEventId(), getRegattaId()));
setViewContent(uiBinder.createAndBindUi(this));
}
@Override
public void setQuickFinderValues(String seriesName, Collection<EventReferenceDTO> eventsOfSeries) {
QuickfinderPresenter.getForSeriesLeaderboards(quickFinderUi, seriesName, currentPresenter, eventsOfSeries);
}
@Override
public void hideQuickfinder() {
quickFinderUi.removeFromParent();
protected void setQuickFinderValues(Quickfinder quickfinder, Collection<RegattaMetadataDTO> regattaMetadatas) {
QuickfinderPresenter.getForRegattaRaces(quickfinder, currentPresenter, regattaMetadatas);
}
}
@@ -5,10 +5,6 @@
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.home.mobile.resources.SharedResources" />
<ui:style>
.headerWrapper {
background-color: #f2f2f2;
padding-bottom: 10px;
}
.pageTitle {
font-size: 1.066666666666667em;
font-weight: 700;
@@ -20,12 +16,6 @@
}
</ui:style>
<g:HTMLPanel>
<div class="{style.headerWrapper}">
<mp:eventheader.EventHeader ui:field="eventHeaderUi" />
<mp:quickfinder.Quickfinder ui:field="quickFinderUi" />
<!-- TODO do we need this here? -->
<!-- <mp:simpleinfoblock.SimpleInfoBlock ui:field="sailorInfoUi" /> -->
</div>
<div class="{res.mediaCss.columns}">
<div class="{res.mediaCss.small12} {style.pageTitle}"><ui:text from="{i18n.races}" /></div>
<p:listNavigation.RaceStateLegend addStyleNames="{res.mediaCss.small12} {style.legend}"/>