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:
Steffen Schaefer
2016-11-14 09:49:06 +01:00
4 changed files with 68 additions and 4 deletions
@@ -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());
@@ -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());
}
}
}
@@ -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);
@@ -281,4 +281,8 @@ public class MultiLeaderboardPanel extends AbstractLazyComponent<LeaderboardSett
}
}
}
public void removeLeaderboardUpdateListener(LeaderboardUpdateListener leaderboardUpdateListener) {
leaderboardUpdateListeners.remove(leaderboardUpdateListener);
}
}