mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-24 04:53:54 +00:00
Forced RaceviewerLaunchPad to be closed after selection a menu item
This commit is contained in:
1 parent
b16c0422eb
commit
32b3654bc4
3 files changed
+16
-3
No files matched your search
+14
-1
@@ -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()) {
|
||||
@@ -33,6 +37,15 @@ public abstract class RaceviewerLaunchPad extends Composite {
|
||||
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) {
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user