mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-19 20:25:31 +00:00
Merge remote-tracking branch 'origin/bug3749'
Conflicts: java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/leaderboard/OldLeaderboard.java java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/fakeseries/leaderboardstab/EventSeriesLeaderboardsTabView.java
This commit is contained in:
+43
-1
@@ -10,6 +10,8 @@ import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.dom.client.Style.Visibility;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.event.logical.shared.AttachEvent;
|
||||
import com.google.gwt.event.logical.shared.AttachEvent.Handler;
|
||||
import com.google.gwt.event.logical.shared.CloseEvent;
|
||||
import com.google.gwt.event.logical.shared.CloseHandler;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
@@ -21,10 +23,13 @@ import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||
import com.google.gwt.user.client.ui.PopupPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
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.home.desktop.partials.old.EventRegattaLeaderboardResources;
|
||||
import com.sap.sailing.gwt.home.desktop.partials.old.LeaderboardDelegate;
|
||||
import com.sap.sailing.gwt.ui.client.DebugIdHelper;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
@@ -64,7 +69,7 @@ public class OldLeaderboard extends Composite implements BusyStateChangeListener
|
||||
this(null);
|
||||
}
|
||||
|
||||
public OldLeaderboard(OldLeaderboardDelegate delegate) {
|
||||
public OldLeaderboard(final OldLeaderboardDelegate delegate) {
|
||||
this.leaderboardPanel = null;
|
||||
EventRegattaLeaderboardResources.INSTANCE.css().ensureInjected();
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
@@ -73,6 +78,28 @@ public class OldLeaderboard extends Composite implements BusyStateChangeListener
|
||||
fullscreenAnchor.setTitle(StringMessages.INSTANCE.openFullscreenView());
|
||||
this.delegate = delegate;
|
||||
this.setupFullscreenDelegate();
|
||||
|
||||
// adding handler on page loading
|
||||
this.addAttachHandler(new Handler() {
|
||||
@Override
|
||||
public void onAttachOrDetach(AttachEvent event) {
|
||||
if (event.isAttached() && leaderboardPanel != null) {
|
||||
// waiting while leaderboard is loaded
|
||||
leaderboardPanel.addLeaderboardUpdateListener(new LeaderboardUpdateListener() {
|
||||
@Override
|
||||
public void updatedLeaderboard(LeaderboardDTO leaderboard) {
|
||||
// If race or regatta is live then check button by default
|
||||
if (leaderboard.hasLiveRace(autoRefreshTimer.getLiveTimePointInMillis())) {
|
||||
turnOnAutoPlay();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void currentRaceSelected(RaceIdentifier raceIdentifier, RaceColumnDTO raceColumn) { }
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setupFullscreenDelegate() {
|
||||
@@ -105,6 +132,21 @@ public class OldLeaderboard extends Composite implements BusyStateChangeListener
|
||||
}, ClickEvent.getType());
|
||||
}
|
||||
|
||||
/**
|
||||
* This method turns on auto playing mode on leaderboard
|
||||
*/
|
||||
private void turnOnAutoPlay() {
|
||||
if (autoRefreshTimer.getPlayState() != PlayStates.Playing) {
|
||||
autoRefreshTimer.setPlayMode(PlayModes.Live);
|
||||
}
|
||||
|
||||
// Styles applied each time because of tabs switching. In this case play mode stays as Playing but styling is lost
|
||||
autoRefreshAnchor.addStyleName(local_res.css().regattaleaderboard_meta_reload_live());
|
||||
if (delegate != null) {
|
||||
delegate.getAutoRefreshControl().addStyleName(local_res.css().regattaleaderboard_meta_reload_live());
|
||||
}
|
||||
}
|
||||
|
||||
@UiHandler("autoRefreshAnchor")
|
||||
void toogleAutoRefreshClicked(ClickEvent event) {
|
||||
autoRefreshAnchor.removeStyleName(local_res.css().regattaleaderboard_meta_reload_live());
|
||||
|
||||
+19
-2
@@ -107,6 +107,21 @@ public class OldMultiLeaderboard extends Composite implements SelectedLeaderboar
|
||||
}, ClickEvent.getType());
|
||||
}
|
||||
|
||||
/**
|
||||
* This method turns on auto playing mode on leaderboard
|
||||
*/
|
||||
public void turnOnAutoPlay() {
|
||||
if (autoRefreshTimer.getPlayState() != PlayStates.Playing) {
|
||||
autoRefreshTimer.setPlayMode(PlayModes.Live);
|
||||
}
|
||||
|
||||
// Styles applied each time because of tabs switching. In this case play mode stays as Playing but styling is lost
|
||||
autoRefreshAnchor.addStyleName(local_res.css().regattaleaderboard_meta_reload_live());
|
||||
if (delegate != null) {
|
||||
delegate.getAutoRefreshControl().addStyleName(local_res.css().regattaleaderboard_meta_reload_live());
|
||||
}
|
||||
}
|
||||
|
||||
@UiHandler("autoRefreshAnchor")
|
||||
void toogleAutoRefreshClicked(ClickEvent event) {
|
||||
if (autoRefreshTimer != null) {
|
||||
@@ -114,7 +129,8 @@ public class OldMultiLeaderboard extends Composite implements SelectedLeaderboar
|
||||
autoRefreshAnchor.removeStyleName(local_res.css().regattaleaderboard_meta_reload_playing());
|
||||
if (delegate != null) {
|
||||
delegate.getAutoRefreshControl().removeStyleName(local_res.css().regattaleaderboard_meta_reload_live());
|
||||
delegate.getAutoRefreshControl().removeStyleName(local_res.css().regattaleaderboard_meta_reload_playing());
|
||||
delegate.getAutoRefreshControl()
|
||||
.removeStyleName(local_res.css().regattaleaderboard_meta_reload_playing());
|
||||
}
|
||||
if (autoRefreshTimer.getPlayState() == PlayStates.Playing) {
|
||||
autoRefreshTimer.pause();
|
||||
@@ -131,7 +147,8 @@ public class OldMultiLeaderboard extends Composite implements SelectedLeaderboar
|
||||
autoRefreshAnchor.addStyleName(local_res.css().regattaleaderboard_meta_reload_live());
|
||||
if (delegate != null) {
|
||||
// delegate.getAutoRefreshControl().getElement().getStyle().setBackgroundColor("red");
|
||||
delegate.getAutoRefreshControl().addStyleName(local_res.css().regattaleaderboard_meta_reload_live());
|
||||
delegate.getAutoRefreshControl()
|
||||
.addStyleName(local_res.css().regattaleaderboard_meta_reload_live());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -83,7 +83,8 @@ public class EventSeriesLeaderboardsTabView extends Composite implements SeriesT
|
||||
if (currentPresenter.getSeriesDTO().getState() != EventSeriesState.RUNNING) {
|
||||
// TODO: this.leaderboard.hideRefresh();
|
||||
} else {
|
||||
// TODO: start autorefresh?
|
||||
// Turn on auto refresh button at parent leaderboard
|
||||
leaderboard.turnOnAutoPlay();
|
||||
}
|
||||
regattaAnalyticsManager.hideCompetitorChart();
|
||||
leaderboardPanel.setVisible(true);
|
||||
|
||||
+4
@@ -281,4 +281,8 @@ public class MultiLeaderboardPanel extends AbstractLazyComponent<LeaderboardSett
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void removeLeaderboardUpdateListener(LeaderboardUpdateListener leaderboardUpdateListener) {
|
||||
leaderboardUpdateListeners.remove(leaderboardUpdateListener);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user