mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-05 11:53:53 +00:00
added Timepanel to RaceBoard and connected TimePanel to RaceMap and LeaderBoard
This commit is contained in:
1 parent
ec3dc3f3c0
commit
721adfd236
5 files changed
+166
-57
No files matched your search
@@ -4,6 +4,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||||
<title>SAP Sailing Analytics Race Board</title>
|
<title>SAP Sailing Analytics Race Board</title>
|
||||||
|
|
||||||
|
<script id="sap-ui-bootstrap"
|
||||||
|
type="text/javascript"
|
||||||
|
src="/gwt/sap-ui-core.js"
|
||||||
|
data-sap-ui-theme="sap_platinum"
|
||||||
|
data-sap-ui-libs="sap.ui.commons"></script>
|
||||||
|
|
||||||
<script type="text/javascript" language="javascript" src="com.sap.sailing.gwt.ui.RaceBoard/com.sap.sailing.gwt.ui.RaceBoard.nocache.js"></script>
|
<script type="text/javascript" language="javascript" src="com.sap.sailing.gwt.ui.RaceBoard/com.sap.sailing.gwt.ui.RaceBoard.nocache.js"></script>
|
||||||
|
|
||||||
|
|||||||
+10
-1
@@ -15,6 +15,7 @@ import com.google.gwt.user.client.ui.DialogBox;
|
|||||||
import com.google.gwt.user.client.ui.FocusWidget;
|
import com.google.gwt.user.client.ui.FocusWidget;
|
||||||
import com.google.gwt.user.client.ui.HTML;
|
import com.google.gwt.user.client.ui.HTML;
|
||||||
import com.google.gwt.user.client.ui.Label;
|
import com.google.gwt.user.client.ui.Label;
|
||||||
|
import com.google.gwt.user.client.ui.RootPanel;
|
||||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||||
|
|
||||||
public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter {
|
public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter {
|
||||||
@@ -54,7 +55,15 @@ public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter {
|
|||||||
errorDialogBox.center();
|
errorDialogBox.center();
|
||||||
dialogCloseButton.setFocus(true);
|
dialogCloseButton.setFocus(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void createErrorPage(String message) {
|
||||||
|
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages);
|
||||||
|
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||||
|
|
||||||
|
RootPanel.get().add(logoAndTitlePanel);
|
||||||
|
RootPanel.get().add(new Label(message));
|
||||||
|
}
|
||||||
|
|
||||||
private DialogBox createErrorDialog() {
|
private DialogBox createErrorDialog() {
|
||||||
// Create the popup dialog box
|
// Create the popup dialog box
|
||||||
final DialogBox myErrorDialogBox = new DialogBox();
|
final DialogBox myErrorDialogBox = new DialogBox();
|
||||||
|
|||||||
+6
-8
@@ -2,7 +2,6 @@ package com.sap.sailing.gwt.ui.raceboard;
|
|||||||
|
|
||||||
import com.google.gwt.user.client.ui.AbsolutePanel;
|
import com.google.gwt.user.client.ui.AbsolutePanel;
|
||||||
import com.google.gwt.user.client.ui.Panel;
|
import com.google.gwt.user.client.ui.Panel;
|
||||||
import com.google.gwt.user.client.ui.Widget;
|
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
import com.sap.sailing.gwt.ui.shared.components.CollapsablePanel;
|
import com.sap.sailing.gwt.ui.shared.components.CollapsablePanel;
|
||||||
import com.sap.sailing.gwt.ui.shared.components.Component;
|
import com.sap.sailing.gwt.ui.shared.components.Component;
|
||||||
@@ -10,7 +9,7 @@ import com.sap.sailing.gwt.ui.shared.components.ComponentGroup;
|
|||||||
import com.sap.sailing.gwt.ui.shared.components.ComponentToolbar;
|
import com.sap.sailing.gwt.ui.shared.components.ComponentToolbar;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A GWT component that visualizes a {@link Component} or a {@link Component} including menus to scroll quickly to the embedded view
|
* A GWT component that visualizes a {@link ComponentGroup} or a {@link Component} including menus to scroll quickly to the embedded view
|
||||||
* of the respective component, collapse/expand buttons for the views embedded and homogeneous settings buttons for
|
* of the respective component, collapse/expand buttons for the views embedded and homogeneous settings buttons for
|
||||||
* those components that have settings.
|
* those components that have settings.
|
||||||
*
|
*
|
||||||
@@ -24,15 +23,15 @@ public class CollapsableComponentViewer<SettingsType> {
|
|||||||
|
|
||||||
private final StringMessages stringMessages;
|
private final StringMessages stringMessages;
|
||||||
|
|
||||||
public CollapsableComponentViewer(Component<SettingsType> component, StringMessages stringMessages) {
|
public CollapsableComponentViewer(Component<SettingsType> component, String defaultWidth, String defaultHeight, StringMessages stringMessages) {
|
||||||
this.component = component;
|
this.component = component;
|
||||||
this.stringMessages = stringMessages;
|
this.stringMessages = stringMessages;
|
||||||
|
|
||||||
AbsolutePanel contentPanel = new AbsolutePanel();
|
AbsolutePanel contentPanel = new AbsolutePanel();
|
||||||
disclosurePanel = createDisclosePanel(contentPanel, component.getLocalizedShortName(), 150);
|
disclosurePanel = createDisclosePanel(contentPanel, component.getLocalizedShortName(), defaultWidth, defaultHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Widget getViewerWidget() {
|
public CollapsablePanel getViewerWidget() {
|
||||||
return disclosurePanel;
|
return disclosurePanel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,7 +39,7 @@ public class CollapsableComponentViewer<SettingsType> {
|
|||||||
return component;
|
return component;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CollapsablePanel createDisclosePanel(Panel contentPanel, String panelTitle, int heightInPx)
|
private CollapsablePanel createDisclosePanel(Panel contentPanel, String panelTitle, String defaultContentWidth, String defaultContentHeight)
|
||||||
{
|
{
|
||||||
CollapsablePanel disclosurePanel = new CollapsablePanel (panelTitle);
|
CollapsablePanel disclosurePanel = new CollapsablePanel (panelTitle);
|
||||||
disclosurePanel.setSize("100%", "100%");
|
disclosurePanel.setSize("100%", "100%");
|
||||||
@@ -50,7 +49,7 @@ public class CollapsableComponentViewer<SettingsType> {
|
|||||||
toolbar.addSettingsButton();
|
toolbar.addSettingsButton();
|
||||||
disclosurePanel.setHeaderToolbar(toolbar);
|
disclosurePanel.setHeaderToolbar(toolbar);
|
||||||
|
|
||||||
contentPanel.setSize("100%", heightInPx + "px");
|
contentPanel.setSize(defaultContentWidth, defaultContentHeight);
|
||||||
disclosurePanel.setContent(contentPanel);
|
disclosurePanel.setContent(contentPanel);
|
||||||
if(component.getEntryWidget() != null) {
|
if(component.getEntryWidget() != null) {
|
||||||
contentPanel.add(component.getEntryWidget());
|
contentPanel.add(component.getEntryWidget());
|
||||||
@@ -66,5 +65,4 @@ public class CollapsableComponentViewer<SettingsType> {
|
|||||||
|
|
||||||
return disclosurePanel;
|
return disclosurePanel;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+80
-20
@@ -5,34 +5,94 @@ import java.util.List;
|
|||||||
import com.google.gwt.user.client.Window;
|
import com.google.gwt.user.client.Window;
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
import com.google.gwt.user.client.ui.RootPanel;
|
import com.google.gwt.user.client.ui.RootPanel;
|
||||||
|
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||||
import com.sap.sailing.gwt.ui.client.AbstractEntryPoint;
|
import com.sap.sailing.gwt.ui.client.AbstractEntryPoint;
|
||||||
import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel;
|
import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||||
|
import com.sap.sailing.server.api.DefaultLeaderboardName;
|
||||||
|
|
||||||
public class RaceBoardEntryPoint extends AbstractEntryPoint {
|
public class RaceBoardEntryPoint extends AbstractEntryPoint {
|
||||||
|
private Triple<EventDTO, RegattaDTO, RaceDTO> selectedRace;
|
||||||
|
private String eventName;
|
||||||
|
private String raceName;
|
||||||
|
private String leaderboardName;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onModuleLoad() {
|
public void onModuleLoad() {
|
||||||
super.onModuleLoad();
|
super.onModuleLoad();
|
||||||
sailingService.getLeaderboardNames(new AsyncCallback<List<String>>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(List<String> leaderboardNames) {
|
|
||||||
String leaderboardName = Window.Location.getParameter("name");
|
|
||||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages);
|
|
||||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
|
||||||
RaceBoardPanel raceBoardPanel = new RaceBoardPanel(sailingService, leaderboardName,
|
|
||||||
RaceBoardEntryPoint.this, stringMessages);
|
|
||||||
String padding = Window.Location.getParameter("padding");
|
|
||||||
if (padding != null && Boolean.valueOf(padding)) {
|
|
||||||
raceBoardPanel.addStyleName("leftPaddedPanel");
|
|
||||||
}
|
|
||||||
RootPanel.get().add(logoAndTitlePanel);
|
|
||||||
RootPanel.get().add(raceBoardPanel);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
eventName = Window.Location.getParameter("eventName");
|
||||||
public void onFailure(Throwable t) {
|
raceName = Window.Location.getParameter("raceName");
|
||||||
reportError("Error trying to obtain list of leaderboard names: " + t.getMessage());
|
leaderboardName = Window.Location.getParameter("leaderboardName");
|
||||||
}
|
|
||||||
});
|
if(leaderboardName == null || leaderboardName.isEmpty()) {
|
||||||
|
leaderboardName = DefaultLeaderboardName.DEFAULT_LEADERBOARD_NAME;
|
||||||
|
} else {
|
||||||
|
sailingService.getLeaderboardNames(new AsyncCallback<List<String>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<String> leaderboardNames) {
|
||||||
|
if (leaderboardNames.contains(leaderboardName)) {
|
||||||
|
createErrorPage(stringMessages.noSuchLeaderboard());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable t) {
|
||||||
|
reportError("Error trying to obtain the list of leaderboard names: " + t.getMessage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if(eventName != null && !eventName.isEmpty() && raceName != null && !raceName.isEmpty()) {
|
||||||
|
sailingService.listEvents(false, new AsyncCallback<List<EventDTO>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<EventDTO> eventNames) {
|
||||||
|
selectedRace = findRace(eventNames);
|
||||||
|
if(selectedRace != null)
|
||||||
|
createRaceBoardPanel(selectedRace);
|
||||||
|
else
|
||||||
|
createErrorPage("Could not obtain a race with name " + raceName + " for an event with name " + eventName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable t) {
|
||||||
|
reportError("Error trying to obtain the list of events: " + t.getMessage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
createErrorPage("This page requires a valid event name and race name.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Triple<EventDTO, RegattaDTO, RaceDTO> findRace(List<EventDTO> eventNames) {
|
||||||
|
for (EventDTO eventDTO : eventNames) {
|
||||||
|
if(eventDTO.name.equals(eventName)) {
|
||||||
|
for (RegattaDTO regattaDTO : eventDTO.regattas) {
|
||||||
|
for(RaceDTO raceDTO: regattaDTO.races) {
|
||||||
|
if(raceDTO.name.equals(raceName)) {
|
||||||
|
return new Triple<EventDTO, RegattaDTO, RaceDTO>(eventDTO, regattaDTO, raceDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createRaceBoardPanel(Triple<EventDTO, RegattaDTO, RaceDTO> selectedRace)
|
||||||
|
{
|
||||||
|
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages);
|
||||||
|
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||||
|
|
||||||
|
RaceBoardPanel raceBoardPanel = new RaceBoardPanel(sailingService, selectedRace, leaderboardName,
|
||||||
|
RaceBoardEntryPoint.this, stringMessages);
|
||||||
|
String padding = Window.Location.getParameter("padding");
|
||||||
|
if (padding != null && Boolean.valueOf(padding)) {
|
||||||
|
raceBoardPanel.addStyleName("leftPaddedPanel");
|
||||||
|
}
|
||||||
|
RootPanel.get().add(logoAndTitlePanel);
|
||||||
|
RootPanel.get().add(raceBoardPanel);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+64
-28
@@ -4,63 +4,99 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.google.gwt.user.client.ui.FormPanel;
|
import com.google.gwt.user.client.ui.FormPanel;
|
||||||
|
import com.google.gwt.user.client.ui.Panel;
|
||||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||||
import com.google.gwt.user.client.ui.Widget;
|
import com.google.gwt.user.client.ui.Widget;
|
||||||
|
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||||
|
import com.sap.sailing.gwt.ui.adminconsole.RaceMap;
|
||||||
|
import com.sap.sailing.gwt.ui.adminconsole.RaceMapSettings;
|
||||||
|
import com.sap.sailing.gwt.ui.adminconsole.TimePanel;
|
||||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
|
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
|
||||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
|
import com.sap.sailing.gwt.ui.client.Timer;
|
||||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.components.Component;
|
import com.sap.sailing.gwt.ui.shared.components.Component;
|
||||||
import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
|
import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
|
||||||
import com.sap.sailing.server.api.DefaultLeaderboardName;
|
|
||||||
|
|
||||||
public class RaceBoardPanel extends FormPanel implements Component<RaceBoardSettings> {
|
public class RaceBoardPanel extends FormPanel implements Component<RaceBoardSettings> {
|
||||||
|
|
||||||
private final SailingServiceAsync sailingService;
|
private final SailingServiceAsync sailingService;
|
||||||
|
|
||||||
private final ErrorReporter errorReporter;
|
private final ErrorReporter errorReporter;
|
||||||
|
private final Triple<EventDTO, RegattaDTO, RaceDTO> selectedRace;
|
||||||
// private final StringMessages stringMessages;
|
|
||||||
|
|
||||||
private String raceBoardName;
|
private String raceBoardName;
|
||||||
|
|
||||||
|
private final Timer timer;
|
||||||
private final List<CollapsableComponentViewer<?>> collapsableViewers;
|
private final List<CollapsableComponentViewer<?>> collapsableViewers;
|
||||||
|
|
||||||
public RaceBoardPanel(SailingServiceAsync sailingService, String raceBoardName, ErrorReporter errorReporter,
|
public RaceBoardPanel(SailingServiceAsync sailingService, final Triple<EventDTO, RegattaDTO, RaceDTO> theSelectedRace, String leaderboardName,
|
||||||
final StringMessages stringMessages) {
|
ErrorReporter errorReporter, final StringMessages stringMessages) {
|
||||||
this.sailingService = sailingService;
|
this.sailingService = sailingService;
|
||||||
this.setRaceBoardName(raceBoardName);
|
this.selectedRace = theSelectedRace;
|
||||||
|
this.setRaceBoardName(selectedRace.getC().name);
|
||||||
this.errorReporter = errorReporter;
|
this.errorReporter = errorReporter;
|
||||||
VerticalPanel mainPanel = new VerticalPanel();
|
VerticalPanel mainPanel = new VerticalPanel();
|
||||||
mainPanel.setSize("100%", "100%");
|
mainPanel.setSize("100%", "100%");
|
||||||
setWidget(mainPanel);
|
setWidget(mainPanel);
|
||||||
|
|
||||||
|
timer = new Timer(/* delayBetweenAutoAdvancesInMilliseconds */500);
|
||||||
collapsableViewers = new ArrayList<CollapsableComponentViewer<?>>();
|
collapsableViewers = new ArrayList<CollapsableComponentViewer<?>>();
|
||||||
for(int i = 0; i < 4; i++) {
|
CompetitorSelectionModel competitorSelectionModel = new CompetitorSelectionModel(/* hasMultiSelection */ true);
|
||||||
if(i == 0) {
|
|
||||||
CompetitorSelectionModel competitorSelectionModel = new CompetitorSelectionModel(/* hasMultiSelection */ true);
|
|
||||||
//final RaceMapPanel raceMapPanel = new RaceMapPanel(sailingService, competitorSelectionModel, this, this, stringMessages);
|
|
||||||
LeaderboardPanel defaultLeaderboardPanel = new LeaderboardPanel(sailingService, competitorSelectionModel,
|
|
||||||
DefaultLeaderboardName.DEFAULT_LEADERBOARD_NAME, errorReporter, stringMessages);
|
|
||||||
|
|
||||||
CollapsableComponentViewer<LeaderboardSettings> viewer = new CollapsableComponentViewer<LeaderboardSettings>(
|
// create the default leaderboard
|
||||||
defaultLeaderboardPanel, stringMessages);
|
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, competitorSelectionModel,
|
||||||
collapsableViewers.add(viewer);
|
leaderboardName, errorReporter, stringMessages);
|
||||||
} else {
|
|
||||||
SimpleComponentGroup<Object> componentGroup = new SimpleComponentGroup<Object>("Component Group " + i);
|
|
||||||
componentGroup.addComponent(new SimpleComponent("My Component"));
|
|
||||||
componentGroup.addComponent(new SimpleComponent("My Component 2"));
|
|
||||||
componentGroup.addComponent(new SimpleComponent("My Component 3"));
|
|
||||||
|
|
||||||
//LeaderboardPanel leaderboardPanel = LeaderboardPanel();
|
CollapsableComponentViewer<LeaderboardSettings> leaderboardViewer = new CollapsableComponentViewer<LeaderboardSettings>(
|
||||||
CollapsableComponentViewer<Object> viewer = new CollapsableComponentViewer<Object>(componentGroup, stringMessages);
|
leaderboardPanel, "100%", "100%", stringMessages);
|
||||||
collapsableViewers.add(viewer);
|
collapsableViewers.add(leaderboardViewer);
|
||||||
}
|
|
||||||
|
// create the race map
|
||||||
|
RaceMap raceMap = new RaceMap(sailingService, errorReporter, timer, competitorSelectionModel, stringMessages);
|
||||||
|
CollapsableComponentViewer<RaceMapSettings> raceMapViewer = new CollapsableComponentViewer<RaceMapSettings>(
|
||||||
|
raceMap, "600px", "300px", stringMessages);
|
||||||
|
raceMap.loadMapsAPI((Panel) raceMapViewer.getViewerWidget().getContent());
|
||||||
|
List<Triple<EventDTO, RegattaDTO, RaceDTO>> races = new ArrayList<Triple<EventDTO, RegattaDTO, RaceDTO>>();
|
||||||
|
races.add(selectedRace);
|
||||||
|
raceMap.onRaceSelectionChange(races);
|
||||||
|
collapsableViewers.add(raceMapViewer);
|
||||||
|
|
||||||
|
// create some sample components
|
||||||
|
for(int i = 0; i < 2; i++) {
|
||||||
|
SimpleComponentGroup<Object> componentGroup = new SimpleComponentGroup<Object>("Component Group " + i);
|
||||||
|
componentGroup.addComponent(new SimpleComponent("My Component"));
|
||||||
|
componentGroup.addComponent(new SimpleComponent("My Component 2"));
|
||||||
|
componentGroup.addComponent(new SimpleComponent("My Component 3"));
|
||||||
|
|
||||||
|
collapsableViewers.add(new CollapsableComponentViewer<Object>(componentGroup, "100%", "100px", stringMessages));
|
||||||
}
|
}
|
||||||
for (CollapsableComponentViewer<?> viewer : collapsableViewers) {
|
|
||||||
mainPanel.add(viewer.getViewerWidget());
|
for (CollapsableComponentViewer<?> componentViewer : collapsableViewers) {
|
||||||
|
mainPanel.add(componentViewer.getViewerWidget());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
timer.addTimeListener(leaderboardPanel);
|
||||||
|
timer.addTimeListener(raceMap);
|
||||||
|
|
||||||
|
TimePanel timePanel = new TimePanel(stringMessages, timer);
|
||||||
|
RaceDTO race = selectedRace.getC();
|
||||||
|
if (race.startOfRace != null) {
|
||||||
|
timePanel.timeChanged(race.startOfRace);
|
||||||
|
timer.setTime(race.startOfRace.getTime());
|
||||||
|
}
|
||||||
|
if (race.startOfTracking != null) {
|
||||||
|
timePanel.setMin(race.startOfTracking);
|
||||||
|
}
|
||||||
|
if (race.timePointOfNewestEvent != null) {
|
||||||
|
timePanel.setMax(race.timePointOfNewestEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
mainPanel.add(timePanel);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in new issue
Block a user