mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-09 13:50:57 +00:00
factored all time-based settings into TimePanel
This commit is contained in:
1 parent
702cfb87f6
commit
6bb3cf7c8e
27 files changed
+55428
-32
No files matched your search
@@ -62,7 +62,7 @@ public class AdminConsole implements EntryPoint, ErrorReporter, EventRefresher {
|
||||
raceMapPanel.setSize("90%", "90%");
|
||||
tabPanel.add(raceMapPanel, stringConstants.map(), false);
|
||||
tabPanel.selectTab(0);
|
||||
|
||||
fillEvents();
|
||||
}
|
||||
|
||||
private DialogBox createErrorDialog() {
|
||||
|
||||
-1
@@ -256,7 +256,6 @@ public class EventManagementPanel extends FormPanel implements EventDisplayer {
|
||||
grid.getCellFormatter().setVerticalAlignment(8, 1, HasVerticalAlignment.ALIGN_TOP);
|
||||
grid.getCellFormatter().setVerticalAlignment(8, 0, HasVerticalAlignment.ALIGN_TOP);
|
||||
|
||||
eventRefresher.fillEvents();
|
||||
updatePortStoredData();
|
||||
updateLiveURI();
|
||||
updateStoredURI();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.event.dom.client.ChangeEvent;
|
||||
@@ -22,9 +23,8 @@ import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDAO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDAO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDAO;
|
||||
import com.sap.ui.commons.client.SliderWidget;
|
||||
|
||||
public class RaceMapPanel extends FormPanel implements EventDisplayer {
|
||||
public class RaceMapPanel extends FormPanel implements EventDisplayer, TimeListener {
|
||||
private final StringConstants stringConstants;
|
||||
private final SailingServiceAsync sailingService;
|
||||
private final ErrorReporter errorReporter;
|
||||
@@ -32,7 +32,8 @@ public class RaceMapPanel extends FormPanel implements EventDisplayer {
|
||||
private MapWidget map;
|
||||
private final List<RaceDAO> raceList;
|
||||
private final ListBox raceListBox;
|
||||
|
||||
private final TimePanel timePanel;
|
||||
|
||||
private final String mapsAPIKey = "ABQIAAAAmvjPh3ZpHbnwuX3a66lDqRTB4YHzt9A9TZNGGB87gEPRa24TnRQjCq1hRMRvlUmR4K97fo_4LwER6A";
|
||||
|
||||
public RaceMapPanel(SailingServiceAsync sailingService, ErrorReporter errorReporter, StringConstants stringConstants) {
|
||||
@@ -51,13 +52,8 @@ public class RaceMapPanel extends FormPanel implements EventDisplayer {
|
||||
vp.add(new Label(stringConstants.races()));
|
||||
vp.add(raceListBox);
|
||||
grid.setWidget(0, 0, vp);
|
||||
SliderWidget slider = new SliderWidget();
|
||||
slider.setMin(0);
|
||||
slider.setMax(10000000);
|
||||
slider.setStepLabels(true);
|
||||
slider.setTitle(stringConstants.time());
|
||||
slider.setTotalUnits(10);
|
||||
grid.setWidget(0, 1, slider);
|
||||
timePanel = new TimePanel(stringConstants);
|
||||
grid.setWidget(0, 1, timePanel);
|
||||
}
|
||||
|
||||
private void loadMapsAPI() {
|
||||
@@ -82,7 +78,7 @@ public class RaceMapPanel extends FormPanel implements EventDisplayer {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void fillEvents(List<EventDAO> result) {
|
||||
raceList.clear();
|
||||
@@ -107,12 +103,18 @@ public class RaceMapPanel extends FormPanel implements EventDisplayer {
|
||||
updateMapFromSelectedRace();
|
||||
}
|
||||
});
|
||||
updateMapFromSelectedRace();
|
||||
}
|
||||
|
||||
|
||||
private void updateMapFromSelectedRace() {
|
||||
RaceDAO selectedRace = getSelectedRace();
|
||||
|
||||
updateSlider(selectedRace);
|
||||
}
|
||||
|
||||
private void updateSlider(RaceDAO selectedRace) {
|
||||
timePanel.setMin(selectedRace.startOfTracking);
|
||||
timePanel.setMax(selectedRace.timePointOfNewestEvent);
|
||||
}
|
||||
|
||||
private RaceDAO getSelectedRace() {
|
||||
@@ -123,4 +125,9 @@ public class RaceMapPanel extends FormPanel implements EventDisplayer {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void timeChanged(Date date) {
|
||||
// TODO implement timeChanged such that race display is advanced to date
|
||||
}
|
||||
}
|
||||
@@ -19,4 +19,6 @@ public interface StringConstants extends Constants {
|
||||
String races();
|
||||
String tracked();
|
||||
String time();
|
||||
String acceleration();
|
||||
String accelerationHelp();
|
||||
}
|
||||
+3
-1
@@ -13,4 +13,6 @@ dampeningInterval=Dampening Interval
|
||||
map=Map
|
||||
races=Races
|
||||
tracked=tracked
|
||||
time=Time
|
||||
time=Time
|
||||
acceleration=Acceleration
|
||||
accelerationHelp=Use "1" for regular play-back speed, "2" for double-speed playback and so on
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public interface TimeListener {
|
||||
void timeChanged(Date date);
|
||||
}
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.DoubleBox;
|
||||
import com.google.gwt.user.client.ui.FormPanel;
|
||||
import com.google.gwt.user.client.ui.HorizontalPanel;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.sap.ui.commons.client.SliderWidget;
|
||||
import com.sap.ui.core.client.event.Event;
|
||||
import com.sap.ui.core.client.event.EventListener;
|
||||
|
||||
public class TimePanel extends FormPanel {
|
||||
private final SliderWidget slider;
|
||||
private final Set<TimeListener> listeners;
|
||||
private final Button playPauseButton;
|
||||
private final DoubleBox accelerationBox;
|
||||
private final Label timeLabel;
|
||||
private Date time;
|
||||
private boolean playing;
|
||||
|
||||
public TimePanel(StringConstants stringConstants) {
|
||||
listeners = new HashSet<TimeListener>();
|
||||
VerticalPanel vp = new VerticalPanel();
|
||||
vp.setSize("100%", "100%");
|
||||
HorizontalPanel hp = new HorizontalPanel();
|
||||
hp.setSize("100%", "100%");
|
||||
vp.add(hp);
|
||||
playPauseButton = new Button(">");
|
||||
playPauseButton.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
togglePlay();
|
||||
}
|
||||
});
|
||||
hp.add(playPauseButton);
|
||||
playing = false;
|
||||
Button slowDownButton = new Button("-1");
|
||||
slowDownButton.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
accelerationBox.setValue(accelerationBox.getValue() == null ? 0 : accelerationBox.getValue() - 1);
|
||||
}
|
||||
});
|
||||
hp.add(slowDownButton);
|
||||
accelerationBox = new DoubleBox();
|
||||
accelerationBox.setValue(1.0);
|
||||
accelerationBox.setTitle(stringConstants.accelerationHelp());
|
||||
hp.add(new Label(stringConstants.acceleration()));
|
||||
hp.add(accelerationBox);
|
||||
Button speedUpButton = new Button("+1");
|
||||
speedUpButton.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
accelerationBox.setValue(accelerationBox.getValue() == null ? 0 : accelerationBox.getValue() + 1);
|
||||
}
|
||||
});
|
||||
hp.add(speedUpButton);
|
||||
hp.add(new Label(stringConstants.time()));
|
||||
timeLabel = new Label();
|
||||
hp.add(timeLabel);
|
||||
slider = new SliderWidget();
|
||||
slider.setStepLabels(true);
|
||||
slider.setTotalUnits(10);
|
||||
EventListener sliderListener = new EventListener() {
|
||||
@Override
|
||||
public void onEvent(Event event) {
|
||||
slider.setTitle(new Date((long) slider.getValue()).toString());
|
||||
setTime((long) slider.getValue());
|
||||
}
|
||||
};
|
||||
slider.attachChangeEvent(sliderListener);
|
||||
slider.attachLiveChangeEvent(sliderListener);
|
||||
vp.add(slider);
|
||||
setWidget(vp);
|
||||
}
|
||||
|
||||
public void addTimeListener(TimeListener listener) {
|
||||
listeners.add(listener);
|
||||
}
|
||||
|
||||
public void removeTimeListener(TimeListener listener) {
|
||||
listeners.remove(listener);
|
||||
}
|
||||
|
||||
private void setTime(long timePointAsMillis) {
|
||||
time = new Date(timePointAsMillis);
|
||||
timeLabel.setText(time.toString());
|
||||
for (TimeListener listener : listeners) {
|
||||
listener.timeChanged(time);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void setMin(Date min) {
|
||||
slider.setMin(min.getTime());
|
||||
if (time == null || time.before(min)) {
|
||||
slider.setValue((long) min.getTime());
|
||||
setTime((long) min.getTime());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void setMax(Date max) {
|
||||
slider.setMax(max.getTime());
|
||||
if (time == null || time.after(max)) {
|
||||
slider.setValue((long) max.getTime());
|
||||
setTime((long) max.getTime());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void togglePlay() {
|
||||
playing = !playing;
|
||||
playPauseButton.setText(playing ? "||" : ">");
|
||||
}
|
||||
|
||||
}
|
||||
+11
-3
@@ -100,7 +100,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
}
|
||||
List<RegattaDAO> result = new ArrayList<RegattaDAO>();
|
||||
for (Map.Entry<BoatClass, Set<RaceDefinition>> e : racesByBoatClass.entrySet()) {
|
||||
List<RaceDAO> raceDAOsInBoatClass = getRaceDAOs(e.getValue());
|
||||
List<RaceDAO> raceDAOsInBoatClass = getRaceDAOs(event, e.getValue());
|
||||
if (!raceDAOsInBoatClass.isEmpty()) {
|
||||
RegattaDAO regatta = new RegattaDAO(new BoatClassDAO(e.getKey().getName()), raceDAOsInBoatClass);
|
||||
result.add(regatta);
|
||||
@@ -109,10 +109,18 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<RaceDAO> getRaceDAOs(Set<RaceDefinition> races) {
|
||||
private List<RaceDAO> getRaceDAOs(Event event, Set<RaceDefinition> races) {
|
||||
List<RaceDAO> result = new ArrayList<RaceDAO>();
|
||||
for (RaceDefinition r : races) {
|
||||
result.add(new RaceDAO(r.getName(), getCompetitorDAOs(r.getCompetitors()), service.isRaceBeingTracked(r)));
|
||||
RaceDAO raceDAO = new RaceDAO(r.getName(), getCompetitorDAOs(r.getCompetitors()), service.isRaceBeingTracked(r));
|
||||
if (raceDAO.currentlyTracked) {
|
||||
TrackedRace trackedRace = service.getTrackedRace(event, r);
|
||||
raceDAO.startOfRace = trackedRace.getStart() == null ? null : trackedRace.getStart().asDate();
|
||||
raceDAO.startOfTracking = trackedRace.getStartOfTracking() == null ? null : trackedRace.getStartOfTracking().asDate();
|
||||
raceDAO.timePointOfLastEvent = trackedRace.getTimePointOfLastEvent() == null ? null : trackedRace.getTimePointOfLastEvent().asDate();
|
||||
raceDAO.timePointOfNewestEvent = trackedRace.getTimePointOfNewestEvent() == null ? null : trackedRace.getTimePointOfNewestEvent().asDate();
|
||||
}
|
||||
result.add(raceDAO);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.shared;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tractracadapter.RaceTracker;
|
||||
@@ -14,6 +16,11 @@ public class RaceDAO implements IsSerializable {
|
||||
* accordingly.
|
||||
*/
|
||||
public boolean currentlyTracked;
|
||||
|
||||
public Date startOfRace;
|
||||
public Date startOfTracking;
|
||||
public Date timePointOfLastEvent;
|
||||
public Date timePointOfNewestEvent;
|
||||
|
||||
public RaceDAO() {}
|
||||
|
||||
|
||||
+1
@@ -1,2 +1,3 @@
|
||||
# Module com.sap.sailing.gwt.ui.AdminConsole
|
||||
# RPC service class, partial path of RPC policy file
|
||||
com.sap.sailing.gwt.ui.client.SailingService, 4F5B285D334CF9AF08B53D8597EA2EE4.gwt.rpc
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
serviceClass: com.sap.sailing.gwt.ui.client.SailingService
|
||||
path: 4F5B285D334CF9AF08B53D8597EA2EE4.gwt.rpc
|
||||
+7079
File diff suppressed because it is too large.
Load diff
+6951
File diff suppressed because it is too large.
Load diff
+7003
File diff suppressed because it is too large.
Load diff
+7010
File diff suppressed because it is too large.
Load diff
+6925
File diff suppressed because it is too large.
Load diff
+6976
File diff suppressed because it is too large.
Load diff
+2240
File diff suppressed because it is too large.
Load diff
+2192
File diff suppressed because it is too large.
Load diff
+2202
File diff suppressed because it is too large.
Load diff
+94
@@ -0,0 +1,94 @@
|
||||
com.google.gwt.ajaxloader.client.Properties$TypeException, true, true, false, false, com.google.gwt.ajaxloader.client.Properties$TypeException/806639172, 806639172
|
||||
com.google.gwt.event.shared.UmbrellaException, true, true, false, false, com.google.gwt.event.shared.UmbrellaException/3104463596, 3104463596
|
||||
com.google.gwt.http.client.RequestException, true, true, false, false, com.google.gwt.http.client.RequestException/190587325, 190587325
|
||||
com.google.gwt.i18n.client.impl.DateRecord, true, true, true, true, com.google.gwt.i18n.client.impl.DateRecord/3220471373, 3220471373
|
||||
com.google.gwt.json.client.JSONException, true, true, false, false, com.google.gwt.json.client.JSONException/2941795468, 2941795468
|
||||
com.google.gwt.jsonp.client.TimeoutException, true, true, false, false, com.google.gwt.jsonp.client.TimeoutException/1112787596, 1112787596
|
||||
com.google.gwt.maps.jsio.client.JSONWrapperException, true, true, false, false, com.google.gwt.maps.jsio.client.JSONWrapperException/3422975972, 3422975972
|
||||
com.google.gwt.maps.jsio.client.MultipleWrapperException, true, true, false, false, com.google.gwt.maps.jsio.client.MultipleWrapperException/1503780744, 1503780744
|
||||
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException, true, true, true, true, com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533, 3936916533
|
||||
com.google.gwt.user.client.rpc.InvocationException, true, false, false, false, com.google.gwt.user.client.rpc.InvocationException/1510557512, 1510557512
|
||||
com.google.gwt.user.client.rpc.RpcTokenException, true, true, false, false, com.google.gwt.user.client.rpc.RpcTokenException/2345075298, 2345075298
|
||||
com.google.gwt.user.client.rpc.SerializableException, true, true, false, false, com.google.gwt.user.client.rpc.SerializableException/3047383460, 3047383460
|
||||
com.google.gwt.user.client.rpc.SerializationException, true, true, false, false, com.google.gwt.user.client.rpc.SerializationException/2836333220, 2836333220
|
||||
com.google.gwt.user.client.rpc.ServiceDefTarget$NoServiceEntryPointSpecifiedException, true, true, false, false, com.google.gwt.user.client.rpc.ServiceDefTarget$NoServiceEntryPointSpecifiedException/3408313447, 3408313447
|
||||
com.google.gwt.user.client.rpc.XsrfToken, false, false, true, true, com.google.gwt.user.client.rpc.XsrfToken/4254043109, 4254043109
|
||||
com.google.web.bindery.event.shared.UmbrellaException, true, true, false, false, com.google.web.bindery.event.shared.UmbrellaException/1025846929, 1025846929
|
||||
com.sap.sailing.gwt.ui.client.SailingService, false, false, false, false, _, 2610738066
|
||||
com.sap.sailing.gwt.ui.shared.BoatClassDAO, true, true, false, false, com.sap.sailing.gwt.ui.shared.BoatClassDAO/876059280, 876059280
|
||||
com.sap.sailing.gwt.ui.shared.CompetitorDAO, true, true, false, false, com.sap.sailing.gwt.ui.shared.CompetitorDAO/1117883818, 1117883818
|
||||
[Lcom.sap.sailing.gwt.ui.shared.CompetitorDAO;, true, true, false, false, [Lcom.sap.sailing.gwt.ui.shared.CompetitorDAO;/681863127, 681863127
|
||||
com.sap.sailing.gwt.ui.shared.EventDAO, true, true, false, false, com.sap.sailing.gwt.ui.shared.EventDAO/4067968685, 4067968685
|
||||
[Lcom.sap.sailing.gwt.ui.shared.EventDAO;, true, true, false, false, [Lcom.sap.sailing.gwt.ui.shared.EventDAO;/887606509, 887606509
|
||||
com.sap.sailing.gwt.ui.shared.PositionDAO, true, true, true, true, com.sap.sailing.gwt.ui.shared.PositionDAO/1710885173, 1710885173
|
||||
com.sap.sailing.gwt.ui.shared.RaceDAO, true, true, false, false, com.sap.sailing.gwt.ui.shared.RaceDAO/2800322377, 2800322377
|
||||
[Lcom.sap.sailing.gwt.ui.shared.RaceDAO;, true, true, false, false, [Lcom.sap.sailing.gwt.ui.shared.RaceDAO;/3022915435, 3022915435
|
||||
com.sap.sailing.gwt.ui.shared.RaceRecordDAO, true, true, true, true, com.sap.sailing.gwt.ui.shared.RaceRecordDAO/3506849265, 3506849265
|
||||
[Lcom.sap.sailing.gwt.ui.shared.RaceRecordDAO;, true, true, false, false, [Lcom.sap.sailing.gwt.ui.shared.RaceRecordDAO;/2905316035, 2905316035
|
||||
com.sap.sailing.gwt.ui.shared.RegattaDAO, true, true, false, false, com.sap.sailing.gwt.ui.shared.RegattaDAO/1020702142, 1020702142
|
||||
[Lcom.sap.sailing.gwt.ui.shared.RegattaDAO;, true, true, false, false, [Lcom.sap.sailing.gwt.ui.shared.RegattaDAO;/821437198, 821437198
|
||||
com.sap.sailing.gwt.ui.shared.TracTracConfigurationDAO, true, true, false, false, com.sap.sailing.gwt.ui.shared.TracTracConfigurationDAO/1734357729, 1734357729
|
||||
[Lcom.sap.sailing.gwt.ui.shared.TracTracConfigurationDAO;, true, true, false, false, [Lcom.sap.sailing.gwt.ui.shared.TracTracConfigurationDAO;/3836669265, 3836669265
|
||||
com.sap.sailing.gwt.ui.shared.WindDAO, true, true, true, true, com.sap.sailing.gwt.ui.shared.WindDAO/2495348243, 2495348243
|
||||
[Lcom.sap.sailing.gwt.ui.shared.WindDAO;, true, true, false, false, [Lcom.sap.sailing.gwt.ui.shared.WindDAO;/3396906051, 3396906051
|
||||
com.sap.sailing.gwt.ui.shared.WindInfoForRaceDAO, true, true, false, false, com.sap.sailing.gwt.ui.shared.WindInfoForRaceDAO/4066190718, 4066190718
|
||||
com.sap.sailing.gwt.ui.shared.WindTrackInfoDAO, true, true, false, false, com.sap.sailing.gwt.ui.shared.WindTrackInfoDAO/1217996872, 1217996872
|
||||
java.io.IOException, true, true, false, false, java.io.IOException/1159940531, 1159940531
|
||||
java.io.UnsupportedEncodingException, true, true, false, false, java.io.UnsupportedEncodingException/1526756933, 1526756933
|
||||
java.lang.ArithmeticException, true, true, false, false, java.lang.ArithmeticException/1539622151, 1539622151
|
||||
java.lang.ArrayIndexOutOfBoundsException, true, true, false, false, java.lang.ArrayIndexOutOfBoundsException/600550433, 600550433
|
||||
java.lang.ArrayStoreException, true, true, false, false, java.lang.ArrayStoreException/3540507190, 3540507190
|
||||
java.lang.AssertionError, true, true, false, false, java.lang.AssertionError/3490171458, 3490171458
|
||||
java.lang.Boolean, true, true, false, false, java.lang.Boolean/476441737, 476441737
|
||||
java.lang.ClassCastException, true, true, false, false, java.lang.ClassCastException/702295179, 702295179
|
||||
java.lang.Double, true, true, true, true, java.lang.Double/858496421, 858496421
|
||||
java.lang.Error, true, true, false, false, java.lang.Error/1331973429, 1331973429
|
||||
java.lang.Exception, true, true, true, false, java.lang.Exception/1920171873, 1920171873
|
||||
java.lang.IllegalArgumentException, true, true, false, false, java.lang.IllegalArgumentException/1755012560, 1755012560
|
||||
java.lang.IllegalStateException, true, true, false, false, java.lang.IllegalStateException/1972187323, 1972187323
|
||||
java.lang.IndexOutOfBoundsException, true, true, false, false, java.lang.IndexOutOfBoundsException/2489527753, 2489527753
|
||||
java.lang.Long, true, true, true, true, java.lang.Long/4227064769, 4227064769
|
||||
java.lang.NegativeArraySizeException, true, true, false, false, java.lang.NegativeArraySizeException/3846860241, 3846860241
|
||||
java.lang.NullPointerException, true, true, false, false, java.lang.NullPointerException/1463492344, 1463492344
|
||||
java.lang.Number, true, false, true, false, java.lang.Number/300033342, 300033342
|
||||
java.lang.NumberFormatException, true, true, false, false, java.lang.NumberFormatException/3305228476, 3305228476
|
||||
java.lang.RuntimeException, true, true, true, false, java.lang.RuntimeException/515124647, 515124647
|
||||
java.lang.String, true, true, true, true, java.lang.String/2004016611, 2004016611
|
||||
java.lang.StringIndexOutOfBoundsException, true, true, false, false, java.lang.StringIndexOutOfBoundsException/500777603, 500777603
|
||||
java.lang.Throwable, true, true, true, false, java.lang.Throwable/2953622131, 2953622131
|
||||
java.lang.UnsupportedOperationException, true, true, false, false, java.lang.UnsupportedOperationException/3744010015, 3744010015
|
||||
java.lang.annotation.AnnotationFormatError, true, true, false, false, java.lang.annotation.AnnotationFormatError/2257184627, 2257184627
|
||||
java.lang.annotation.AnnotationTypeMismatchException, true, true, false, false, java.lang.annotation.AnnotationTypeMismatchException/976205828, 976205828
|
||||
java.security.DigestException, true, true, false, false, java.security.DigestException/629316798, 629316798
|
||||
java.security.GeneralSecurityException, true, true, false, false, java.security.GeneralSecurityException/2669239907, 2669239907
|
||||
java.security.NoSuchAlgorithmException, true, true, false, false, java.security.NoSuchAlgorithmException/2892037213, 2892037213
|
||||
java.sql.Date, true, true, true, true, java.sql.Date/730999118, 730999118
|
||||
java.sql.Time, true, true, true, true, java.sql.Time/1816797103, 1816797103
|
||||
java.sql.Timestamp, true, true, true, true, java.sql.Timestamp/3040052672, 3040052672
|
||||
java.util.ArrayList, true, true, false, false, java.util.ArrayList/4159755760, 4159755760
|
||||
java.util.Arrays$ArrayList, true, true, false, false, java.util.Arrays$ArrayList/2507071751, 2507071751
|
||||
java.util.Collections$EmptyList, true, true, false, false, java.util.Collections$EmptyList/4157118744, 4157118744
|
||||
java.util.Collections$EmptyMap, true, true, false, false, java.util.Collections$EmptyMap/4174664486, 4174664486
|
||||
java.util.Collections$EmptySet, true, true, false, false, java.util.Collections$EmptySet/3523698179, 3523698179
|
||||
java.util.Collections$SingletonList, true, true, false, false, java.util.Collections$SingletonList/1586180994, 1586180994
|
||||
java.util.ConcurrentModificationException, true, true, false, false, java.util.ConcurrentModificationException/2717383897, 2717383897
|
||||
java.util.Date, true, true, true, true, java.util.Date/3385151746, 3385151746
|
||||
java.util.EmptyStackException, true, true, false, false, java.util.EmptyStackException/89438517, 89438517
|
||||
java.util.HashMap, true, true, false, false, java.util.HashMap/1797211028, 1797211028
|
||||
java.util.HashSet, true, true, false, false, java.util.HashSet/3273092938, 3273092938
|
||||
java.util.IdentityHashMap, true, true, false, false, java.util.IdentityHashMap/1839153020, 1839153020
|
||||
java.util.LinkedHashMap, true, true, false, false, java.util.LinkedHashMap/3008245022, 3008245022
|
||||
java.util.LinkedHashSet, true, true, false, false, java.util.LinkedHashSet/1826081506, 1826081506
|
||||
java.util.LinkedList, true, true, false, false, java.util.LinkedList/3953877921, 3953877921
|
||||
java.util.NoSuchElementException, true, true, false, false, java.util.NoSuchElementException/1559248883, 1559248883
|
||||
java.util.Stack, true, true, false, false, java.util.Stack/1346942793, 1346942793
|
||||
java.util.TooManyListenersException, true, true, false, false, java.util.TooManyListenersException/2023078032, 2023078032
|
||||
java.util.TreeMap, true, true, false, false, java.util.TreeMap/1493889780, 1493889780
|
||||
java.util.TreeSet, true, true, false, false, java.util.TreeSet/4043497002, 4043497002
|
||||
java.util.Vector, true, true, false, false, java.util.Vector/3057315478, 3057315478
|
||||
javax.validation.ConstraintDeclarationException, true, true, false, false, javax.validation.ConstraintDeclarationException/3610544007, 3610544007
|
||||
javax.validation.ConstraintDefinitionException, true, true, false, false, javax.validation.ConstraintDefinitionException/3732439488, 3732439488
|
||||
javax.validation.ConstraintViolationException, true, true, false, false, javax.validation.ConstraintViolationException/173345760, 173345760
|
||||
javax.validation.GroupDefinitionException, true, true, false, false, javax.validation.GroupDefinitionException/4024780846, 4024780846
|
||||
javax.validation.UnexpectedTypeException, true, true, false, false, javax.validation.UnexpectedTypeException/593026390, 593026390
|
||||
javax.validation.ValidationException, true, true, false, false, javax.validation.ValidationException/1570221831, 1570221831
|
||||
+2200
File diff suppressed because it is too large.
Load diff
+2167
File diff suppressed because it is too large.
Load diff
+2189
File diff suppressed because it is too large.
Load diff
+15
-14
@@ -1,16 +1,17 @@
|
||||
function com_sap_sailing_gwt_ui_AdminConsole(){var N='',ub='" for "gwt:onLoadErrorFn"',sb='" for "gwt:onPropertyErrorFn"',gb='"><\/script>',X='#',Pb='.cache.html',Z='/',Ob=':',mb='::',Xb='<script defer="defer">com_sap_sailing_gwt_ui_AdminConsole.onInjectionDone(\'com.sap.sailing.gwt.ui.AdminConsole\')<\/script>',fb='<script id="',pb='=',Y='?',rb='Bad handler "',Wb='DOMContentLoaded',Nb="GWT module 'com.sap.sailing.gwt.ui.AdminConsole' may need to be (re)compiled",hb='SCRIPT',eb='__gwt_marker_com.sap.sailing.gwt.ui.AdminConsole',ib='base',ab='baseUrl',R='begin',Q='bootstrap',_='clear.cache.gif',O='com.sap.sailing.gwt.ui.AdminConsole',cb='com.sap.sailing.gwt.ui.AdminConsole.nocache.js',lb='com.sap.sailing.gwt.ui.AdminConsole::',ob='content',W='end',Hb='gecko',Ib='gecko1_8',S='gwt.codesvr=',T='gwt.hosted=',U='gwt.hybrid',Qb='gwt/clean/clean.css',tb='gwt:onLoadErrorFn',qb='gwt:onPropertyErrorFn',nb='gwt:property',Vb='head',Lb='hosted.html?com_sap_sailing_gwt_ui_AdminConsole',Ub='href',Gb='ie6',Fb='ie8',Eb='ie9',vb='iframe',$='img',wb="javascript:''",Rb='link',Kb='loadExternalRefs',jb='meta',yb='moduleRequested',V='moduleStartup',Db='msie',kb='name',Ab='opera',xb='position:absolute;width:0;height:0;border:none',Sb='rel',Cb='safari',bb='script',Mb='selectingPermutation',P='startup',Tb='stylesheet',db='undefined',Jb='unknown',zb='user.agent',Bb='webkit';var l=window,m=document,n=l.__gwtStatsEvent?function(a){return l.__gwtStatsEvent(a)}:null,o=l.__gwtStatsSessionId?l.__gwtStatsSessionId:null,p,q,r,s=N,t={},u=[],v=[],w=[],x=0,y,z;n&&n({moduleName:O,sessionId:o,subSystem:P,evtGroup:Q,millis:(new Date).getTime(),type:R});if(!l.__gwt_stylesLoaded){l.__gwt_stylesLoaded={}}if(!l.__gwt_scriptsLoaded){l.__gwt_scriptsLoaded={}}function A(){var b=false;try{var c=l.location.search;return (c.indexOf(S)!=-1||(c.indexOf(T)!=-1||l.external&&l.external.gwtOnLoad))&&c.indexOf(U)==-1}catch(a){}A=function(){return b};return b}
|
||||
function B(){if(p&&q){var b=m.getElementById(O);var c=b.contentWindow;if(A()){c.__gwt_getProperty=function(a){return F(a)}}com_sap_sailing_gwt_ui_AdminConsole=null;c.gwtOnLoad(y,O,s,x);n&&n({moduleName:O,sessionId:o,subSystem:P,evtGroup:V,millis:(new Date).getTime(),type:W})}}
|
||||
function C(){function e(a){var b=a.lastIndexOf(X);if(b==-1){b=a.length}var c=a.indexOf(Y);if(c==-1){c=a.length}var d=a.lastIndexOf(Z,Math.min(c,b));return d>=0?a.substring(0,d+1):N}
|
||||
function f(a){if(a.match(/^\w+:\/\//)){}else{var b=m.createElement($);b.src=a+_;a=e(b.src)}return a}
|
||||
function g(){var a=E(ab);if(a!=null){return a}return N}
|
||||
function h(){var a=m.getElementsByTagName(bb);for(var b=0;b<a.length;++b){if(a[b].src.indexOf(cb)!=-1){return e(a[b].src)}}return N}
|
||||
function i(){var a;if(typeof isBodyLoaded==db||!isBodyLoaded()){var b=eb;var c;m.write(fb+b+gb);c=m.getElementById(b);a=c&&c.previousSibling;while(a&&a.tagName!=hb){a=a.previousSibling}if(c){c.parentNode.removeChild(c)}if(a&&a.src){return e(a.src)}}return N}
|
||||
function j(){var a=m.getElementsByTagName(ib);if(a.length>0){return a[a.length-1].href}return N}
|
||||
var k=g();if(k==N){k=h()}if(k==N){k=i()}if(k==N){k=j()}if(k==N){k=e(m.location.href)}k=f(k);s=k;return k}
|
||||
function D(){var b=document.getElementsByTagName(jb);for(var c=0,d=b.length;c<d;++c){var e=b[c],f=e.getAttribute(kb),g;if(f){f=f.replace(lb,N);if(f.indexOf(mb)>=0){continue}if(f==nb){g=e.getAttribute(ob);if(g){var h,i=g.indexOf(pb);if(i>=0){f=g.substring(0,i);h=g.substring(i+1)}else{f=g;h=N}t[f]=h}}else if(f==qb){g=e.getAttribute(ob);if(g){try{z=eval(g)}catch(a){alert(rb+g+sb)}}}else if(f==tb){g=e.getAttribute(ob);if(g){try{y=eval(g)}catch(a){alert(rb+g+ub)}}}}}}
|
||||
function com_sap_sailing_gwt_ui_AdminConsole(){var O='',vb='" for "gwt:onLoadErrorFn"',tb='" for "gwt:onPropertyErrorFn"',hb='"><\/script>',Y='#',Vb='.cache.html',$='/',Ob='332753DC2ECB81699CA4C18939B133BD',Pb='395BB43E90B6339F0F2B4DBBD73E40E8',Qb='3EF6CA5CC182F5D191C3856EC2756909',Rb='872232C854464B053667043E6BFCDAA2',Ub=':',nb='::',bc='<script defer="defer">com_sap_sailing_gwt_ui_AdminConsole.onInjectionDone(\'com.sap.sailing.gwt.ui.AdminConsole\')<\/script>',gb='<script id="',qb='=',Z='?',Sb='BF460066049DA38B910BEA58A073207E',sb='Bad handler "',Tb='DA1B2877428116D529F7E42F3AFE1246',ac='DOMContentLoaded',ib='SCRIPT',fb='__gwt_marker_com.sap.sailing.gwt.ui.AdminConsole',jb='base',bb='baseUrl',S='begin',R='bootstrap',ab='clear.cache.gif',P='com.sap.sailing.gwt.ui.AdminConsole',db='com.sap.sailing.gwt.ui.AdminConsole.nocache.js',mb='com.sap.sailing.gwt.ui.AdminConsole::',pb='content',X='end',Ib='gecko',Jb='gecko1_8',T='gwt.codesvr=',U='gwt.hosted=',V='gwt.hybrid',Wb='gwt/clean/clean.css',ub='gwt:onLoadErrorFn',rb='gwt:onPropertyErrorFn',ob='gwt:property',_b='head',Mb='hosted.html?com_sap_sailing_gwt_ui_AdminConsole',$b='href',Hb='ie6',Gb='ie8',Fb='ie9',wb='iframe',_='img',xb="javascript:''",Xb='link',Lb='loadExternalRefs',kb='meta',zb='moduleRequested',W='moduleStartup',Eb='msie',lb='name',Bb='opera',yb='position:absolute;width:0;height:0;border:none',Yb='rel',Db='safari',cb='script',Nb='selectingPermutation',Q='startup',Zb='stylesheet',eb='undefined',Kb='unknown',Ab='user.agent',Cb='webkit';var l=window,m=document,n=l.__gwtStatsEvent?function(a){return l.__gwtStatsEvent(a)}:null,o=l.__gwtStatsSessionId?l.__gwtStatsSessionId:null,p,q,r,s=O,t={},u=[],v=[],w=[],x=0,y,z;n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:R,millis:(new Date).getTime(),type:S});if(!l.__gwt_stylesLoaded){l.__gwt_stylesLoaded={}}if(!l.__gwt_scriptsLoaded){l.__gwt_scriptsLoaded={}}function A(){var b=false;try{var c=l.location.search;return (c.indexOf(T)!=-1||(c.indexOf(U)!=-1||l.external&&l.external.gwtOnLoad))&&c.indexOf(V)==-1}catch(a){}A=function(){return b};return b}
|
||||
function B(){if(p&&q){var b=m.getElementById(P);var c=b.contentWindow;if(A()){c.__gwt_getProperty=function(a){return G(a)}}com_sap_sailing_gwt_ui_AdminConsole=null;c.gwtOnLoad(y,P,s,x);n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:W,millis:(new Date).getTime(),type:X})}}
|
||||
function C(){function e(a){var b=a.lastIndexOf(Y);if(b==-1){b=a.length}var c=a.indexOf(Z);if(c==-1){c=a.length}var d=a.lastIndexOf($,Math.min(c,b));return d>=0?a.substring(0,d+1):O}
|
||||
function f(a){if(a.match(/^\w+:\/\//)){}else{var b=m.createElement(_);b.src=a+ab;a=e(b.src)}return a}
|
||||
function g(){var a=E(bb);if(a!=null){return a}return O}
|
||||
function h(){var a=m.getElementsByTagName(cb);for(var b=0;b<a.length;++b){if(a[b].src.indexOf(db)!=-1){return e(a[b].src)}}return O}
|
||||
function i(){var a;if(typeof isBodyLoaded==eb||!isBodyLoaded()){var b=fb;var c;m.write(gb+b+hb);c=m.getElementById(b);a=c&&c.previousSibling;while(a&&a.tagName!=ib){a=a.previousSibling}if(c){c.parentNode.removeChild(c)}if(a&&a.src){return e(a.src)}}return O}
|
||||
function j(){var a=m.getElementsByTagName(jb);if(a.length>0){return a[a.length-1].href}return O}
|
||||
var k=g();if(k==O){k=h()}if(k==O){k=i()}if(k==O){k=j()}if(k==O){k=e(m.location.href)}k=f(k);s=k;return k}
|
||||
function D(){var b=document.getElementsByTagName(kb);for(var c=0,d=b.length;c<d;++c){var e=b[c],f=e.getAttribute(lb),g;if(f){f=f.replace(mb,O);if(f.indexOf(nb)>=0){continue}if(f==ob){g=e.getAttribute(pb);if(g){var h,i=g.indexOf(qb);if(i>=0){f=g.substring(0,i);h=g.substring(i+1)}else{f=g;h=O}t[f]=h}}else if(f==rb){g=e.getAttribute(pb);if(g){try{z=eval(g)}catch(a){alert(sb+g+tb)}}}else if(f==ub){g=e.getAttribute(pb);if(g){try{y=eval(g)}catch(a){alert(sb+g+vb)}}}}}}
|
||||
function E(a){var b=t[a];return b==null?null:b}
|
||||
function F(a){var b=v[a](),c=u[a];if(b in c){return b}var d=[];for(var e in c){d[c[e]]=e}if(z){z(a,d,b)}throw null}
|
||||
var G;function H(){if(!G){G=true;var a=m.createElement(vb);a.src=wb;a.id=O;a.style.cssText=xb;a.tabIndex=-1;m.body.appendChild(a);n&&n({moduleName:O,sessionId:o,subSystem:P,evtGroup:V,millis:(new Date).getTime(),type:yb});a.contentWindow.location.replace(s+J)}}
|
||||
v[zb]=function(){var b=navigator.userAgent.toLowerCase();var c=function(a){return parseInt(a[1])*1000+parseInt(a[2])};if(function(){return b.indexOf(Ab)!=-1}())return Ab;if(function(){return b.indexOf(Bb)!=-1}())return Cb;if(function(){return b.indexOf(Db)!=-1&&m.documentMode>=9}())return Eb;if(function(){return b.indexOf(Db)!=-1&&m.documentMode>=8}())return Fb;if(function(){var a=/msie ([0-9]+)\.([0-9]+)/.exec(b);if(a&&a.length==3)return c(a)>=6000}())return Gb;if(function(){return b.indexOf(Hb)!=-1}())return Ib;return Jb};u[zb]={gecko1_8:0,ie6:1,ie8:2,ie9:3,opera:4,safari:5};com_sap_sailing_gwt_ui_AdminConsole.onScriptLoad=function(){if(G){q=true;B()}};com_sap_sailing_gwt_ui_AdminConsole.onInjectionDone=function(){p=true;n&&n({moduleName:O,sessionId:o,subSystem:P,evtGroup:Kb,millis:(new Date).getTime(),type:W});B()};D();C();var I;var J;if(A()){if(l.external&&(l.external.initModule&&l.external.initModule(O))){l.location.reload();return}J=Lb;I=N}n&&n({moduleName:O,sessionId:o,subSystem:P,evtGroup:Q,millis:(new Date).getTime(),type:Mb});if(!A()){try{alert(Nb);return;var K=I.indexOf(Ob);if(K!=-1){x=Number(I.substring(K+1));I=I.substring(0,K)}J=I+Pb}catch(a){return}}var L;function M(){if(!r){r=true;if(!__gwt_stylesLoaded[Qb]){var a=m.createElement(Rb);__gwt_stylesLoaded[Qb]=a;a.setAttribute(Sb,Tb);a.setAttribute(Ub,s+Qb);m.getElementsByTagName(Vb)[0].appendChild(a)}B();if(m.removeEventListener){m.removeEventListener(Wb,M,false)}if(L){clearInterval(L)}}}
|
||||
if(m.addEventListener){m.addEventListener(Wb,function(){H();M()},false)}var L=setInterval(function(){if(/loaded|complete/.test(m.readyState)){H();M()}},50);n&&n({moduleName:O,sessionId:o,subSystem:P,evtGroup:Q,millis:(new Date).getTime(),type:W});n&&n({moduleName:O,sessionId:o,subSystem:P,evtGroup:Kb,millis:(new Date).getTime(),type:R});m.write(Xb)}
|
||||
function F(a,b){var c=w;for(var d=0,e=a.length-1;d<e;++d){c=c[a[d]]||(c[a[d]]=[])}c[a[e]]=b}
|
||||
function G(a){var b=v[a](),c=u[a];if(b in c){return b}var d=[];for(var e in c){d[c[e]]=e}if(z){z(a,d,b)}throw null}
|
||||
var H;function I(){if(!H){H=true;var a=m.createElement(wb);a.src=xb;a.id=P;a.style.cssText=yb;a.tabIndex=-1;m.body.appendChild(a);n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:W,millis:(new Date).getTime(),type:zb});a.contentWindow.location.replace(s+K)}}
|
||||
v[Ab]=function(){var b=navigator.userAgent.toLowerCase();var c=function(a){return parseInt(a[1])*1000+parseInt(a[2])};if(function(){return b.indexOf(Bb)!=-1}())return Bb;if(function(){return b.indexOf(Cb)!=-1}())return Db;if(function(){return b.indexOf(Eb)!=-1&&m.documentMode>=9}())return Fb;if(function(){return b.indexOf(Eb)!=-1&&m.documentMode>=8}())return Gb;if(function(){var a=/msie ([0-9]+)\.([0-9]+)/.exec(b);if(a&&a.length==3)return c(a)>=6000}())return Hb;if(function(){return b.indexOf(Ib)!=-1}())return Jb;return Kb};u[Ab]={gecko1_8:0,ie6:1,ie8:2,ie9:3,opera:4,safari:5};com_sap_sailing_gwt_ui_AdminConsole.onScriptLoad=function(){if(H){q=true;B()}};com_sap_sailing_gwt_ui_AdminConsole.onInjectionDone=function(){p=true;n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:Lb,millis:(new Date).getTime(),type:X});B()};D();C();var J;var K;if(A()){if(l.external&&(l.external.initModule&&l.external.initModule(P))){l.location.reload();return}K=Mb;J=O}n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:R,millis:(new Date).getTime(),type:Nb});if(!A()){try{F([Hb],Ob);F([Jb],Pb);F([Gb],Qb);F([Db],Rb);F([Bb],Sb);F([Fb],Tb);J=w[G(Ab)];var L=J.indexOf(Ub);if(L!=-1){x=Number(J.substring(L+1));J=J.substring(0,L)}K=J+Vb}catch(a){return}}var M;function N(){if(!r){r=true;if(!__gwt_stylesLoaded[Wb]){var a=m.createElement(Xb);__gwt_stylesLoaded[Wb]=a;a.setAttribute(Yb,Zb);a.setAttribute($b,s+Wb);m.getElementsByTagName(_b)[0].appendChild(a)}B();if(m.removeEventListener){m.removeEventListener(ac,N,false)}if(M){clearInterval(M)}}}
|
||||
if(m.addEventListener){m.addEventListener(ac,function(){I();N()},false)}var M=setInterval(function(){if(/loaded|complete/.test(m.readyState)){I();N()}},50);n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:R,millis:(new Date).getTime(),type:X});n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:Lb,millis:(new Date).getTime(),type:S});m.write(bc)}
|
||||
com_sap_sailing_gwt_ui_AdminConsole();
|
||||
@@ -126,4 +126,6 @@ public interface RacingEventService {
|
||||
|
||||
boolean isRaceBeingTracked(RaceDefinition r);
|
||||
|
||||
TrackedRace getTrackedRace(Event event, RaceDefinition r);
|
||||
|
||||
}
|
||||
@@ -20,6 +20,7 @@ import java.util.logging.Logger;
|
||||
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.WindStore;
|
||||
import com.sap.sailing.domain.tracking.WindTracker;
|
||||
import com.sap.sailing.domain.tracking.WindTrackerFactory;
|
||||
@@ -211,5 +212,10 @@ public class RacingEventServiceImpl implements RacingEventService {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TrackedRace getTrackedRace(Event e, RaceDefinition r) {
|
||||
return getDomainFactory().getTrackedEvent(e).getTrackedRace(r);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user