Merge remote-tracking branch 'origin/predefined-analysis' into raceboardmodes

This commit is contained in:
Axel Uhl committed 2016-07-16 01:04:48 +02:00
commit d206558bf1
4 files changed
+32 -5

No files matched your search

@@ -155,4 +155,16 @@ public class SimpleRaceMetadataDTO implements DTO, Comparable<SimpleRaceMetadata
public boolean isFinished() {
return getViewState() == RaceViewState.FINISHED;
}
/**
* Convenience method to check if this {@link SimpleRaceMetadataDTO race} is currently running.
*
* @return <code>true</code> if the {@link #getViewState() view state} is {@link RaceViewState#RUNNING},
* <code>false</code> otherwise
*/
public boolean isRunning() {
return getViewState() == RaceViewState.FINISHED;
}
}
@@ -4,7 +4,9 @@ import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.communication.race.SimpleRaceMetadataDTO;
import com.sap.sailing.gwt.ui.client.StringMessages;
@@ -18,8 +20,10 @@ public abstract class RaceviewerLaunchPad extends Composite {
@UiField RaceviewerLaunchPadResources local_res;
@UiField DivElement itemContainerUi;
private final PopupPanel parent;
public RaceviewerLaunchPad(SimpleRaceMetadataDTO data) {
public RaceviewerLaunchPad(SimpleRaceMetadataDTO data, final PopupPanel parent) {
this.parent = parent;
initWidget(uiBinder.createAndBindUi(this));
local_res.css().ensureInjected();
if (!data.isFinished()) {
@@ -27,10 +31,21 @@ public abstract class RaceviewerLaunchPad extends Composite {
addItem(data, RaceviewerLaunchPadMenuItem.WATCH_LIVE);
} else {
addItem(data, RaceviewerLaunchPadMenuItem.REPLAY);
addItem(data, RaceviewerLaunchPadMenuItem.RACE_ANALYSIS);
}
if (data.isRunning() || data.isFinished()) {
addItem(data, RaceviewerLaunchPadMenuItem.START_ANALYSIS);
}
addItem(data, RaceviewerLaunchPadMenuItem.RACE_ANALYSIS);
addItem(data, RaceviewerLaunchPadMenuItem.START_ANALYSIS);
addItem(data, RaceviewerLaunchPadMenuItem.WINNING_LANES);
sinkEvents(Event.ONCLICK);
}
@Override
public void onBrowserEvent(final Event event) {
if (event.getTypeInt() == Event.ONCLICK) {
parent.hide();
}
super.onBrowserEvent(event);
}
private void addItem(SimpleRaceMetadataDTO data, RaceviewerLaunchPadMenuItem item) {
@@ -54,7 +54,7 @@ public class RaceviewerLaunchPadCell<T extends RaceMetadataDTO<?>> extends Abstr
ValueUpdater<T> valueUpdater) {
if (data.hasValidTrackingData() && BrowserEvents.CLICK.equals(event.getType())
&& parent.getFirstChildElement().isOrHasChild(Element.as(event.getEventTarget()))) {
panel.setWidget(new RaceviewerLaunchPad(data) {
panel.setWidget(new RaceviewerLaunchPad(data, panel) {
@Override
protected String getRaceViewerURL(SimpleRaceMetadataDTO data, String mode) {
return presenter.getRaceViewerURL(data, mode);
@@ -48,7 +48,7 @@ public abstract class AbstractRegattaCompetitionFleetRace extends Widget impleme
public void onBrowserEvent(Event event) {
if (race.hasValidTrackingData() && event.getTypeInt() == Event.ONCLICK) {
this.getElement().scrollIntoView();
panel.setWidget(new RaceviewerLaunchPad(race) {
panel.setWidget(new RaceviewerLaunchPad(race, panel) {
@Override
protected String getRaceViewerURL(SimpleRaceMetadataDTO data, String mode) {
return presenter.getRaceViewerURL(data, mode);