mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-30 17:36:40 +00:00
Moved methods for the leaderboard start and location from the LeaderboardGroupDTO to the LeaderboardDTO
This commit is contained in:
1 parent
180d8ef613
commit
e04c04eed3
4 files changed
+68
-102
No files matched your search
+54
@@ -4,6 +4,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -345,6 +346,59 @@ public class LeaderboardDTO implements IsSerializable {
|
||||
public void setIsMedalRace(String raceColumnName, boolean medalRace) {
|
||||
getRaceInLeaderboardByName(raceColumnName).setMedalRace(medalRace);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The earliest start date of the races, or <code>null</code> if no start dates of the races are available.
|
||||
*/
|
||||
public Date getStartDate() {
|
||||
Date leaderboardStart = null;
|
||||
for (RaceInLeaderboardDTO race : getRaceList()) {
|
||||
if (race.isTrackedRace()) {
|
||||
Date raceStart = null;
|
||||
StrippedRaceDTO raceData = race.getRace();
|
||||
if (raceData != null) {
|
||||
raceStart = raceData.getStartDate();
|
||||
}
|
||||
|
||||
if (raceStart != null) {
|
||||
if (leaderboardStart == null) {
|
||||
leaderboardStart = new Date();
|
||||
}
|
||||
leaderboardStart = leaderboardStart.before(raceStart) ? leaderboardStart : raceStart;
|
||||
}
|
||||
}
|
||||
}
|
||||
return leaderboardStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes the {@link PlacemarkOrderDTO} of all races in this leaderboard, if the PlacemarkOrderDTO for the race is
|
||||
* available, and fills all {@link PlacemarkDTO} in a new PlacemarkOrderDTO.<br />
|
||||
* The order of the races in this leaderboard determine the order of the PlacemarkDTOs in the PlacemarkOrderDTO.
|
||||
*
|
||||
* @return The places of this leaderboard in form of a {@link PlacemarkOrderDTO}, or <code>null</code> if the
|
||||
* {@link PlacemarkOrderDTO places} of no race are available
|
||||
*/
|
||||
public PlacemarkOrderDTO getPlaces() {
|
||||
PlacemarkOrderDTO leaderboardPlaces = null;
|
||||
for (RaceInLeaderboardDTO race : getRaceList()) {
|
||||
if (race.isTrackedRace()) {
|
||||
PlacemarkOrderDTO racePlaces = null;
|
||||
StrippedRaceDTO raceData = race.getRace();
|
||||
if (raceData != null) {
|
||||
racePlaces = raceData.places;
|
||||
}
|
||||
|
||||
if (racePlaces != null) {
|
||||
if (leaderboardPlaces == null) {
|
||||
leaderboardPlaces = new PlacemarkOrderDTO();
|
||||
}
|
||||
leaderboardPlaces.getPlacemarks().addAll(racePlaces.getPlacemarks());
|
||||
}
|
||||
}
|
||||
}
|
||||
return leaderboardPlaces;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
|
||||
+3
-97
@@ -46,57 +46,12 @@ public class LeaderboardGroupDTO extends NamedDTO implements IsSerializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The start date of the given <code>race</code>, or <code>null</code> if no date for <code>race</code> is available.
|
||||
*/
|
||||
public Date getRaceStartDate(RaceIdentifier raceID) {
|
||||
Date startDate = null;
|
||||
for (LeaderboardDTO leaderboard : leaderboards) {
|
||||
for (RaceInLeaderboardDTO raceInLeaderboard : leaderboard.getRaceList()) {
|
||||
RaceIdentifier raceInLeaderboardID = raceInLeaderboard.getRaceIdentifier();
|
||||
StrippedRaceDTO raceData = raceInLeaderboard.getRace();
|
||||
if (raceInLeaderboardID != null && raceInLeaderboardID.equals(raceID) && raceData != null) {
|
||||
startDate = raceData.startOfRace != null ? raceData.startOfRace : raceData.startOfTracking;
|
||||
}
|
||||
}
|
||||
}
|
||||
return startDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The earliest start date of the races in the given <code>leaderboard</code>, or <code>null</code> if
|
||||
* <code>leaderboard</code> isn't contained or no start dates of the races are available.
|
||||
*/
|
||||
public Date getLeaderboardStartDate(LeaderboardDTO leaderboard) {
|
||||
Date leaderboardStart = null;
|
||||
if (leaderboards.contains(leaderboard)) {
|
||||
for (RaceInLeaderboardDTO race : leaderboard.getRaceList()) {
|
||||
if (race.isTrackedRace()) {
|
||||
Date raceStart = null;
|
||||
StrippedRaceDTO raceData = race.getRace();
|
||||
if (raceData != null) {
|
||||
raceStart = raceData.startOfRace != null ? raceData.startOfRace : raceData.startOfTracking;
|
||||
}
|
||||
|
||||
if (raceStart != null) {
|
||||
if (leaderboardStart == null) {
|
||||
leaderboardStart = new Date();
|
||||
}
|
||||
leaderboardStart = leaderboardStart.before(raceStart) ? leaderboardStart : raceStart;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return leaderboardStart;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return The earliest date in the start dates of the races, or <code>null</code> if no start dates are contained
|
||||
* @return The earliest date in the start dates of the leaderboards, or <code>null</code> if no start dates are contained
|
||||
*/
|
||||
public Date getGroupStartDate() {
|
||||
Date groupStart = null;
|
||||
for (LeaderboardDTO leaderboard : leaderboards) {
|
||||
Date leaderboardStart = getLeaderboardStartDate(leaderboard);
|
||||
Date leaderboardStart = leaderboard.getStartDate();
|
||||
if (leaderboardStart != null) {
|
||||
if (groupStart == null) {
|
||||
groupStart = new Date();
|
||||
@@ -107,55 +62,6 @@ public class LeaderboardGroupDTO extends NamedDTO implements IsSerializable {
|
||||
return groupStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The {@link PlacemarkOrderDTO places} of the given <code>race</code>, or <code>null</code> if no places for <code>race</code> are available.
|
||||
*/
|
||||
public PlacemarkOrderDTO getRacePlaces(RaceIdentifier raceID) {
|
||||
PlacemarkOrderDTO racePlaces = null;
|
||||
for (LeaderboardDTO leaderboard : leaderboards) {
|
||||
for (RaceInLeaderboardDTO raceInLeaderboard : leaderboard.getRaceList()) {
|
||||
RaceIdentifier raceInLeaderboardID = raceInLeaderboard.getRaceIdentifier();
|
||||
StrippedRaceDTO raceData = raceInLeaderboard.getRace();
|
||||
if (raceInLeaderboardID != null && raceInLeaderboardID.equals(raceID) && raceData != null) {
|
||||
racePlaces = raceData.places;
|
||||
}
|
||||
}
|
||||
}
|
||||
return racePlaces;
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes the {@link PlacemarkOrderDTO} of all races in the {@link LeaderboardDTO} <code>leaderboard</code>, if the
|
||||
* PlacemarkOrderDTO for the race is available, and fills all {@link PlacemarkDTO} in a new PlacemarkOrderDTO.<br />
|
||||
* The order of the races in the leaderboard determine the order of the PlacemarkDTOs in the PlacemarkOrderDTO.
|
||||
*
|
||||
* @return The places of <code>leaderboard</code> in form of a {@link PlacemarkOrderDTO}, or <code>null</code> if
|
||||
* <code>leaderboard</code> isn't contained or the {@link PlacemarkOrderDTO places} of no race in
|
||||
* <code>leaderboard</code> are available
|
||||
*/
|
||||
public PlacemarkOrderDTO getLeaderboardPlaces(LeaderboardDTO leaderboard) {
|
||||
PlacemarkOrderDTO leaderboardPlaces = null;
|
||||
if (leaderboards.contains(leaderboard)) {
|
||||
for (RaceInLeaderboardDTO race : leaderboard.getRaceList()) {
|
||||
if (race.isTrackedRace()) {
|
||||
PlacemarkOrderDTO racePlaces = null;
|
||||
StrippedRaceDTO raceData = race.getRace();
|
||||
if (raceData != null) {
|
||||
racePlaces = raceData.places;
|
||||
}
|
||||
|
||||
if (racePlaces != null) {
|
||||
if (leaderboardPlaces == null) {
|
||||
leaderboardPlaces = new PlacemarkOrderDTO();
|
||||
}
|
||||
leaderboardPlaces.getPlacemarks().addAll(racePlaces.getPlacemarks());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return leaderboardPlaces;
|
||||
}
|
||||
|
||||
/**
|
||||
* Uses {@link LeaderboardGroupDTO#getLeaderboardPlaces(leaderboard) LeaderboardGroupDTO.getLeaderboardPlaces} to
|
||||
* create the {@link PlacemarkOrderDTO places} for all contained leaderboards and returns them as a list.
|
||||
@@ -166,7 +72,7 @@ public class LeaderboardGroupDTO extends NamedDTO implements IsSerializable {
|
||||
public List<PlacemarkOrderDTO> getGroupPlaces() {
|
||||
List<PlacemarkOrderDTO> places = new ArrayList<PlacemarkOrderDTO>();
|
||||
for (LeaderboardDTO leaderboard : leaderboards) {
|
||||
PlacemarkOrderDTO leaderboardPlaces = getLeaderboardPlaces(leaderboard);
|
||||
PlacemarkOrderDTO leaderboardPlaces = leaderboard.getPlaces();
|
||||
if (leaderboardPlaces != null) {
|
||||
places.add(leaderboardPlaces);
|
||||
}
|
||||
|
||||
+4
@@ -24,5 +24,9 @@ public class StrippedRaceDTO extends NamedDTO implements IsSerializable {
|
||||
this.identifier = identifier;
|
||||
this.places = places;
|
||||
}
|
||||
|
||||
public Date getStartDate() {
|
||||
return startOfRace == null ? startOfTracking : startOfRace;
|
||||
}
|
||||
|
||||
}
|
||||
+7
-5
@@ -5,6 +5,8 @@ import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.tools.ant.taskdefs.Sleep;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Style;
|
||||
import com.google.gwt.event.dom.client.KeyUpEvent;
|
||||
@@ -292,7 +294,7 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
noGroupSelectedLabel = new Label(this.stringMessages.noGroupSelected());
|
||||
detailsPanel.add(noGroupSelectedLabel);
|
||||
|
||||
//Build group details GUI TODO
|
||||
//Build group details GUI
|
||||
groupDetailsPanel = new FlowPanel();
|
||||
groupDetailsPanel.setStyleName(STYLE_NAME_PREFIX + "groupDetailsPanel");
|
||||
groupDetailsPanel.getElement().getStyle().setFloat(Style.Float.LEFT);
|
||||
@@ -306,8 +308,7 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
TextColumn<LeaderboardDTO> leaderboardsLocationColumn = new TextColumn<LeaderboardDTO>() {
|
||||
@Override
|
||||
public String getValue(LeaderboardDTO leaderboard) {
|
||||
LeaderboardGroupDTO selectedGroup = groupsSelectionModel.getSelectedObject();
|
||||
PlacemarkOrderDTO leaderboardPlaces = selectedGroup == null ? null : selectedGroup.getLeaderboardPlaces(leaderboard);
|
||||
PlacemarkOrderDTO leaderboardPlaces = leaderboard.getPlaces();
|
||||
return leaderboardPlaces == null ? LeaderboardGroupOverviewPanel.this.stringMessages
|
||||
.locationNotAvailable() : leaderboardPlaces.placemarksAsString();
|
||||
}
|
||||
@@ -337,8 +338,9 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
TextColumn<LeaderboardDTO> leaderboardsStartDateColumn = new TextColumn<LeaderboardDTO>() {
|
||||
@Override
|
||||
public String getValue(LeaderboardDTO leaderboard) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
Date leaderboardStart = leaderboard.getStartDate();
|
||||
return leaderboardStart == null ? LeaderboardGroupOverviewPanel.this.stringMessages.untracked()
|
||||
: DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(leaderboardStart);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in new issue
Block a user