diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/StructureImportManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/StructureImportManagementPanel.java index 970ba0490a9..c7d44c7ba76 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/StructureImportManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/StructureImportManagementPanel.java @@ -32,7 +32,6 @@ import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.EventAndRegattaDTO; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; -import com.sap.sailing.server.operationaltransformation.AddSpecificRegatta; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; public class StructureImportManagementPanel extends FlowPanel { @@ -46,7 +45,7 @@ public class StructureImportManagementPanel extends FlowPanel { private Panel progressPanel; private TextBox jsonURLTextBox; private TextBox eventIDTextBox; - private Iterable addSpecificRegattas; + private Iterable addSpecificRegattas; private Button listRegattasButton; private Button importDetailsButton; @@ -86,15 +85,7 @@ public class StructureImportManagementPanel extends FlowPanel { importDetailsButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { - List regattas = regattaListComposite.getSelectedRegattas(); - Set selectedRegattas = new HashSet(); - for(RegattaDTO regatta: regattas){ - for(AddSpecificRegatta addSpecificRegatta: addSpecificRegattas){ - if(regatta.getName().equals(((Regatta)addSpecificRegatta).getName())){ - selectedRegattas.add(addSpecificRegatta); - } - } - } + List selectedRegattas = regattaListComposite.getSelectedRegattas(); createEventDetails(selectedRegattas); } }); @@ -129,7 +120,7 @@ public class StructureImportManagementPanel extends FlowPanel { add(vp); } - private void createEventDetails(final Iterable regattas) { + private void createEventDetails(final Iterable regattas) { sailingService.getEvents(new AsyncCallback>() { @Override public void onFailure(Throwable caught) { @@ -156,13 +147,13 @@ public class StructureImportManagementPanel extends FlowPanel { } else { - sailingService.getRegattas(valueToValidate, new AsyncCallback>() { + sailingService.getRegattas(valueToValidate, new AsyncCallback>() { @Override public void onFailure(Throwable caught) { errorReporter.reportError("Error trying to load regattas"); } @Override - public void onSuccess(Iterable regattas) { + public void onSuccess(Iterable regattas) { addSpecificRegattas = regattas; fillRegattas(regattas); importDetailsButton.setEnabled(true); @@ -171,12 +162,8 @@ public class StructureImportManagementPanel extends FlowPanel { } } - private void fillRegattas(Iterable regattas) { - List regattaDTOs = new ArrayList(); - for(AddSpecificRegatta regatta: regattas){ - regattaDTOs.add(new RegattaDTO(((Regatta)regatta).getName(), null)); - } - regattaListComposite.fillRegattas(regattaDTOs); + private void fillRegattas(Iterable regattas) { + regattaListComposite.fillRegattas((List)regattas); } private void createProgressBarAndLabel(int amountOfRegattas) { @@ -216,7 +203,7 @@ public class StructureImportManagementPanel extends FlowPanel { timer.scheduleRepeating(2000); } - private void setDefaultRegatta(final Iterable selectedRegattas, final List newEvent) { + private void setDefaultRegatta(final Iterable selectedRegattas, final List newEvent) { sailingService.getEvents(new AsyncCallback>() { @Override public void onFailure(Throwable caught) { @@ -259,7 +246,7 @@ public class StructureImportManagementPanel extends FlowPanel { } - private void createRegattas(final Iterable regattaNames, EventDTO newEvent, RegattaDTO defaultRegatta) { + private void createRegattas(final Iterable regattaNames, EventDTO newEvent, RegattaDTO defaultRegatta) { eventManagementPanel.fillEvents(); sailingService.createRegattaStructure(regattaNames, newEvent, defaultRegatta, new AsyncCallback() { @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index 012c18ade5f..255e7f4d805 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -10,6 +10,7 @@ import java.util.UUID; import com.google.gwt.user.client.rpc.RemoteService; import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.RemoteSailingServerReference; import com.sap.sailing.domain.common.DataImportProgress; import com.sap.sailing.domain.common.DetailType; @@ -341,7 +342,7 @@ public interface SailingService extends RemoteService { void addResultImportUrl(String resultProviderName, String url) throws Exception; - Iterable getRegattas(String url); + Iterable getRegattas(String url); void updateLeaderboardScoreCorrectionMetadata(String leaderboardName, Date timePointOfLastCorrectionValidity, String comment); @@ -563,7 +564,7 @@ public interface SailingService extends RemoteService { Set getRegattaStructure(List regattaNames); - void createRegattaStructure(Iterable regattas, + void createRegattaStructure(Iterable regattas, EventDTO newEvent, RegattaDTO defaultRegatta); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index b97f122935a..db24785c047 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -9,6 +9,7 @@ import java.util.Set; import java.util.UUID; import com.google.gwt.user.client.rpc.AsyncCallback; +import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.RemoteSailingServerReference; import com.sap.sailing.domain.common.DataImportProgress; import com.sap.sailing.domain.common.DetailType; @@ -642,9 +643,9 @@ public interface SailingServiceAsync { void setStartTimeReceivedForRace(RaceIdentifier raceIdentifier, Date newStartTimeReceived, AsyncCallback callback); - void getRegattas(String url, AsyncCallback> asyncCallback); + void getRegattas(String url, AsyncCallback> asyncCallback); - void createRegattaStructure(Iterable regattaNames, + void createRegattaStructure(Iterable regattaNames, EventDTO newEvent, RegattaDTO defaultRegatta, AsyncCallback asyncCallback); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index f74b8c90c28..a748689ab0c 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -3732,10 +3732,15 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S return defaultSeries; } - public Iterable getRegattas(String url) { + public Iterable getRegattas(String url) { StructureImporter structureImporter = new StructureImporter(baseDomainFactory); Iterable parsedEvent = structureImporter.parseEvent(url); - return structureImporter.getRegattas(parsedEvent); + Set regattaDTOs = new HashSet(); + Iterable regattas = structureImporter.getRegattas(parsedEvent); + for(Regatta regatta: regattas){ + regattaDTOs.add(convertToRegattaDTO(regatta)); + } + return regattaDTOs; } private List createRegattasWithRaces(Iterable regattas, String eventName) { @@ -3773,15 +3778,17 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public void createRegattaStructure(final Iterable regattas, final EventDTO newEvent, + public void createRegattaStructure(final Iterable regattas, final EventDTO newEvent, final RegattaDTO defaultRegatta) { - + final Set addSpecificRegattas = new HashSet(); + for(Regatta regatta: regattas){ + addSpecificRegattas.add((AddSpecificRegatta)regatta); + } Runnable structureImportTask = new Runnable() { - @Override public void run() { final StructureImporter structureImporter = new StructureImporter(); - final List leaderboardNames = createRegattasWithRaces(regattas, newEvent.getName()); + final List leaderboardNames = createRegattasWithRaces(addSpecificRegattas, newEvent.getName()); createAndAddLeaderboardGroup(newEvent, leaderboardNames); // structureImporter.setCompetitors(regattas, ""); structureImporter.setFinished(true); diff --git a/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java b/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java index 6e69355df21..a22400c8f43 100755 --- a/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java +++ b/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java @@ -83,9 +83,9 @@ public class StructureImporter { return new EventImport().getRegattas(url); } - public Iterable getRegattas(Iterable regattas) { + public Iterable getRegattas(Iterable regattas) { Iterable parsedRegattas = parseRegattas(regattas); - Set addSpecificRegattas = new HashSet(); + Set addSpecificRegattas = new HashSet(); for (RegattaResults result : parsedRegattas) { Set races = new HashSet(); //assuming that the last element in getPersonOrBoatOrTeam is an event @@ -98,7 +98,7 @@ public class StructureImporter { // analyseStructure(structure); LinkedHashMap seriesCreationParams = setSeriesCreationParameters( buildStructure, false, false, false, null); - addSpecificRegattas.add( new AddSpecificRegatta(RegattaImpl.getDefaultName(event.getTitle(), + addSpecificRegattas.add((Regatta)new AddSpecificRegatta(RegattaImpl.getDefaultName(event.getTitle(), ((Division) event.getRaceOrDivisionOrRegattaSeriesResult().get(0)).getTitle()), ((Division) event .getRaceOrDivisionOrRegattaSeriesResult().get(0)).getTitle(), event.getEventID(), new RegattaCreationParametersDTO(seriesCreationParams), false, this.baseDomainFactory