mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-05 20:03:52 +00:00
Initial mini leaderboard
This commit is contained in:
1 parent
aac2dafd9a
commit
1d546fd54a
12 files changed
+269
-1
No files matched your search
+3
-1
@@ -5,8 +5,10 @@ import com.sap.sailing.gwt.home.client.place.event.AbstractEventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventContext;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPrefixes;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.AbstractEventRegattaPlace;
|
||||
import com.sap.sailing.gwt.home.shared.app.HasLocationTitle;
|
||||
import com.sap.sailing.gwt.home.shared.app.HasMobileVersion;
|
||||
|
||||
public class RegattaLeaderboardPlace extends AbstractEventRegattaPlace {
|
||||
public class RegattaLeaderboardPlace extends AbstractEventRegattaPlace implements HasLocationTitle, HasMobileVersion {
|
||||
public RegattaLeaderboardPlace(String id, String regattaId) {
|
||||
super(id, regattaId);
|
||||
}
|
||||
|
||||
+6
@@ -4,12 +4,14 @@ import com.google.gwt.activity.shared.Activity;
|
||||
import com.google.gwt.activity.shared.ActivityMapper;
|
||||
import com.google.gwt.place.shared.Place;
|
||||
import com.sap.sailing.gwt.home.client.place.event.AbstractEventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaLeaderboardPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.events.EventsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.start.StartPlace;
|
||||
import com.sap.sailing.gwt.home.mobile.places.event.EventActivityProxy;
|
||||
import com.sap.sailing.gwt.home.mobile.places.events.EventsActivityProxy;
|
||||
import com.sap.sailing.gwt.home.mobile.places.latestnews.LatestNewsActivityProxy;
|
||||
import com.sap.sailing.gwt.home.mobile.places.latestnews.LatestNewsPlace;
|
||||
import com.sap.sailing.gwt.home.mobile.places.minileaderboard.MiniLeaderboardActivity;
|
||||
import com.sap.sailing.gwt.home.mobile.places.notmobile.NotMobileActivityProxy;
|
||||
import com.sap.sailing.gwt.home.shared.app.HasMobileVersion;
|
||||
|
||||
@@ -39,6 +41,10 @@ public class MobileActivityMapper implements ActivityMapper {
|
||||
lastVisitedPlace = place;
|
||||
EventsPlace eventPlace = (EventsPlace) place;
|
||||
return new EventsActivityProxy(eventPlace, clientFactory);
|
||||
} else if (place instanceof RegattaLeaderboardPlace) {
|
||||
lastVisitedPlace = place;
|
||||
RegattaLeaderboardPlace eventPlace = (RegattaLeaderboardPlace) place;
|
||||
return new MiniLeaderboardActivity(eventPlace, clientFactory);
|
||||
} else if (place instanceof LatestNewsPlace) {
|
||||
lastVisitedPlace = place;
|
||||
LatestNewsPlace eventPlace = (LatestNewsPlace) place;
|
||||
|
||||
+2
@@ -4,6 +4,7 @@ import com.google.gwt.place.shared.PlaceHistoryMapper;
|
||||
import com.google.gwt.place.shared.WithTokenizers;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventDefaultPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.legacy.EventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaLeaderboardPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.events.EventsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.start.StartPlace;
|
||||
import com.sap.sailing.gwt.home.mobile.places.latestnews.LatestNewsPlace;
|
||||
@@ -13,6 +14,7 @@ EventPlace.Tokenizer.class,//
|
||||
EventsPlace.Tokenizer.class,//
|
||||
EventDefaultPlace.Tokenizer.class,//
|
||||
LatestNewsPlace.Tokenizer.class,//
|
||||
RegattaLeaderboardPlace.Tokenizer.class, //
|
||||
StartPlace.Tokenizer.class
|
||||
})
|
||||
public interface MobileHistoryMapper extends PlaceHistoryMapper {
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
package com.sap.sailing.gwt.home.mobile.partials.minileaderboard;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
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.regatta.tabs.reload.RefreshableWidget;
|
||||
import com.sap.sailing.gwt.home.mobile.partials.section.MobileSection;
|
||||
import com.sap.sailing.gwt.home.mobile.partials.sectionHeader.SectionHeaderContent;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.ListResult;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.event.GetMobileLeaderbordAction.SimplifiedLeaderboardItemDTO;
|
||||
|
||||
public class MinileaderboardBox extends Composite implements RefreshableWidget<ListResult<SimplifiedLeaderboardItemDTO>> {
|
||||
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
|
||||
|
||||
interface MyUiBinder extends UiBinder<Widget, MinileaderboardBox> {
|
||||
}
|
||||
|
||||
@UiField
|
||||
MobileSection itemContainerUi;
|
||||
@UiField
|
||||
SectionHeaderContent headerUi;
|
||||
|
||||
public MinileaderboardBox() {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setData(final ListResult<SimplifiedLeaderboardItemDTO> data, long nextUpdate, int updateNo) {
|
||||
setData(data.getValues());
|
||||
}
|
||||
|
||||
public void setData(final List<SimplifiedLeaderboardItemDTO> data) {
|
||||
|
||||
itemContainerUi.clearContent();
|
||||
for (SimplifiedLeaderboardItemDTO item : data) {
|
||||
itemContainerUi.addContent(new MinileaderboardBoxItem(item));
|
||||
}
|
||||
}
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
<!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:mp="urn:import:com.sap.sailing.gwt.home.mobile.partials"
|
||||
>
|
||||
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
|
||||
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
|
||||
|
||||
<mp:section.MobileSection ui:field="itemContainerUi" edgeToEdgeContent="true">
|
||||
<mp:header>
|
||||
<mp:sectionHeader.SectionHeaderContent sectionTitle="{i18n.leaderboard}" ui:field="headerUi" />
|
||||
</mp:header>
|
||||
</mp:section.MobileSection>
|
||||
|
||||
</ui:UiBinder>
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.sap.sailing.gwt.home.mobile.partials.minileaderboard;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Element;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.event.GetMobileLeaderbordAction.SimplifiedLeaderboardItemDTO;
|
||||
|
||||
public class MinileaderboardBoxItem extends Widget {
|
||||
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
|
||||
|
||||
interface MyUiBinder extends UiBinder<Element, MinileaderboardBoxItem> {
|
||||
}
|
||||
|
||||
@UiField
|
||||
Element competitorNameUi;
|
||||
|
||||
public MinileaderboardBoxItem(SimplifiedLeaderboardItemDTO entry) {
|
||||
setElement(uiBinder.createAndBindUi(this));
|
||||
competitorNameUi.setInnerText(entry.getCompetitor().getName());
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
<!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">
|
||||
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
|
||||
<ui:with field="local_res" type="com.sap.sailing.gwt.home.mobile.partials.updatesBox.UpdatesBoxResources" />
|
||||
|
||||
<div>
|
||||
<p ui:field="competitorNameUi">HELLO</p>
|
||||
</div>
|
||||
|
||||
</ui:UiBinder>
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
package com.sap.sailing.gwt.home.mobile.places.minileaderboard;
|
||||
|
||||
import com.google.gwt.activity.shared.AbstractActivity;
|
||||
import com.google.gwt.event.shared.EventBus;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventContext;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaLeaderboardPlace;
|
||||
import com.sap.sailing.gwt.home.mobile.app.MobileApplicationClientFactory;
|
||||
import com.sap.sailing.gwt.home.mobile.places.minileaderboard.MiniLeaderboardView.Presenter;
|
||||
import com.sap.sailing.gwt.home.shared.dispatch.DispatchSystem;
|
||||
|
||||
public class MiniLeaderboardActivity extends AbstractActivity implements Presenter {
|
||||
private final MobileApplicationClientFactory clientFactory;
|
||||
private final RegattaLeaderboardPlace place;
|
||||
|
||||
public MiniLeaderboardActivity(RegattaLeaderboardPlace place, MobileApplicationClientFactory clientFactory) {
|
||||
this.clientFactory = clientFactory;
|
||||
this.place = place;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(final AcceptsOneWidget panel, EventBus eventBus) {
|
||||
final MiniLeaderboardView view = new MiniLeaderboardViewImpl(this);
|
||||
panel.setWidget(view.asWidget());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventContext getCtx() {
|
||||
return place.getCtx();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DispatchSystem getDispatch() {
|
||||
return clientFactory.getDispatch();
|
||||
}
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package com.sap.sailing.gwt.home.mobile.places.minileaderboard;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaLeaderboardPlace;
|
||||
import com.sap.sailing.gwt.home.mobile.app.MobileApplicationClientFactory;
|
||||
import com.sap.sse.gwt.client.mvp.AbstractActivityProxy;
|
||||
|
||||
public class MiniLeaderboardActivityProxy extends AbstractActivityProxy {
|
||||
|
||||
private final MobileApplicationClientFactory clientFactory;
|
||||
private final RegattaLeaderboardPlace currentPlace;
|
||||
|
||||
public MiniLeaderboardActivityProxy(RegattaLeaderboardPlace place, MobileApplicationClientFactory clientFactory) {
|
||||
this.currentPlace = place;
|
||||
this.clientFactory = clientFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startAsync() {
|
||||
GWT.runAsync(new AbstractRunAsyncCallback() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
super.onSuccess(new MiniLeaderboardActivity(currentPlace, clientFactory));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.sap.sailing.gwt.home.mobile.places.minileaderboard;
|
||||
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventContext;
|
||||
import com.sap.sailing.gwt.home.shared.dispatch.DispatchAsync;
|
||||
|
||||
public interface MiniLeaderboardView {
|
||||
|
||||
public interface Presenter {
|
||||
|
||||
DispatchAsync getDispatch();
|
||||
|
||||
EventContext getCtx();
|
||||
}
|
||||
|
||||
Widget asWidget();
|
||||
|
||||
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package com.sap.sailing.gwt.home.mobile.places.minileaderboard;
|
||||
|
||||
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.minileaderboard.MinileaderboardBox;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.event.GetMobileLeaderbordAction;
|
||||
|
||||
public class MiniLeaderboardViewImpl extends Composite implements MiniLeaderboardView {
|
||||
private static MyBinder uiBinder = GWT.create(MyBinder.class);
|
||||
|
||||
interface MyBinder extends UiBinder<Widget, MiniLeaderboardViewImpl> {
|
||||
}
|
||||
|
||||
private Presenter currentPresenter;
|
||||
|
||||
@UiField
|
||||
protected MinileaderboardBox minileaderboardUi;
|
||||
|
||||
public MiniLeaderboardViewImpl(Presenter presenter) {
|
||||
this.currentPresenter = presenter;
|
||||
|
||||
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 GetMobileLeaderbordAction(uuid, ""));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
<!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>
|
||||
.fullWidthButton {
|
||||
width: 100%;
|
||||
margin-bottom: 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
.holder {
|
||||
padding: 1rem;
|
||||
}
|
||||
.notAvailableMessage {
|
||||
font-size: 1.5em;
|
||||
margin: 1em 0em;
|
||||
line-height: 1.4em;
|
||||
}
|
||||
</ui:style>
|
||||
|
||||
<g:HTMLPanel>
|
||||
<mp:minileaderboard.MinileaderboardBox ui:field="minileaderboardUi"/>
|
||||
|
||||
|
||||
<div class="{style.holder}">
|
||||
<a class="{res.mainCss.button} {res.mainCss.buttonprimary} {style.fullWidthButton}" ui:field="gotoDesktopUi"
|
||||
><ui:text from="{i18n.gotoDesktop}" /></a>
|
||||
</div>
|
||||
|
||||
</g:HTMLPanel>
|
||||
|
||||
</ui:UiBinder>
|
||||
Reference in new issue
Block a user