mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-22 12:03:58 +00:00
bug3198 First steps to set a default BoatClass
This commit is contained in:
1 parent
61e6b9c85c
commit
0d6acf9fba
6 files changed
+80
-12
No files matched your search
+6
-3
@@ -34,15 +34,17 @@ public abstract class AbstractCompetitorRegistrationsDialog extends DataEntryDia
|
||||
protected final SailingServiceAsync sailingService;
|
||||
final ErrorReporter errorReporter;
|
||||
private boolean editable;
|
||||
private String boatClass;
|
||||
|
||||
public AbstractCompetitorRegistrationsDialog(final SailingServiceAsync sailingService,
|
||||
final StringMessages stringMessages, final ErrorReporter errorReporter, boolean editable,
|
||||
DialogCallback<Set<CompetitorDTO>> callback) {
|
||||
DialogCallback<Set<CompetitorDTO>> callback, String boatClass) {
|
||||
super(stringMessages.registerCompetitors(), /*messsage*/ null, stringMessages.save(), stringMessages.cancel(), /*validator*/ null, callback);
|
||||
this.stringMessages = stringMessages;
|
||||
this.sailingService = sailingService;
|
||||
this.errorReporter = errorReporter;
|
||||
this.editable = editable;
|
||||
this.boatClass = boatClass;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -125,6 +127,7 @@ public abstract class AbstractCompetitorRegistrationsDialog extends DataEntryDia
|
||||
|
||||
|
||||
private void openAddCompetitorDialog() {
|
||||
|
||||
new CompetitorEditDialog(stringMessages, new CompetitorDTOImpl(),
|
||||
new DataEntryDialog.DialogCallback<CompetitorDTO>() {
|
||||
@Override
|
||||
@@ -145,7 +148,7 @@ public abstract class AbstractCompetitorRegistrationsDialog extends DataEntryDia
|
||||
@Override
|
||||
public void cancel() {
|
||||
}
|
||||
}).show();
|
||||
},boatClass).show();
|
||||
}
|
||||
|
||||
private void openEditCompetitorDialog() {
|
||||
@@ -177,7 +180,7 @@ public abstract class AbstractCompetitorRegistrationsDialog extends DataEntryDia
|
||||
@Override
|
||||
public void cancel() {
|
||||
}
|
||||
}).show();
|
||||
},null).show();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+11
-2
@@ -49,8 +49,16 @@ public class CompetitorEditDialog extends DataEntryDialog<CompetitorDTO> {
|
||||
private final DoubleBox timeOnTimeFactor;
|
||||
private final DoubleBox timeOnDistanceAllowanceInSecondsPerNauticalMile;
|
||||
|
||||
/**
|
||||
* The class creates the UI-dialog to type in the Data about a competitor.
|
||||
* @param competitorToEdit
|
||||
* The 'competitorToEdit' parameter contains the competitor witch should be changed or initialized.
|
||||
* @param boatClass
|
||||
* The boat class is the default shown boat class for new competitors.
|
||||
* Set 'null' if your competitor is already initialized or you don´t want a default boat class.
|
||||
*/
|
||||
public CompetitorEditDialog(final StringMessages stringMessages, CompetitorDTO competitorToEdit,
|
||||
DialogCallback<CompetitorDTO> callback) {
|
||||
DialogCallback<CompetitorDTO> callback, String boatClass) {
|
||||
super(stringMessages.editCompetitor(), null, stringMessages.ok(), stringMessages
|
||||
.cancel(), new Validator<CompetitorDTO>() {
|
||||
@Override
|
||||
@@ -73,8 +81,9 @@ public class CompetitorEditDialog extends DataEntryDialog<CompetitorDTO> {
|
||||
}, /* animationEnabled */true, callback);
|
||||
this.stringMessages = stringMessages;
|
||||
this.competitorToEdit = competitorToEdit;
|
||||
|
||||
|
||||
this.boatClassName = createSuggestBox(BoatClassMasterdata.getAllBoatClassNames(/* includeAlternativeNames */ true));
|
||||
this.boatClassName.setValue(boatClass);
|
||||
int i=0;
|
||||
List<String> boatClassNamesList = new ArrayList<String>();
|
||||
for (BoatClassMasterdata t : BoatClassMasterdata.values()) {
|
||||
|
||||
+1
-1
@@ -207,7 +207,7 @@ public class CompetitorPanel extends SimplePanel {
|
||||
@Override
|
||||
public void cancel() {
|
||||
}
|
||||
}).show();
|
||||
},null).show();
|
||||
}
|
||||
|
||||
private String getLocaleInfo() {
|
||||
|
||||
+2
-2
@@ -15,10 +15,10 @@ public class RaceLogCompetitorRegistrationDialog extends AbstractCompetitorRegis
|
||||
private String fleetName;
|
||||
private String raceColumnName;
|
||||
|
||||
public RaceLogCompetitorRegistrationDialog(SailingServiceAsync sailingService, StringMessages stringMessages,
|
||||
public RaceLogCompetitorRegistrationDialog(String boatClass, SailingServiceAsync sailingService, StringMessages stringMessages,
|
||||
ErrorReporter errorReporter, boolean editable, String leaderboardName, String raceColumnName, String fleetName,
|
||||
com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback<Set<CompetitorDTO>> callback) {
|
||||
super(sailingService, stringMessages, errorReporter, editable, callback);
|
||||
super(sailingService, stringMessages, errorReporter, editable, callback, boatClass);
|
||||
this.leaderboardName = leaderboardName;
|
||||
this.raceColumnName = raceColumnName;
|
||||
this.fleetName = fleetName;
|
||||
|
||||
+2
-2
@@ -13,10 +13,10 @@ public class RegattaLogCompetitorRegistrationDialog extends AbstractCompetitorRe
|
||||
|
||||
private String leaderboardName;
|
||||
|
||||
public RegattaLogCompetitorRegistrationDialog(SailingServiceAsync sailingService, StringMessages stringMessages,
|
||||
public RegattaLogCompetitorRegistrationDialog(String boatClass, SailingServiceAsync sailingService, StringMessages stringMessages,
|
||||
ErrorReporter errorReporter, boolean editable, String leaderboardName,
|
||||
com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback<Set<CompetitorDTO>> callback) {
|
||||
super(sailingService, stringMessages, errorReporter, editable, callback);
|
||||
super(sailingService, stringMessages, errorReporter, editable, callback, boatClass);
|
||||
this.leaderboardName = leaderboardName;
|
||||
}
|
||||
|
||||
|
||||
+58
-2
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -34,6 +35,7 @@ import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn;
|
||||
import com.sap.sailing.gwt.ui.shared.ControlPointDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
import com.sap.sse.common.Util.Triple;
|
||||
@@ -51,6 +53,8 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
private CheckBox trackWind;
|
||||
protected boolean regattaHasCompetitors = false;
|
||||
|
||||
public static Iterable<CompetitorDTO> competitors = null;
|
||||
|
||||
public SmartphoneTrackingEventManagementPanel(SailingServiceAsync sailingService,
|
||||
RegattaRefresher regattaRefresher, LeaderboardsRefresher leaderboardsRefresher,
|
||||
ErrorReporter errorReporter, StringMessages stringMessages) {
|
||||
@@ -105,7 +109,7 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
if (RaceLogTrackingEventManagementImagesBarCell.ACTION_DENOTE_FOR_RACELOG_TRACKING.equals(value)) {
|
||||
denoteForRaceLogTracking(leaderboardDTO);
|
||||
} else if (RaceLogTrackingEventManagementImagesBarCell.ACTION_COMPETITOR_REGISTRATIONS.equals(value)) {
|
||||
new RegattaLogCompetitorRegistrationDialog(sailingService, stringMessages, errorReporter, /*editable*/ true,
|
||||
new RegattaLogCompetitorRegistrationDialog(searchBoatClass() ,sailingService, stringMessages, errorReporter, /*editable*/ true,
|
||||
leaderboardName, new DialogCallback<Set<CompetitorDTO>>() {
|
||||
|
||||
@Override
|
||||
@@ -148,6 +152,8 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
showRegattaLog();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
leaderboardTable.addColumn(selectionCheckboxColumn, selectionCheckboxColumn.getHeader());
|
||||
leaderboardTable.addColumn(leaderboardNameColumn, stringMessages.name());
|
||||
@@ -203,7 +209,7 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
removeDenotation(raceColumnDTOAndFleetDTO.getA(), raceColumnDTOAndFleetDTO.getB());
|
||||
} else if (RaceLogTrackingEventManagementRaceImagesBarCell.ACTION_COMPETITOR_REGISTRATIONS
|
||||
.equals(value)) {
|
||||
new RaceLogCompetitorRegistrationDialog(sailingService, stringMessages, errorReporter, editable, leaderboardName,
|
||||
new RaceLogCompetitorRegistrationDialog(searchBoatClass() , sailingService, stringMessages, errorReporter, editable, leaderboardName,
|
||||
raceColumnName, fleetName, new DialogCallback<Set<CompetitorDTO>>() {
|
||||
|
||||
@Override
|
||||
@@ -227,6 +233,7 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
public void cancel() {
|
||||
}
|
||||
}).show();
|
||||
|
||||
} else if (RaceLogTrackingEventManagementRaceImagesBarCell.ACTION_DEFINE_COURSE.equals(value)) {
|
||||
new RaceLogTrackingCourseDefinitionDialog(sailingService, stringMessages, errorReporter, leaderboardName, raceColumnName,
|
||||
fleetName, new DialogCallback<List<com.sap.sse.common.Util.Pair<ControlPointDTO,PassingInstruction>>>() {
|
||||
@@ -550,4 +557,53 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
}).show();
|
||||
|
||||
}
|
||||
|
||||
private String searchBoatClass() {
|
||||
RegattaDTO regatta = null;
|
||||
if (allRegattas != null)
|
||||
for (RegattaDTO i : allRegattas) {
|
||||
if (getSelectedLeaderboard().regattaName != null)
|
||||
if (getSelectedLeaderboard().regattaName.equals(i.getName())) {
|
||||
regatta = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (regatta != null)
|
||||
return regatta.boatClass.getName();
|
||||
else {
|
||||
sailingService.getCompetitorsOfLeaderboard(getSelectedLeaderboardName(),
|
||||
new AsyncCallback<Iterable<CompetitorDTO>>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
SmartphoneTrackingEventManagementPanel.competitors = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Iterable<CompetitorDTO> result) {
|
||||
SmartphoneTrackingEventManagementPanel.competitors = result;
|
||||
}
|
||||
});
|
||||
|
||||
if (competitors != null) {
|
||||
HashMap<String, Integer> countBoatsPerType = new HashMap<String, Integer>();
|
||||
String boatClass = null;
|
||||
int highestCount = 0;
|
||||
for (CompetitorDTO comp : competitors) {
|
||||
String boatClassName = comp.getBoatClass().getName();
|
||||
Integer boatClassCount = countBoatsPerType.get(boatClassName);
|
||||
if (boatClassCount == null)
|
||||
boatClassCount = 0;
|
||||
boatClassCount++;
|
||||
if (boatClassCount > highestCount) {
|
||||
highestCount = boatClassCount;
|
||||
boatClass = boatClassName;
|
||||
}
|
||||
}
|
||||
return boatClass;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user