mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-27 22:37:15 +00:00
Added abstraction for mobile event views
This commit is contained in:
1 parent
26cc859e36
commit
e2fe292b62
3 files changed
+117
No files matched your search
+67
@@ -0,0 +1,67 @@
|
||||
package com.sap.sailing.gwt.home.mobile.places.event;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
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.SimplePanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
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.simpleinfoblock.SimpleInfoBlock;
|
||||
import com.sap.sailing.gwt.home.mobile.places.QuickfinderPresenter;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.RegattaMetadataDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventReferenceDTO;
|
||||
|
||||
public abstract class AbstractEventView extends Composite implements EventViewBase {
|
||||
|
||||
private static AbstractEventViewUiBinder uiBinder = GWT.create(AbstractEventViewUiBinder.class);
|
||||
|
||||
interface AbstractEventViewUiBinder extends UiBinder<Widget, AbstractEventViewLayout> {
|
||||
}
|
||||
|
||||
static class AbstractEventViewLayout {
|
||||
@UiField(provided = true) EventHeader eventHeaderUi;
|
||||
@UiField Quickfinder quickFinderUi;
|
||||
@UiField SimpleInfoBlock simpleInfoUi;
|
||||
@UiField SimplePanel viewContentUi;
|
||||
|
||||
private AbstractEventViewLayout(EventViewDTO event) {
|
||||
this.eventHeaderUi = new EventHeader(event);
|
||||
}
|
||||
}
|
||||
|
||||
private final Presenter currentPresenter;
|
||||
private final AbstractEventViewLayout layout;
|
||||
protected final RefreshManager refreshManager;
|
||||
|
||||
public AbstractEventView(Presenter presenter) {
|
||||
this.currentPresenter = presenter;
|
||||
this.layout = new AbstractEventViewLayout(currentPresenter.getCtx().getEventDTO());
|
||||
this.refreshManager = new RefreshManager(this, currentPresenter.getDispatch());
|
||||
initWidget(uiBinder.createAndBindUi(this.layout));
|
||||
layout.viewContentUi.setWidget(getViewContent());
|
||||
}
|
||||
|
||||
protected abstract Widget getViewContent();
|
||||
|
||||
@Override
|
||||
public void setQuickFinderValues(Collection<RegattaMetadataDTO> regattaMetadatas) {
|
||||
QuickfinderPresenter.getForRegattaLeaderboards(layout.quickFinderUi, currentPresenter, regattaMetadatas);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setQuickFinderValues(String seriesName, Collection<EventReferenceDTO> eventsOfSeries) {
|
||||
QuickfinderPresenter.getForSeriesLeaderboards(layout.quickFinderUi, seriesName, currentPresenter, eventsOfSeries);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hideQuickfinder() {
|
||||
layout.quickFinderUi.removeFromParent();
|
||||
}
|
||||
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
<!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:s="urn:import:com.sap.sailing.gwt.home.client.shared" xmlns:e="urn:import:com.sap.sailing.gwt.home.mobile.places.event"
|
||||
xmlns:mp="urn:import:com.sap.sailing.gwt.home.mobile.partials">
|
||||
<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" />
|
||||
<mp:simpleinfoblock.SimpleInfoBlock ui:field="simpleInfoUi" />
|
||||
</div>
|
||||
<g:SimplePanel ui:field="viewContentUi"></g:SimplePanel>
|
||||
</g:HTMLPanel>
|
||||
</ui:UiBinder>
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package com.sap.sailing.gwt.home.mobile.places.event;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import com.google.gwt.user.client.ui.IsWidget;
|
||||
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 EventViewBase extends IsWidget {
|
||||
|
||||
void setQuickFinderValues(Collection<RegattaMetadataDTO> regattaMetadatas);
|
||||
|
||||
void setQuickFinderValues(String seriesName, Collection<EventReferenceDTO> eventsOfSeries);
|
||||
|
||||
void hideQuickfinder();
|
||||
|
||||
public interface Presenter extends RegattaLeaderboardNavigationProvider, SeriesLeaderboardNavigationProvider {
|
||||
|
||||
PlaceNavigation<?> getEventNavigation();
|
||||
|
||||
DispatchSystem getDispatch();
|
||||
|
||||
EventContext getCtx();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user