bug3198 First steps to set a default BoatClass

This commit is contained in:
Lukas Furmanek committed 2015-11-03 11:08:59 +01:00
1 parent 61e6b9c85c
commit 0d6acf9fba
6 files changed
+80 -12

No files matched your search

@@ -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();
}
}
@@ -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()) {
@@ -207,7 +207,7 @@ public class CompetitorPanel extends SimplePanel {
@Override
public void cancel() {
}
}).show();
},null).show();
}
private String getLocaleInfo() {
@@ -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;
@@ -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;
}
@@ -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;
}
}
}
}