mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-05 03:43:52 +00:00
Added quick finder to mini leaderboard
This commit is contained in:
1 parent
6a56e754ee
commit
b05a40cc35
7 files changed
+43
-9
No files matched your search
+2
-2
@@ -17,7 +17,7 @@ import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.user.client.Event;
|
||||
import com.google.gwt.user.client.EventListener;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.home.mobile.places.event.EventView.Presenter;
|
||||
import com.sap.sailing.gwt.home.mobile.places.RegattaLeaderboardNavigationProvider;
|
||||
|
||||
public class Quickfinder extends Widget implements HasSelectionHandlers<String> {
|
||||
private static QuickfinderUiBinder uiBinder = GWT.create(QuickfinderUiBinder.class);
|
||||
@@ -30,7 +30,7 @@ public class Quickfinder extends Widget implements HasSelectionHandlers<String>
|
||||
@UiField
|
||||
protected SelectElement selectUi;
|
||||
|
||||
public Quickfinder(final Presenter presenter) {
|
||||
public Quickfinder(final RegattaLeaderboardNavigationProvider presenter) {
|
||||
setElement(uiBinder.createAndBindUi(this));
|
||||
Event.sinkEvents(selectUi, Event.ONCHANGE);
|
||||
Event.setEventListener(selectUi, new EventListener() {
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package com.sap.sailing.gwt.home.mobile.places;
|
||||
|
||||
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
|
||||
|
||||
public interface RegattaLeaderboardNavigationProvider {
|
||||
PlaceNavigation<?> getRegattaLeaderboardNavigation(String leaderboardName);
|
||||
}
|
||||
+2
-2
@@ -6,6 +6,7 @@ import java.util.List;
|
||||
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.partials.updatesBox.NewsItemLinkProvider;
|
||||
import com.sap.sailing.gwt.home.mobile.places.RegattaLeaderboardNavigationProvider;
|
||||
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;
|
||||
@@ -21,12 +22,11 @@ public interface EventView {
|
||||
|
||||
void setMediaForImpressions(int nrOfImages, int nrOfVideos, List<SailingImageDTO> images);
|
||||
|
||||
public interface Presenter extends NewsItemLinkProvider {
|
||||
public interface Presenter extends NewsItemLinkProvider, RegattaLeaderboardNavigationProvider {
|
||||
EventContext getCtx();
|
||||
|
||||
DispatchSystem getDispatch();
|
||||
|
||||
PlaceNavigation<?> getRegattaLeaderboardNavigation(String leaderboardName);
|
||||
|
||||
String getRaceViewerURL(String regattaName, String trackedRaceName);
|
||||
|
||||
|
||||
+8
@@ -11,6 +11,7 @@ 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.app.PlaceNavigation;
|
||||
import com.sap.sailing.gwt.home.shared.dispatch.DispatchSystem;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.event.GetEventViewAction;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO;
|
||||
@@ -52,6 +53,7 @@ public class MiniLeaderboardActivity extends AbstractActivity implements Present
|
||||
|
||||
private void initUi(AcceptsOneWidget panel, EventBus eventBus) {
|
||||
final MiniLeaderboardView view = new MiniLeaderboardViewImpl(this);
|
||||
view.setQuickFinderValues(place.getCtx().getEventDTO().getRegattas());
|
||||
panel.setWidget(view.asWidget());
|
||||
}
|
||||
|
||||
@@ -60,6 +62,12 @@ public class MiniLeaderboardActivity extends AbstractActivity implements Present
|
||||
return place.getCtx();
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlaceNavigation<?> getRegattaLeaderboardNavigation(String leaderboardName) {
|
||||
EventContext ctx = new EventContext(getCtx()).withRegattaId(leaderboardName).withRegattaAnalyticsManager(null);
|
||||
return clientFactory.getNavigator().getEventNavigation(new RegattaLeaderboardPlace(ctx), null, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DispatchSystem getDispatch() {
|
||||
return clientFactory.getDispatch();
|
||||
|
||||
+6
-1
@@ -1,12 +1,16 @@
|
||||
package com.sap.sailing.gwt.home.mobile.places.minileaderboard;
|
||||
|
||||
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.shared.dispatch.DispatchAsync;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.RegattaMetadataDTO;
|
||||
|
||||
public interface MiniLeaderboardView {
|
||||
|
||||
public interface Presenter {
|
||||
public interface Presenter extends RegattaLeaderboardNavigationProvider {
|
||||
|
||||
DispatchAsync getDispatch();
|
||||
|
||||
@@ -15,5 +19,6 @@ public interface MiniLeaderboardView {
|
||||
|
||||
Widget asWidget();
|
||||
|
||||
void setQuickFinderValues(Collection<RegattaMetadataDTO> regattas);
|
||||
|
||||
}
|
||||
+14
-2
@@ -1,5 +1,6 @@
|
||||
package com.sap.sailing.gwt.home.mobile.places.minileaderboard;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
@@ -16,12 +17,15 @@ 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.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.event.GetMiniLeaderbordAction;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.RegattaMetadataDTO;
|
||||
|
||||
public class MiniLeaderboardViewImpl extends Composite implements MiniLeaderboardView {
|
||||
private static final boolean showLeaderboard = true;
|
||||
|
||||
private static final StringMessages MSG = StringMessages.INSTANCE;
|
||||
|
||||
private static MyBinder uiBinder = GWT.create(MyBinder.class);
|
||||
|
||||
interface MyBinder extends UiBinder<Widget, MiniLeaderboardViewImpl> {
|
||||
@@ -34,6 +38,7 @@ public class MiniLeaderboardViewImpl extends Composite implements MiniLeaderboar
|
||||
@UiField DivElement buttonsUi;
|
||||
@UiField AnchorElement leaderboardLinkUi;
|
||||
@UiField AnchorElement dektopLinkUi;
|
||||
@UiField(provided = true) Quickfinder quickFinderUi;
|
||||
|
||||
public MiniLeaderboardViewImpl(Presenter presenter) {
|
||||
this.currentPresenter = presenter;
|
||||
@@ -41,7 +46,7 @@ public class MiniLeaderboardViewImpl extends Composite implements MiniLeaderboar
|
||||
RegattaMetadataDTO regatta = presenter.getCtx().getRegatta();
|
||||
// TODO check if regatta is valid!
|
||||
eventHeaderUi = new EventHeader(presenter.getCtx().getEventDTO(), regatta.getDisplayName());
|
||||
|
||||
quickFinderUi = new Quickfinder(currentPresenter);
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
|
||||
if(showLeaderboard) {
|
||||
@@ -66,6 +71,13 @@ public class MiniLeaderboardViewImpl extends Composite implements MiniLeaderboar
|
||||
}
|
||||
|
||||
}
|
||||
@Override
|
||||
public void setQuickFinderValues(Collection<RegattaMetadataDTO> regattaMetadatas) {
|
||||
quickFinderUi.addPlaceholderItem(MSG.resultsQuickfinder(), null);
|
||||
for (RegattaMetadataDTO regattaMetadata : regattaMetadatas) {
|
||||
quickFinderUi.addItemToGroup(regattaMetadata.getBoatCategory(), regattaMetadata.getDisplayName(), regattaMetadata.getId());
|
||||
}
|
||||
}
|
||||
|
||||
private String constructExternalLeaderboardURL(String leaderboardId, String leaderboardDisplayName) {
|
||||
return "Leaderboard.html?name="+ leaderboardId +"&displayName="+leaderboardDisplayName+"&embedded=true&hideToolbar=true&refreshIntervalMillis=3000&legDetail=AVERAGE_SPEED_OVER_GROUND_IN_KNOTS&legDetail=DISTANCE_TRAVELED&legDetail=RANK_GAIN&overallDetail=REGATTA_RANK&maneuverDetail=TACK&maneuverDetail=JIBE&maneuverDetail=PENALTY_CIRCLE&lastN=1&showAddedScores=false";
|
||||
|
||||
+4
-2
@@ -33,9 +33,11 @@
|
||||
<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:quickfinder.Quickfinder ui:field="quickFinderUi" />
|
||||
<mp:simpleinfoblock.SimpleInfoBlock ui:field="sailorInfoUi" /> -->
|
||||
<!--
|
||||
<mp:simpleinfoblock.SimpleInfoBlock ui:field="sailorInfoUi" />
|
||||
-->
|
||||
</div>
|
||||
<div ui:field="buttonsUi" class="{style.holder}">
|
||||
<a class="{res.mainCss.button} {res.mainCss.buttonprimary} {style.fullWidthButton}" ui:field="leaderboardLinkUi"><ui:text from="{i18n.openLeaderboard}" /></a>
|
||||
|
||||
Reference in new issue
Block a user