mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-07 21:01:03 +00:00
fixed validation of race column add dialog
This commit is contained in:
1 parent
c2f92087d1
commit
dec37d6572
3 files changed
+20
-32
No files matched your search
+5
-3
@@ -4,8 +4,10 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.gwt.cell.client.AbstractCell;
|
||||
import com.google.gwt.cell.client.FieldUpdater;
|
||||
@@ -745,7 +747,8 @@ public class LeaderboardConfigPanel extends FormPanel implements SelectedLeaderb
|
||||
final boolean oldIsMedalRace = raceColumnWithFleet.getA().isMedalRace();
|
||||
final String oldRaceColumnName = raceColumnWithFleet.getA().getRaceColumnName();
|
||||
final Double oldExplicitFactor = raceColumnWithFleet.getA().getExplicitFactor();
|
||||
List<RaceColumnDTO> existingRacesWithoutThisRace = new ArrayList<RaceColumnDTO>();
|
||||
// use a set to avoid duplicates in the case of regatta leaderboards with multiple fleets per column
|
||||
Set<RaceColumnDTO> existingRacesWithoutThisRace = new HashSet<RaceColumnDTO>();
|
||||
for (Pair<RaceColumnDTO, FleetDTO> pair : raceColumnAndFleetList.getList()) {
|
||||
existingRacesWithoutThisRace.add(pair.getA());
|
||||
}
|
||||
@@ -822,10 +825,9 @@ public class LeaderboardConfigPanel extends FormPanel implements SelectedLeaderb
|
||||
private void addRaceColumnsToLeaderboard() {
|
||||
final String leaderboardName = getSelectedLeaderboardName();
|
||||
final List<RaceColumnDTO> existingRaceColumns = new ArrayList<RaceColumnDTO>();
|
||||
for(Pair<RaceColumnDTO, FleetDTO> pair: raceColumnAndFleetList.getList()) {
|
||||
for (Pair<RaceColumnDTO, FleetDTO> pair : raceColumnAndFleetList.getList()) {
|
||||
existingRaceColumns.add(pair.getA());
|
||||
}
|
||||
|
||||
final RaceColumnsInLeaderboardDialog raceDialog = new RaceColumnsInLeaderboardDialog(existingRaceColumns,
|
||||
stringMessages, new DialogCallback<List<RaceColumnDTO>>() {
|
||||
@Override
|
||||
|
||||
+8
-11
@@ -1,7 +1,5 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.user.client.ui.CheckBox;
|
||||
import com.google.gwt.user.client.ui.DoubleBox;
|
||||
import com.google.gwt.user.client.ui.HasVerticalAlignment;
|
||||
@@ -58,12 +56,11 @@ public class RaceColumnInLeaderboardDialog extends DataEntryDialog<RaceColumnInL
|
||||
}
|
||||
|
||||
private static class RaceDialogValidator implements Validator<RaceColumnDescriptor> {
|
||||
private final StringMessages stringMessages;
|
||||
private final Iterable<RaceColumnDTO> existingRaces;
|
||||
|
||||
private StringMessages stringConstants;
|
||||
private List<RaceColumnDTO> existingRaces;
|
||||
|
||||
public RaceDialogValidator(StringMessages stringConstants, List<RaceColumnDTO> existingRaceColumnsAndFleetNames) {
|
||||
this.stringConstants = stringConstants;
|
||||
public RaceDialogValidator(StringMessages stringConstants, Iterable<RaceColumnDTO> existingRaceColumnsAndFleetNames) {
|
||||
this.stringMessages = stringConstants;
|
||||
this.existingRaces = existingRaceColumnsAndFleetNames;
|
||||
}
|
||||
|
||||
@@ -83,11 +80,11 @@ public class RaceColumnInLeaderboardDialog extends DataEntryDialog<RaceColumnInL
|
||||
}
|
||||
|
||||
if (!isNameNotEmpty) {
|
||||
errorMessage = stringConstants.pleaseEnterAName();
|
||||
errorMessage = stringMessages.pleaseEnterAName();
|
||||
} else if (!medalRaceNotNull) {
|
||||
errorMessage = stringConstants.medalRaceIsNull();
|
||||
errorMessage = stringMessages.medalRaceIsNull();
|
||||
} else if (!unique) {
|
||||
errorMessage = stringConstants.raceWithThisNameAlreadyExists();
|
||||
errorMessage = stringMessages.raceWithThisNameAlreadyExists();
|
||||
} else {
|
||||
return errorMessage = null;
|
||||
}
|
||||
@@ -95,7 +92,7 @@ public class RaceColumnInLeaderboardDialog extends DataEntryDialog<RaceColumnInL
|
||||
}
|
||||
}
|
||||
|
||||
public RaceColumnInLeaderboardDialog(List<RaceColumnDTO> existingRaces, RaceColumnDTO raceColumnToEdit,
|
||||
public RaceColumnInLeaderboardDialog(Iterable<RaceColumnDTO> existingRaces, RaceColumnDTO raceColumnToEdit,
|
||||
boolean isRegattaLeaderboard, StringMessages stringMessages, DialogCallback<RaceColumnDescriptor> callback) {
|
||||
super(stringMessages.actionRaceEdit(), null, stringMessages.ok(), stringMessages.cancel(),
|
||||
new RaceDialogValidator(stringMessages, existingRaces), callback);
|
||||
|
||||
+7
-18
@@ -41,36 +41,26 @@ public class RaceColumnsInLeaderboardDialog extends DataEntryDialog<List<RaceCol
|
||||
@Override
|
||||
public String getErrorMessage(List<RaceColumnDTO> raceColumnsWithFleetToValidate) {
|
||||
String errorMessage = null;
|
||||
|
||||
List<RaceColumnDTO> raceColumnsToValidate = new ArrayList<RaceColumnDTO>();
|
||||
for (RaceColumnDTO raceColumnDTO : raceColumnsToValidate) {
|
||||
raceColumnsToValidate.add(raceColumnDTO);
|
||||
}
|
||||
|
||||
if(errorMessage == null) {
|
||||
if (errorMessage == null) {
|
||||
int index = 0;
|
||||
boolean raceColumnNameNotEmpty = true;
|
||||
|
||||
for (RaceColumnDTO raceColumn : raceColumnsToValidate) {
|
||||
for (RaceColumnDTO raceColumn : raceColumnsWithFleetToValidate) {
|
||||
raceColumnNameNotEmpty = raceColumn.name != null && raceColumn.name.length() > 0;
|
||||
if (!raceColumnNameNotEmpty) {
|
||||
break;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
|
||||
int index2 = 0;
|
||||
boolean raceColumnUnique = true;
|
||||
|
||||
HashSet<String> setToFindDuplicates = new HashSet<String>();
|
||||
for (RaceColumnDTO raceColumn : raceColumnsToValidate) {
|
||||
for (RaceColumnDTO raceColumn : raceColumnsWithFleetToValidate) {
|
||||
if (!setToFindDuplicates.add(raceColumn.name)) {
|
||||
raceColumnUnique = false;
|
||||
break;
|
||||
}
|
||||
index2++;
|
||||
}
|
||||
|
||||
if (!raceColumnNameNotEmpty) {
|
||||
errorMessage = stringConstants.race() + " " + (index + 1) + ": "
|
||||
+ stringConstants.pleaseEnterAName();
|
||||
@@ -85,12 +75,12 @@ public class RaceColumnsInLeaderboardDialog extends DataEntryDialog<List<RaceCol
|
||||
|
||||
}
|
||||
|
||||
public RaceColumnsInLeaderboardDialog(List<RaceColumnDTO> existingRaces, StringMessages stringConstants,
|
||||
public RaceColumnsInLeaderboardDialog(List<RaceColumnDTO> existingRaces, StringMessages stringMessages,
|
||||
DialogCallback<List<RaceColumnDTO>> callback) {
|
||||
super(stringConstants.actionAddRaces(), null, stringConstants.ok(), stringConstants.cancel(),
|
||||
new RaceDialogValidator(stringConstants), callback);
|
||||
super(stringMessages.actionAddRaces(), null, stringMessages.ok(), stringMessages.cancel(),
|
||||
new RaceDialogValidator(stringMessages), callback);
|
||||
this.existingRaces = existingRaces;
|
||||
this.stringMessages = stringConstants;
|
||||
this.stringMessages = stringMessages;
|
||||
addRacesListBox = createListBox(false);
|
||||
raceNamePrefixTextBox = createTextBox(null);
|
||||
raceNameEntryFields = new ArrayList<TextBox>();
|
||||
@@ -195,7 +185,6 @@ public class RaceColumnsInLeaderboardDialog extends DataEntryDialog<List<RaceCol
|
||||
} else {
|
||||
raceColumnsGrid = new Grid(0, 0);
|
||||
}
|
||||
|
||||
parentPanel.insert(raceColumnsGrid, widgetIndex);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user