bug5285 aftermath: made remote reference dialog robust against legacy case

This commit is contained in:
Axel Uhl committed 2020-07-24 01:29:28 +02:00
1 parent 3e56ab2d5c
commit 9c665b3820
2 files changed
+20 -18

No files matched your search

@@ -1,5 +1,13 @@
package com.sap.sailing.gwt.ui.adminconsole;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
@@ -15,13 +23,6 @@ import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
import com.sap.sailing.gwt.ui.shared.RemoteSailingServerReferenceDTO;
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
/**
* A dialog to set up events inclusion for given remote sailing server instance. There is a checkBox per event. If
* <code>includeRadio</code> is selected then just selected events will be loaded. If <code>excludeRadio</code> is
@@ -51,7 +52,8 @@ public class RemoteSailingServerEventsSelectionDialog extends DataEntryDialog<Re
callback);
this.stringMessages = stringMessages;
this.referenceDTO = referenceDTO;
this.allEvents = StreamSupport.stream(completeRemoteServerReference.getEvents().spliterator(), false)
this.allEvents = completeRemoteServerReference.getEvents() == null ? Collections.emptyList() :
StreamSupport.stream(completeRemoteServerReference.getEvents().spliterator(), false)
.sorted(Comparator.comparing(EventBaseDTO::getName)).collect(Collectors.toList());
this.selectedEvents = referenceDTO.getSelectedEvents();
}
@@ -75,16 +77,14 @@ public class RemoteSailingServerEventsSelectionDialog extends DataEntryDialog<Re
final Widget result;
if (allEvents.isEmpty()) {
getStatusLabel().setText(stringMessages.eventsListIsEmpty());
result = null;
} else {
eventsSelectionGrid = new Grid(allEvents.size(), 2);
final VerticalPanel mainPanel = new VerticalPanel();
mainPanel.setSpacing(10);
createEventsInclusionTypePanel(mainPanel);
addMultiSelectionPanel(mainPanel);
setupEventsSelectionForm(mainPanel);
result = mainPanel;
}
eventsSelectionGrid = new Grid(allEvents.size(), 2);
final VerticalPanel mainPanel = new VerticalPanel();
mainPanel.setSpacing(10);
createEventsInclusionTypePanel(mainPanel);
addMultiSelectionPanel(mainPanel);
setupEventsSelectionForm(mainPanel);
result = mainPanel;
return result;
}
@@ -33,11 +33,13 @@ public class RemoteSailingServerReferenceDTO extends NamedDTO {
public RemoteSailingServerReferenceDTO(String name, String url, boolean include,
List<UUID> selectedEventIds, Iterable<EventBaseDTO> events) {
this(name, url, include, selectedEventIds, events, /* error message */ null);
assert events != null;
}
public RemoteSailingServerReferenceDTO(String name, String url, boolean include,
List<UUID> selectedEventIds, Iterable<EventBaseDTO> events, String lastErrorMessage) {
super(name);
assert selectedEventIds != null;
this.url = url;
this.events = events;
this.include = include;
@@ -46,7 +48,7 @@ public class RemoteSailingServerReferenceDTO extends NamedDTO {
}
public RemoteSailingServerReferenceDTO(String name, String url, boolean include, String lastErrorMessage) {
this(name, url, include, /* selectedEventIds */ null, /* events */ null, lastErrorMessage);
this(name, url, include, /* selectedEventIds */ Collections.emptyList(), /* events */ Collections.emptySet(), lastErrorMessage);
}
public String getUrl() {