mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-16 10:48:47 +00:00
bug6275: add cloning the course areas option
This commit is contained in:
+1
-1
@@ -20,7 +20,7 @@ public class EventCreateDialog extends EventDialog {
|
||||
public EventCreateDialog(Collection<EventDTO> existingEvents, List<LeaderboardGroupDTO> availableLeaderboardGroups,
|
||||
SailingServiceWriteAsync sailingServiceWrite, StringMessages stringMessages, DialogCallback<EventDTO> callback) {
|
||||
super(new EventParameterValidator(stringMessages, existingEvents), sailingServiceWrite, stringMessages,
|
||||
availableLeaderboardGroups, /* leaderboardGroups */ Collections.<LeaderboardGroupDTO>emptyList(), callback);
|
||||
availableLeaderboardGroups, /* leaderboardGroups */ Collections.<LeaderboardGroupDTO>emptyList(), existingEvents, callback);
|
||||
nameEntryField = createTextBox(null);
|
||||
nameEntryField.setVisibleLength(50);
|
||||
nameEntryField.ensureDebugId("NameTextBox");
|
||||
|
||||
+35
-2
@@ -15,7 +15,9 @@ import com.google.gwt.event.logical.shared.ValueChangeHandler;
|
||||
import com.google.gwt.user.client.ui.CheckBox;
|
||||
import com.google.gwt.user.client.ui.FocusWidget;
|
||||
import com.google.gwt.user.client.ui.Grid;
|
||||
import com.google.gwt.user.client.ui.HorizontalPanel;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.ListBox;
|
||||
import com.google.gwt.user.client.ui.ScrollPanel;
|
||||
import com.google.gwt.user.client.ui.TabLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.TextArea;
|
||||
@@ -57,6 +59,7 @@ public abstract class EventDialog extends DataEntryDialogWithDateTimeBox<EventDT
|
||||
protected VideosListComposite videosListComposite;
|
||||
protected ExternalLinksComposite externalLinksComposite;
|
||||
private final FileStorageServiceConnectionTestObservable storageServiceAvailable;
|
||||
private final List<EventDTO> existingEvents;
|
||||
|
||||
protected static class EventParameterValidator implements Validator<EventDTO> {
|
||||
|
||||
@@ -124,11 +127,12 @@ public abstract class EventDialog extends DataEntryDialogWithDateTimeBox<EventDT
|
||||
*/
|
||||
public EventDialog(EventParameterValidator validator, SailingServiceWriteAsync sailingServiceWrite,
|
||||
StringMessages stringMessages, List<LeaderboardGroupDTO> availableLeaderboardGroups,
|
||||
Iterable<LeaderboardGroupDTO> leaderboardGroupsOfEvent, DialogCallback<EventDTO> callback) {
|
||||
Iterable<LeaderboardGroupDTO> leaderboardGroupsOfEvent, Collection<EventDTO> existingEvents, DialogCallback<EventDTO> callback) {
|
||||
super(stringMessages.event(), null, stringMessages.ok(), stringMessages.cancel(), validator, callback);
|
||||
this.ensureDebugId("eventDialog");
|
||||
this.storageServiceAvailable = new FileStorageServiceConnectionTestObservable(sailingServiceWrite);
|
||||
this.stringMessages = stringMessages;
|
||||
this.existingEvents = new ArrayList<>(existingEvents);
|
||||
this.availableLeaderboardGroupsByName = new HashMap<>();
|
||||
for (final LeaderboardGroupDTO lgDTO : availableLeaderboardGroups) {
|
||||
availableLeaderboardGroupsByName.put(lgDTO.getName(), lgDTO);
|
||||
@@ -241,7 +245,36 @@ public abstract class EventDialog extends DataEntryDialogWithDateTimeBox<EventDT
|
||||
final ScrollPanel leaderboardGroupTab = new ScrollPanel(leaderboardGroupList);
|
||||
leaderboardGroupTab.ensureDebugId("LeaderboardGroupsTab");
|
||||
tabPanel.add(leaderboardGroupTab, stringMessages.leaderboardGroups());
|
||||
final ScrollPanel courseAreasTab = new ScrollPanel(courseAreaNameList);
|
||||
final VerticalPanel courseAreasPanel = new VerticalPanel();
|
||||
final ListBox copyFromEventDropDown = createListBox(false);
|
||||
copyFromEventDropDown.addItem(stringMessages.pleaseSelect());
|
||||
for (final EventDTO event : existingEvents) {
|
||||
copyFromEventDropDown.addItem(event.getName(), event.getName());
|
||||
}
|
||||
copyFromEventDropDown.addChangeHandler(e -> {
|
||||
final int selectedIndex = copyFromEventDropDown.getSelectedIndex();
|
||||
if (selectedIndex > 0) {
|
||||
final String selectedEventName = copyFromEventDropDown.getValue(selectedIndex);
|
||||
for (final EventDTO event : existingEvents) {
|
||||
if (event.getName().equals(selectedEventName)) {
|
||||
// copy with fresh UUIDs so these become independent course areas of this event
|
||||
final List<CourseAreaDTO> copies = new ArrayList<>();
|
||||
for (final CourseAreaDTO area : event.getVenue().getCourseAreas()) {
|
||||
copies.add(new CourseAreaDTO(UUID.randomUUID(), area.getName(), area.getCenterPosition(), area.getRadius()));
|
||||
}
|
||||
courseAreaNameList.setValue(copies);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
final HorizontalPanel copyFromPanel = new HorizontalPanel();
|
||||
copyFromPanel.setSpacing(3);
|
||||
copyFromPanel.add(new Label(stringMessages.copyCourseAreasFromEvent()));
|
||||
copyFromPanel.add(copyFromEventDropDown);
|
||||
courseAreasPanel.add(copyFromPanel);
|
||||
courseAreasPanel.add(courseAreaNameList);
|
||||
final ScrollPanel courseAreasTab = new ScrollPanel(courseAreasPanel);
|
||||
courseAreasTab.ensureDebugId("CourseAreasTab");
|
||||
tabPanel.add(courseAreasTab, stringMessages.courseAreas());
|
||||
final ScrollPanel imagesTab = new ScrollPanel(imagesListComposite);
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ import com.sap.sse.gwt.client.controls.datetime.DateTimeInput.Accuracy;
|
||||
public class EventEditDialog extends EventDialog {
|
||||
public EventEditDialog(EventDTO event, Collection<EventDTO> otherExistingEvents, List<LeaderboardGroupDTO> availableLeaderboardGroups,
|
||||
SailingServiceWriteAsync sailingServiceWrite, StringMessages stringMessages, DialogCallback<EventDTO> callback, MediaServiceAsync mediaService) {
|
||||
super(new EventParameterValidator(stringMessages, otherExistingEvents), sailingServiceWrite, stringMessages, availableLeaderboardGroups, event.getLeaderboardGroups(), callback);
|
||||
super(new EventParameterValidator(stringMessages, otherExistingEvents), sailingServiceWrite, stringMessages, availableLeaderboardGroups, event.getLeaderboardGroups(), otherExistingEvents, callback);
|
||||
nameEntryField = createTextBox(event.getName());
|
||||
nameEntryField.setVisibleLength(50);
|
||||
descriptionEntryField = createTextArea(event.getDescription());
|
||||
|
||||
+1
@@ -1457,6 +1457,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages,
|
||||
String createDefaultRegattaLeaderboard();
|
||||
String doYouWantToCreateADefaultRegattaLeaderboard();
|
||||
String copyCourse();
|
||||
String copyCourseAreasFromEvent();
|
||||
String copyCompetitors();
|
||||
String smartphoneTracking();
|
||||
String titelOfChooseNameDialog();
|
||||
|
||||
+1
@@ -1484,6 +1484,7 @@ registerCompetitors=Register Competitors
|
||||
registerBoats=Register Boats
|
||||
doYouWantToCreateADefaultRegattaLeaderboard=Do you want to create a default Regatta Leaderboard?
|
||||
copyCourse=Copy Course
|
||||
copyCourseAreasFromEvent=Copy course areas from event
|
||||
copyCompetitors=Copy Competitors
|
||||
smartphoneTracking=Smartphone Tracking
|
||||
titelOfChooseNameDialog=Choose a name
|
||||
|
||||
+1
@@ -1454,6 +1454,7 @@ registerCompetitors=Teilnehmer anmelden
|
||||
registerBoats=Boote anmelden
|
||||
doYouWantToCreateADefaultRegattaLeaderboard=Möchten Sie eine Standardrangliste für die Regatta anlegen?
|
||||
copyCourse=Kurs kopieren
|
||||
copyCourseAreasFromEvent=Regattabahnen von Veranstaltung kopieren
|
||||
copyCompetitors=Teilnehmer kopieren
|
||||
smartphoneTracking=Smartphone Tracking
|
||||
titelOfChooseNameDialog= Wählen sie einen Namen
|
||||
|
||||
Reference in New Issue
Block a user