Bug 3612 - Suggest to set the course editor to "By Marks"

Change-Id: Ia6167978f8f66f764ea951769d1a012161a33f90
This commit is contained in:
Alexander Tatarinovich committed 2016-09-07 13:22:33 +03:00
1 parent 1736124733
commit f101a014e0
4 files changed
+79 -18

No files matched your search

@@ -12,13 +12,18 @@ import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.i18n.client.LocaleInfo;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CaptionPanel;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.ToggleButton;
import com.google.gwt.user.client.ui.VerticalPanel;
@@ -558,28 +563,77 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
private void updateRegattaConfigDesignerModeToByMarks(final String regattaName) {
final RegattaDTO regatta = getRegattaByName(regattaName);
if (regatta != null) {
DeviceConfigurationDTO.RegattaConfigurationDTO configuration = regatta.configuration;
DeviceConfigurationDTO.RegattaConfigurationDTO configuration = regatta.configuration;
if (configuration == null) {
configuration = new DeviceConfigurationDTO.RegattaConfigurationDTO();
configuration.defaultCourseDesignerMode = CourseDesignerMode.BY_MARKS;
} //TODO: Show message if regatta has configuration with design mode not equal "By marks"
final RegattaIdentifier regattaIdentifier = new RegattaName(regatta.getName());
sailingService.updateRegatta(regattaIdentifier, regatta.startDate, regatta.endDate, regatta.defaultCourseAreaUuid,
configuration, regatta.useStartTimeInference, new MarkedAsyncCallback<Void>(new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
errorReporter.reportError("Error trying to update regatta " + regattaName + ": "
+ caught.getMessage());
}
@Override
public void onSuccess(Void result) {
}
}));
updateRegattaConfiguration(regatta, configuration);
} else {
if (configuration.defaultCourseDesignerMode == CourseDesignerMode.BY_MARKS) {
return;
}
DialogBox dialogBox = createOverrideConfigurationDialog(regatta, configuration);
dialogBox.center();
}
}
}
private DialogBox createOverrideConfigurationDialog(final RegattaDTO regatta,
final DeviceConfigurationDTO.RegattaConfigurationDTO configuration) {
final DialogBox dialogBox = new DialogBox(true, true);
dialogBox.setText(stringMessages.allRacesHaveDenoted());
VerticalPanel contentPanel = new VerticalPanel();
contentPanel.add(new HTML(new SafeHtmlBuilder()
.appendEscapedLines(stringMessages.warningOverrideRegattaConfigurationCourseDesignerToByMarks())
.toSafeHtml()));
HorizontalPanel buttonPanel = new HorizontalPanel();
buttonPanel.setSpacing(5);
contentPanel.add(buttonPanel);
Button yesButton = new Button(stringMessages.yes());
yesButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
configuration.defaultCourseDesignerMode = CourseDesignerMode.BY_MARKS;
updateRegattaConfiguration(regatta, configuration);
dialogBox.hide();
}
});
buttonPanel.add(yesButton);
Button noButton = new Button(stringMessages.no(), new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
dialogBox.hide();
}
});
buttonPanel.add(noButton);
dialogBox.setWidget(contentPanel);
return dialogBox;
}
private void updateRegattaConfiguration(final RegattaDTO regatta,
DeviceConfigurationDTO.RegattaConfigurationDTO configuration) {
final RegattaIdentifier regattaIdentifier = new RegattaName(regatta.getName());
sailingService.updateRegatta(regattaIdentifier, regatta.startDate, regatta.endDate,
regatta.defaultCourseAreaUuid, configuration, regatta.useStartTimeInference,
new MarkedAsyncCallback<Void>(new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
errorReporter.reportError(
"Error trying to update regatta " + regatta.getName() + ": " + caught.getMessage());
}
@Override
public void onSuccess(Void result) {
Window.alert(stringMessages.notificationRegattaConfigurationUpdatedUsingByMarks());
}
}));
}
private void denoteForRaceLogTracking(final RaceColumnDTO raceColumn, final FleetDTO fleet) {
final StrippedLeaderboardDTO leaderboard = getSelectedLeaderboard();
sailingService.denoteForRaceLogTracking(leaderboard.name, raceColumn.getName(), fleet.getName(), new AsyncCallback<Void>() {
@@ -1635,4 +1635,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages,
String favoriteBoatClasses();
String notificationAboutNewResults();
String notificationAboutUpcomingRaces();
String notificationRegattaConfigurationUpdatedUsingByMarks();
String warningOverrideRegattaConfigurationCourseDesignerToByMarks();
String allRacesHaveDenoted();
}
@@ -1607,4 +1607,7 @@ watchLive=Watch live
raceAnalysis=Race analysis
startAnalysis=Start analysis
winningLanes=Winning lanes
maximumNumberOfDiscards=Maximum number of discards
maximumNumberOfDiscards=Maximum number of discards
notificationRegattaConfigurationUpdatedUsingByMarks=Active regatta configuration was set, using the "By Marks" course designer.
warningOverrideRegattaConfigurationCourseDesignerToByMarks=Active regatta configuration already exists, but with the wrong course designer setting.\nWould you like to override course designer setting to "By Marks"?
allRacesHaveDenoted=All races have denoted for racelog tracking.
@@ -1592,4 +1592,5 @@ watchLive=Live mitverfolgen
raceAnalysis=Renn-Analyse
startAnalysis=Start-Analyse
winningLanes=Sieger-Kurse
maximumNumberOfDiscards=Maximale Anzahl von Streichern
maximumNumberOfDiscards=Maximale Anzahl von Streichern
warningOverrideRegattaConfigurationCourseDesignerToByMarks=Aktive Regattakonfiguration existiert bereits, verwendet aber den falschenKursdesigner.\nKursdesigner auf "By Marks" umstellen?