mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-01 08:40:52 +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.user.client.Window;
|
||||
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.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.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.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.RegattaAnalyticsDataManager;
|
||||
import com.sap.sailing.gwt.home.client.shared.placeholder.Placeholder;
|
||||
|
||||
/**
|
||||
* Created by pgtaboada on 25.11.14.
|
||||
*/
|
||||
public class RegattaCompetitorAnalyticsTabView extends Composite implements
|
||||
RegattaTabView<RegattaCompetitorAnalyticsPlace> {
|
||||
public class RegattaCompetitorAnalyticsTabView extends SharedLeaderboardRegattaTabView<RegattaCompetitorAnalyticsPlace> {
|
||||
|
||||
interface MyBinder extends UiBinder<HTMLPanel, RegattaCompetitorAnalyticsTabView> {
|
||||
}
|
||||
|
||||
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
|
||||
private Presenter currentPresenter;
|
||||
|
||||
public RegattaCompetitorAnalyticsTabView() {
|
||||
|
||||
super();
|
||||
}
|
||||
|
||||
@UiField
|
||||
@@ -44,17 +50,15 @@ public class RegattaCompetitorAnalyticsTabView extends Composite implements
|
||||
|
||||
@Override
|
||||
public void start(RegattaCompetitorAnalyticsPlace myPlace, AcceptsOneWidget contentArea) {
|
||||
|
||||
contentArea.setWidget(new Placeholder());
|
||||
|
||||
String regattaId = myPlace.getRegattaId();
|
||||
|
||||
if (regattaId != null && !regattaId.isEmpty()) {
|
||||
|
||||
String leaderboardName = regattaId;
|
||||
|
||||
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx()
|
||||
.getRegattaAnalyticsManager();
|
||||
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getRegattaAnalyticsManager();
|
||||
if(regattaAnalyticsManager.getLeaderboardPanel() == null) {
|
||||
createSharedLeaderboardPanel(leaderboardName, regattaAnalyticsManager);
|
||||
}
|
||||
|
||||
initWidget(ourUiBinder.createAndBindUi(this));
|
||||
|
||||
@@ -79,15 +83,8 @@ public class RegattaCompetitorAnalyticsTabView extends Composite implements
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
|
||||
}
|
||||
|
||||
interface MyBinder extends UiBinder<HTMLPanel, RegattaCompetitorAnalyticsTabView> {
|
||||
}
|
||||
|
||||
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
|
||||
private Presenter currentPresenter;
|
||||
|
||||
@Override
|
||||
public RegattaCompetitorAnalyticsPlace placeToFire() {
|
||||
return new RegattaCompetitorAnalyticsPlace(currentPresenter.getCtx());
|
||||
@@ -104,4 +101,12 @@ public class RegattaCompetitorAnalyticsTabView extends Composite implements
|
||||
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.uibinder.client.UiBinder;
|
||||
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.Composite;
|
||||
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
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.RaceColumnDTO;
|
||||
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.Presenter;
|
||||
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.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.sailing.gwt.ui.shared.general.EventState;
|
||||
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
|
||||
|
||||
/**
|
||||
* Created by pgtaboada on 25.11.14.
|
||||
*/
|
||||
public class RegattaLeaderboardTabView extends Composite implements RegattaTabView<RegattaLeaderboardPlace>,
|
||||
LeaderboardUpdateListener {
|
||||
public class RegattaLeaderboardTabView extends SharedLeaderboardRegattaTabView<RegattaLeaderboardPlace> {
|
||||
interface MyBinder extends UiBinder<HTMLPanel, RegattaLeaderboardTabView> {
|
||||
}
|
||||
|
||||
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
|
||||
|
||||
private Presenter currentPresenter;
|
||||
|
||||
@UiField
|
||||
protected OldLeaderboard leaderboard;
|
||||
|
||||
|
||||
public RegattaLeaderboardTabView() {
|
||||
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -65,23 +58,12 @@ public class RegattaLeaderboardTabView extends Composite implements RegattaTabVi
|
||||
if (regattaId != null && !regattaId.isEmpty()) {
|
||||
String leaderboardName = regattaId;
|
||||
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getRegattaAnalyticsManager();
|
||||
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 leaderboardPanel = regattaAnalyticsManager.getLeaderboardPanel();
|
||||
if(leaderboardPanel == null) {
|
||||
leaderboardPanel = createSharedLeaderboardPanel(leaderboardName, regattaAnalyticsManager);
|
||||
}
|
||||
initWidget(ourUiBinder.createAndBindUi(this));
|
||||
leaderboard.setLeaderboard(leaderboardPanel, currentPresenter.getAutoRefreshTimer());
|
||||
leaderboardPanel.addLeaderboardUpdateListener(this);
|
||||
if (currentPresenter.getCtx().getEventDTO().getState() == EventState.RUNNING) {
|
||||
// TODO: start autorefresh?
|
||||
}
|
||||
@@ -105,22 +87,14 @@ public class RegattaLeaderboardTabView extends Composite implements RegattaTabVi
|
||||
|
||||
@Override
|
||||
public void currentRaceSelected(RaceIdentifier raceIdentifier, RaceColumnDTO raceColumn) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
|
||||
}
|
||||
|
||||
interface MyBinder extends UiBinder<HTMLPanel, RegattaLeaderboardTabView> {
|
||||
}
|
||||
|
||||
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
|
||||
|
||||
@Override
|
||||
public RegattaLeaderboardPlace placeToFire() {
|
||||
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