mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-27 22:37:15 +00:00
Refactored MiniLeaderboardViewImpl to use mobile event view abstraction
This commit is contained in:
1 parent
07f91f41f6
commit
b8453e4dd7
3 files changed
+14
-112
No files matched your search
+3
-24
@@ -1,32 +1,11 @@
|
||||
package com.sap.sailing.gwt.home.mobile.places.minileaderboard;
|
||||
|
||||
import java.util.Collection;
|
||||
import com.sap.sailing.gwt.home.mobile.places.event.EventViewBase;
|
||||
|
||||
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.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;
|
||||
public interface MiniLeaderboardView extends EventViewBase {
|
||||
|
||||
public interface MiniLeaderboardView {
|
||||
|
||||
public interface Presenter extends RegattaLeaderboardNavigationProvider, SeriesLeaderboardNavigationProvider {
|
||||
public interface Presenter extends EventViewBase.Presenter {
|
||||
|
||||
PlaceNavigation<?> getEventNavigation();
|
||||
|
||||
DispatchSystem getDispatch();
|
||||
|
||||
EventContext getCtx();
|
||||
}
|
||||
|
||||
Widget asWidget();
|
||||
|
||||
void setQuickFinderValues(Collection<RegattaMetadataDTO> regattas);
|
||||
|
||||
void setQuickFinderValues(String seriesName, Collection<EventReferenceDTO> eventsOfSeries);
|
||||
|
||||
void hideQuickfinder();
|
||||
}
|
||||
+11
-57
@@ -1,68 +1,22 @@
|
||||
package com.sap.sailing.gwt.home.mobile.places.minileaderboard;
|
||||
|
||||
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.EventContext;
|
||||
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.minileaderboard.MinileaderboardBox;
|
||||
import com.sap.sailing.gwt.home.mobile.partials.quickfinder.Quickfinder;
|
||||
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.GetMiniLeaderbordAction;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO.EventType;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.RegattaMetadataDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventReferenceDTO;
|
||||
|
||||
public class MiniLeaderboardViewImpl extends Composite implements MiniLeaderboardView {
|
||||
public class MiniLeaderboardViewImpl extends AbstractEventView<MiniLeaderboardView.Presenter> implements MiniLeaderboardView {
|
||||
|
||||
private static final StringMessages MSG = StringMessages.INSTANCE;
|
||||
private static MyBinder uiBinder = GWT.create(MyBinder.class);
|
||||
|
||||
interface MyBinder extends UiBinder<Widget, MiniLeaderboardViewImpl> {
|
||||
}
|
||||
|
||||
private Presenter currentPresenter;
|
||||
@UiField(provided = true)
|
||||
EventHeader eventHeaderUi;
|
||||
@UiField(provided = true)
|
||||
MinileaderboardBox minileaderboardUi;
|
||||
@UiField
|
||||
Quickfinder quickFinderUi;
|
||||
|
||||
public MiniLeaderboardViewImpl(Presenter presenter) {
|
||||
this.currentPresenter = presenter;
|
||||
String regattaDisplayName = null;
|
||||
if(presenter.getCtx().getEventDTO().getType() == EventType.MULTI_REGATTA) {
|
||||
regattaDisplayName = presenter.getCtx().getRegatta().getDisplayName();
|
||||
}
|
||||
minileaderboardUi = new MinileaderboardBox(false);
|
||||
eventHeaderUi = new EventHeader(presenter.getCtx().getEventDTO(), regattaDisplayName, presenter.getEventNavigation());
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
RefreshManager refreshManager = new RefreshManager(this, currentPresenter.getDispatch());
|
||||
EventContext ctx = presenter.getCtx();
|
||||
UUID uuid = UUID.fromString(ctx.getEventId());
|
||||
refreshManager.add(minileaderboardUi, new GetMiniLeaderbordAction(uuid, presenter.getCtx().getRegattaId()));
|
||||
minileaderboardUi.setAction(MSG.details(), presenter.getRegattaLeaderboardNavigation(presenter.getCtx().getRegattaId()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setQuickFinderValues(Collection<RegattaMetadataDTO> regattaMetadatas) {
|
||||
QuickfinderPresenter.getForRegattaLeaderboards(quickFinderUi, currentPresenter, regattaMetadatas);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setQuickFinderValues(String seriesName, Collection<EventReferenceDTO> eventsOfSeries) {
|
||||
QuickfinderPresenter.getForSeriesLeaderboards(quickFinderUi, seriesName, currentPresenter, eventsOfSeries);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hideQuickfinder() {
|
||||
quickFinderUi.removeFromParent();
|
||||
private final MinileaderboardBox minileaderboard;
|
||||
|
||||
public MiniLeaderboardViewImpl(MiniLeaderboardView.Presenter presenter) {
|
||||
super(presenter, presenter.getCtx().getEventDTO().getType() == EventType.MULTI_REGATTA, true);
|
||||
setViewContent(minileaderboard = new MinileaderboardBox(false));
|
||||
refreshManager.add(minileaderboard, new GetMiniLeaderbordAction(getEventId(), getRegattaId()));
|
||||
minileaderboard.setAction(MSG.details(), presenter.getRegattaLeaderboardNavigation(getRegattaId()));
|
||||
}
|
||||
|
||||
}
|
||||
-31
@@ -1,31 +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:s="urn:import:com.sap.sailing.gwt.home.client.shared"
|
||||
xmlns:mp="urn:import:com.sap.sailing.gwt.home.mobile.partials"
|
||||
xmlns:g="urn:import:com.google.gwt.user.client.ui"
|
||||
>
|
||||
<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;
|
||||
}
|
||||
</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>
|
||||
<mp:minileaderboard.MinileaderboardBox ui:field="minileaderboardUi"/>
|
||||
</g:HTMLPanel>
|
||||
</ui:UiBinder>
|
||||
Reference in new issue
Block a user