mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-15 06:49:56 +00:00
bug5288: fixed StructureImportManagementPanel regarding Events list update after merge
This commit is contained in:
1 parent
86cff65bfb
commit
9e61db6d08
3 files changed
+24
-29
No files matched your search
+3
-5
@@ -33,7 +33,6 @@ import com.sap.sailing.domain.common.dto.CourseAreaDTO;
|
||||
import com.sap.sailing.domain.common.racelog.AuthorPriority;
|
||||
import com.sap.sailing.domain.common.security.SecuredDomainType;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.places.AdminConsoleView.Presenter;
|
||||
import com.sap.sailing.gwt.ui.client.Displayer;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO;
|
||||
@@ -52,7 +51,7 @@ import com.sap.sse.security.shared.HasPermissions.DefaultActions;
|
||||
import com.sap.sse.security.shared.dto.UserDTO;
|
||||
import com.sap.sse.security.ui.client.UserService;
|
||||
|
||||
public class DeviceConfigurationDetailComposite extends Composite implements Displayer<EventDTO> {
|
||||
public class DeviceConfigurationDetailComposite extends Composite {
|
||||
private final AdminConsoleResources resources = GWT.create(AdminConsoleResources.class);
|
||||
|
||||
protected final SailingServiceWriteAsync sailingServiceWrite;
|
||||
@@ -143,7 +142,7 @@ public class DeviceConfigurationDetailComposite extends Composite implements Dis
|
||||
initWidget(captionPanel);
|
||||
setConfiguration(/* configuration to display */ null);
|
||||
this.userService = presenter.getUserService();
|
||||
presenter.getEventsRefresher().addDisplayerAndCallFillOnInit(this);
|
||||
presenter.getEventsRefresher().addDisplayerAndCallFillOnInit(eventDTOs->fillEvents(eventDTOs));
|
||||
}
|
||||
|
||||
private ListBox createPriorityListBox() {
|
||||
@@ -155,8 +154,7 @@ public class DeviceConfigurationDetailComposite extends Composite implements Dis
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fill(Iterable<EventDTO> events) {
|
||||
private void fillEvents(Iterable<EventDTO> events) {
|
||||
eventListBox.clear();
|
||||
eventsById.clear();
|
||||
eventListBox.addItem(stringMessages.selectSailingEvent(), "");
|
||||
|
||||
+20
-21
@@ -71,6 +71,8 @@ public class StructureImportManagementPanel extends SimplePanel implements Regat
|
||||
private List<EventDTO> existingEvents;
|
||||
private ListBox sailingEventsListBox;
|
||||
|
||||
private final Displayer<EventDTO> eventsDisplayer;
|
||||
|
||||
/**
|
||||
* Holds one {@link RegattaDTO} for each distinct regatta structure. The user can work with this panel
|
||||
* to adjust the defaults for each structure recognized, working with the table selection to show/hide
|
||||
@@ -105,6 +107,7 @@ public class StructureImportManagementPanel extends SimplePanel implements Regat
|
||||
this.stringMessages = stringMessages;
|
||||
this.presenter = presenter;
|
||||
this.regattaListComposite = new StructureImportListComposite(presenter, this, errorReporter, stringMessages);
|
||||
this.eventsDisplayer = result->fillEvents(result);
|
||||
regattaListComposite.ensureDebugId("RegattaListComposite");
|
||||
VerticalPanel mainPanel = new VerticalPanel();
|
||||
setWidget(mainPanel);
|
||||
@@ -189,7 +192,7 @@ public class StructureImportManagementPanel extends SimplePanel implements Regat
|
||||
* Adds an event selector and a "create new event" button to the {@link #editSeriesPanel} in its first row
|
||||
*/
|
||||
private Widget createEventSelectionAndCreateEventButtonUI() {
|
||||
Grid grid = new Grid(1, 2);
|
||||
final Grid grid = new Grid(1, 2);
|
||||
sailingEventsListBox = new ListBox();
|
||||
sailingEventsListBox.setMultipleSelect(false);
|
||||
sailingEventsListBox.addChangeHandler(new ChangeHandler() {
|
||||
@@ -198,9 +201,10 @@ public class StructureImportManagementPanel extends SimplePanel implements Regat
|
||||
updateImportRegattasButtonEnabledness();
|
||||
}
|
||||
});
|
||||
presenter.getEventsRefresher().callFillAndReloadInitially(getEventsDisplayer());
|
||||
sailingEventsListBox.ensureDebugId("EventListBox");
|
||||
grid.setWidget(0, 0, sailingEventsListBox);
|
||||
Button newEventBtn = new Button(stringMessages.createNewEvent());
|
||||
final Button newEventBtn = new Button(stringMessages.createNewEvent());
|
||||
newEventBtn.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
@@ -419,7 +423,6 @@ public class StructureImportManagementPanel extends SimplePanel implements Regat
|
||||
}
|
||||
|
||||
private void createRegattas(final Iterable<RegattaDTO> selectedOriginalRegattasFromXRR, EventDTO newEvent) {
|
||||
|
||||
final List<RegattaDTO> regattaConfigurationsToCreate = new ArrayList<>();
|
||||
for (RegattaDTO originalRegattaFromXRR : selectedOriginalRegattasFromXRR) {
|
||||
RegattaDTO cloneFromDefaults = new RegattaDTO(regattaDefaultsPerStructure.get(regattaStructures.get(originalRegattaFromXRR)));
|
||||
@@ -455,30 +458,26 @@ public class StructureImportManagementPanel extends SimplePanel implements Regat
|
||||
return regattaStructures.get(regatta);
|
||||
}
|
||||
|
||||
private final Displayer<EventDTO> eventsDisplayer = new Displayer<EventDTO>() {
|
||||
@Override
|
||||
public void fill(Iterable<EventDTO> result) {
|
||||
fillEvents(result);
|
||||
}
|
||||
};
|
||||
|
||||
public Displayer<EventDTO> getEventsDisplayer() {
|
||||
return eventsDisplayer;
|
||||
}
|
||||
|
||||
private void fillEvents(Iterable<EventDTO> result) {
|
||||
existingEvents = new ArrayList<EventDTO>();
|
||||
result.forEach(existingEvents::add);
|
||||
Collections.sort(existingEvents, new Comparator<EventDTO>() {
|
||||
private final NaturalComparator comp = new NaturalComparator();
|
||||
@Override
|
||||
public int compare(EventDTO o1, EventDTO o2) {
|
||||
return comp.compare(o1.getName(), o2.getName());
|
||||
if (sailingEventsListBox != null) { // is initialized only one a regatta structure has been loaded
|
||||
sailingEventsListBox.clear();
|
||||
existingEvents = new ArrayList<EventDTO>();
|
||||
result.forEach(existingEvents::add);
|
||||
Collections.sort(existingEvents, new Comparator<EventDTO>() {
|
||||
private final NaturalComparator comp = new NaturalComparator();
|
||||
@Override
|
||||
public int compare(EventDTO o1, EventDTO o2) {
|
||||
return comp.compare(o1.getName(), o2.getName());
|
||||
}
|
||||
});
|
||||
sailingEventsListBox.addItem(stringMessages.selectSailingEvent());
|
||||
for (EventDTO event : existingEvents) {
|
||||
sailingEventsListBox.addItem(event.getName());
|
||||
}
|
||||
});
|
||||
sailingEventsListBox.addItem(stringMessages.selectSailingEvent());
|
||||
for (EventDTO event : existingEvents) {
|
||||
sailingEventsListBox.addItem(event.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-3
@@ -20,8 +20,7 @@ public class StructureImportManagementPanelSupplier extends AdminConsolePanelSup
|
||||
@Override
|
||||
public StructureImportManagementPanel init() {
|
||||
logger.info("Create StructureImportManagementPanel");
|
||||
StructureImportManagementPanel structureImportUrlsManagementPanel = new StructureImportManagementPanel(
|
||||
presenter, stringMessages);
|
||||
StructureImportManagementPanel structureImportUrlsManagementPanel = new StructureImportManagementPanel(presenter, stringMessages);
|
||||
structureImportUrlsManagementPanel.ensureDebugId("structureImportUrlsManagementPanel");
|
||||
presenter.getEventsRefresher().addDisplayerAndCallFillOnInit(structureImportUrlsManagementPanel.getEventsDisplayer());
|
||||
return structureImportUrlsManagementPanel;
|
||||
@@ -42,5 +41,4 @@ public class StructureImportManagementPanelSupplier extends AdminConsolePanelSup
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user