mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-02 17:19:37 +00:00
created a shared tabview which ensures for the competitor chart tab and the regatta leaderboard tab that in any case a leaderboardPanel is created
This commit is contained in:
1 parent
21a9fbd631
commit
bc2eb6505c
3 files changed
+76
-55
No files matched your search
+24
-19
@@ -8,25 +8,31 @@ import com.google.gwt.uibinder.client.UiBinder;
|
|||||||
import com.google.gwt.uibinder.client.UiField;
|
import com.google.gwt.uibinder.client.UiField;
|
||||||
import com.google.gwt.user.client.Window;
|
import com.google.gwt.user.client.Window;
|
||||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||||
import com.google.gwt.user.client.ui.Composite;
|
|
||||||
import com.google.gwt.user.client.ui.HTMLPanel;
|
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||||
import com.sap.sailing.domain.common.DetailType;
|
import com.sap.sailing.domain.common.DetailType;
|
||||||
|
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||||
|
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
||||||
|
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||||
import com.sap.sailing.gwt.common.client.controls.tabbar.TabView;
|
import com.sap.sailing.gwt.common.client.controls.tabbar.TabView;
|
||||||
import com.sap.sailing.gwt.home.client.place.event.oldcompetitorcharts.OldCompetitorCharts;
|
import com.sap.sailing.gwt.home.client.place.event.oldcompetitorcharts.OldCompetitorCharts;
|
||||||
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView;
|
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView;
|
||||||
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaAnalyticsDataManager;
|
|
||||||
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaTabView;
|
|
||||||
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView.Presenter;
|
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView.Presenter;
|
||||||
|
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaAnalyticsDataManager;
|
||||||
import com.sap.sailing.gwt.home.client.shared.placeholder.Placeholder;
|
import com.sap.sailing.gwt.home.client.shared.placeholder.Placeholder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by pgtaboada on 25.11.14.
|
* Created by pgtaboada on 25.11.14.
|
||||||
*/
|
*/
|
||||||
public class RegattaCompetitorAnalyticsTabView extends Composite implements
|
public class RegattaCompetitorAnalyticsTabView extends SharedLeaderboardRegattaTabView<RegattaCompetitorAnalyticsPlace> {
|
||||||
RegattaTabView<RegattaCompetitorAnalyticsPlace> {
|
|
||||||
|
interface MyBinder extends UiBinder<HTMLPanel, RegattaCompetitorAnalyticsTabView> {
|
||||||
|
}
|
||||||
|
|
||||||
|
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
|
||||||
|
private Presenter currentPresenter;
|
||||||
|
|
||||||
public RegattaCompetitorAnalyticsTabView() {
|
public RegattaCompetitorAnalyticsTabView() {
|
||||||
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
@UiField
|
@UiField
|
||||||
@@ -44,17 +50,15 @@ public class RegattaCompetitorAnalyticsTabView extends Composite implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start(RegattaCompetitorAnalyticsPlace myPlace, AcceptsOneWidget contentArea) {
|
public void start(RegattaCompetitorAnalyticsPlace myPlace, AcceptsOneWidget contentArea) {
|
||||||
|
|
||||||
contentArea.setWidget(new Placeholder());
|
contentArea.setWidget(new Placeholder());
|
||||||
|
|
||||||
String regattaId = myPlace.getRegattaId();
|
String regattaId = myPlace.getRegattaId();
|
||||||
|
|
||||||
if (regattaId != null && !regattaId.isEmpty()) {
|
if (regattaId != null && !regattaId.isEmpty()) {
|
||||||
|
|
||||||
String leaderboardName = regattaId;
|
String leaderboardName = regattaId;
|
||||||
|
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getRegattaAnalyticsManager();
|
||||||
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx()
|
if(regattaAnalyticsManager.getLeaderboardPanel() == null) {
|
||||||
.getRegattaAnalyticsManager();
|
createSharedLeaderboardPanel(leaderboardName, regattaAnalyticsManager);
|
||||||
|
}
|
||||||
|
|
||||||
initWidget(ourUiBinder.createAndBindUi(this));
|
initWidget(ourUiBinder.createAndBindUi(this));
|
||||||
|
|
||||||
@@ -79,15 +83,8 @@ public class RegattaCompetitorAnalyticsTabView extends Composite implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void stop() {
|
public void stop() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interface MyBinder extends UiBinder<HTMLPanel, RegattaCompetitorAnalyticsTabView> {
|
|
||||||
}
|
|
||||||
|
|
||||||
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
|
|
||||||
private Presenter currentPresenter;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RegattaCompetitorAnalyticsPlace placeToFire() {
|
public RegattaCompetitorAnalyticsPlace placeToFire() {
|
||||||
return new RegattaCompetitorAnalyticsPlace(currentPresenter.getCtx());
|
return new RegattaCompetitorAnalyticsPlace(currentPresenter.getCtx());
|
||||||
@@ -104,4 +101,12 @@ public class RegattaCompetitorAnalyticsTabView extends Composite implements
|
|||||||
return width <= 720;
|
return width <= 720;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updatedLeaderboard(LeaderboardDTO leaderboard) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void currentRaceSelected(RaceIdentifier raceIdentifier, RaceColumnDTO raceColumn) {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+10
-36
@@ -3,13 +3,10 @@ package com.sap.sailing.gwt.home.client.place.event.regatta.tabs;
|
|||||||
import com.google.gwt.core.client.GWT;
|
import com.google.gwt.core.client.GWT;
|
||||||
import com.google.gwt.uibinder.client.UiBinder;
|
import com.google.gwt.uibinder.client.UiBinder;
|
||||||
import com.google.gwt.uibinder.client.UiField;
|
import com.google.gwt.uibinder.client.UiField;
|
||||||
import com.google.gwt.user.client.Window;
|
|
||||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||||
import com.google.gwt.user.client.ui.Composite;
|
|
||||||
import com.google.gwt.user.client.ui.HTMLPanel;
|
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||||
import com.google.gwt.user.client.ui.Label;
|
import com.google.gwt.user.client.ui.Label;
|
||||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
|
||||||
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
||||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||||
import com.sap.sailing.gwt.common.client.controls.tabbar.TabView;
|
import com.sap.sailing.gwt.common.client.controls.tabbar.TabView;
|
||||||
@@ -17,30 +14,26 @@ import com.sap.sailing.gwt.home.client.place.event.oldleaderboard.OldLeaderboard
|
|||||||
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView;
|
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView;
|
||||||
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView.Presenter;
|
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView.Presenter;
|
||||||
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaAnalyticsDataManager;
|
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaAnalyticsDataManager;
|
||||||
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaTabView;
|
|
||||||
import com.sap.sailing.gwt.home.client.place.event.utils.EventParamUtils;
|
|
||||||
import com.sap.sailing.gwt.home.client.shared.placeholder.Placeholder;
|
import com.sap.sailing.gwt.home.client.shared.placeholder.Placeholder;
|
||||||
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
|
|
||||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
|
||||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardUrlSettings;
|
|
||||||
import com.sap.sailing.gwt.ui.shared.general.EventState;
|
import com.sap.sailing.gwt.ui.shared.general.EventState;
|
||||||
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by pgtaboada on 25.11.14.
|
* Created by pgtaboada on 25.11.14.
|
||||||
*/
|
*/
|
||||||
public class RegattaLeaderboardTabView extends Composite implements RegattaTabView<RegattaLeaderboardPlace>,
|
public class RegattaLeaderboardTabView extends SharedLeaderboardRegattaTabView<RegattaLeaderboardPlace> {
|
||||||
LeaderboardUpdateListener {
|
interface MyBinder extends UiBinder<HTMLPanel, RegattaLeaderboardTabView> {
|
||||||
|
}
|
||||||
|
|
||||||
|
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
|
||||||
|
|
||||||
private Presenter currentPresenter;
|
private Presenter currentPresenter;
|
||||||
|
|
||||||
@UiField
|
@UiField
|
||||||
protected OldLeaderboard leaderboard;
|
protected OldLeaderboard leaderboard;
|
||||||
|
|
||||||
|
|
||||||
public RegattaLeaderboardTabView() {
|
public RegattaLeaderboardTabView() {
|
||||||
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -65,23 +58,12 @@ public class RegattaLeaderboardTabView extends Composite implements RegattaTabVi
|
|||||||
if (regattaId != null && !regattaId.isEmpty()) {
|
if (regattaId != null && !regattaId.isEmpty()) {
|
||||||
String leaderboardName = regattaId;
|
String leaderboardName = regattaId;
|
||||||
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getRegattaAnalyticsManager();
|
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getRegattaAnalyticsManager();
|
||||||
boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(
|
LeaderboardPanel leaderboardPanel = regattaAnalyticsManager.getLeaderboardPanel();
|
||||||
LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
|
if(leaderboardPanel == null) {
|
||||||
final LeaderboardSettings leaderboardSettings = EventParamUtils
|
leaderboardPanel = createSharedLeaderboardPanel(leaderboardName, regattaAnalyticsManager);
|
||||||
.createLeaderboardSettingsFromURLParameters(Window.Location
|
}
|
||||||
.getParameterMap());
|
|
||||||
final RegattaAndRaceIdentifier preselectedRace = EventParamUtils
|
|
||||||
.getPreselectedRace(Window.Location.getParameterMap());
|
|
||||||
LeaderboardPanel leaderboardPanel = regattaAnalyticsManager.createLeaderboardPanel( //
|
|
||||||
leaderboardSettings, //
|
|
||||||
preselectedRace, //
|
|
||||||
"leaderboardGroupName", // TODO: keep using magic string? ask frank!
|
|
||||||
leaderboardName, //
|
|
||||||
true,
|
|
||||||
autoExpandLastRaceColumn);
|
|
||||||
initWidget(ourUiBinder.createAndBindUi(this));
|
initWidget(ourUiBinder.createAndBindUi(this));
|
||||||
leaderboard.setLeaderboard(leaderboardPanel, currentPresenter.getAutoRefreshTimer());
|
leaderboard.setLeaderboard(leaderboardPanel, currentPresenter.getAutoRefreshTimer());
|
||||||
leaderboardPanel.addLeaderboardUpdateListener(this);
|
|
||||||
if (currentPresenter.getCtx().getEventDTO().getState() == EventState.RUNNING) {
|
if (currentPresenter.getCtx().getEventDTO().getState() == EventState.RUNNING) {
|
||||||
// TODO: start autorefresh?
|
// TODO: start autorefresh?
|
||||||
}
|
}
|
||||||
@@ -105,22 +87,14 @@ public class RegattaLeaderboardTabView extends Composite implements RegattaTabVi
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void currentRaceSelected(RaceIdentifier raceIdentifier, RaceColumnDTO raceColumn) {
|
public void currentRaceSelected(RaceIdentifier raceIdentifier, RaceColumnDTO raceColumn) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void stop() {
|
public void stop() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interface MyBinder extends UiBinder<HTMLPanel, RegattaLeaderboardTabView> {
|
|
||||||
}
|
|
||||||
|
|
||||||
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RegattaLeaderboardPlace placeToFire() {
|
public RegattaLeaderboardPlace placeToFire() {
|
||||||
return new RegattaLeaderboardPlace(currentPresenter.getCtx());
|
return new RegattaLeaderboardPlace(currentPresenter.getCtx());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
package com.sap.sailing.gwt.home.client.place.event.regatta.tabs;
|
||||||
|
|
||||||
|
import com.google.gwt.user.client.Window;
|
||||||
|
import com.google.gwt.user.client.ui.Composite;
|
||||||
|
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||||
|
import com.sap.sailing.gwt.home.client.place.event.regatta.AbstractEventRegattaPlace;
|
||||||
|
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaAnalyticsDataManager;
|
||||||
|
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaTabView;
|
||||||
|
import com.sap.sailing.gwt.home.client.place.event.utils.EventParamUtils;
|
||||||
|
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
|
||||||
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||||
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||||
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardUrlSettings;
|
||||||
|
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A regatta tab view which some shared functions between leaderboard tab and competitor
|
||||||
|
*/
|
||||||
|
public abstract class SharedLeaderboardRegattaTabView<T extends AbstractEventRegattaPlace> extends Composite implements RegattaTabView<T>,
|
||||||
|
LeaderboardUpdateListener {
|
||||||
|
|
||||||
|
public SharedLeaderboardRegattaTabView() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public LeaderboardPanel createSharedLeaderboardPanel(String leaderboardName, RegattaAnalyticsDataManager regattaAnalyticsManager) {
|
||||||
|
boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(
|
||||||
|
LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
|
||||||
|
final LeaderboardSettings leaderboardSettings = EventParamUtils
|
||||||
|
.createLeaderboardSettingsFromURLParameters(Window.Location.getParameterMap());
|
||||||
|
final RegattaAndRaceIdentifier preselectedRace = EventParamUtils.getPreselectedRace(Window.Location.getParameterMap());
|
||||||
|
LeaderboardPanel leaderboardPanel = regattaAnalyticsManager.createLeaderboardPanel( //
|
||||||
|
leaderboardSettings, //
|
||||||
|
preselectedRace, //
|
||||||
|
"leaderboardGroupName", // TODO: keep using magic string? ask frank!
|
||||||
|
leaderboardName, //
|
||||||
|
true,
|
||||||
|
autoExpandLastRaceColumn);
|
||||||
|
leaderboardPanel.addLeaderboardUpdateListener(this);
|
||||||
|
return leaderboardPanel;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user