This commit is contained in:
Axel Müller
2014-09-25 16:52:52 +02:00
parent 8a6427fbc8
commit 7d290f0aa3
5 changed files with 31 additions and 35 deletions
@@ -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<AddSpecificRegatta> addSpecificRegattas;
private Iterable<RegattaDTO> 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<RegattaDTO> regattas = regattaListComposite.getSelectedRegattas();
Set<AddSpecificRegatta> selectedRegattas = new HashSet<AddSpecificRegatta>();
for(RegattaDTO regatta: regattas){
for(AddSpecificRegatta addSpecificRegatta: addSpecificRegattas){
if(regatta.getName().equals(((Regatta)addSpecificRegatta).getName())){
selectedRegattas.add(addSpecificRegatta);
}
}
}
List<RegattaDTO> selectedRegattas = regattaListComposite.getSelectedRegattas();
createEventDetails(selectedRegattas);
}
});
@@ -129,7 +120,7 @@ public class StructureImportManagementPanel extends FlowPanel {
add(vp);
}
private void createEventDetails(final Iterable<AddSpecificRegatta> regattas) {
private void createEventDetails(final Iterable<RegattaDTO> regattas) {
sailingService.getEvents(new AsyncCallback<List<EventDTO>>() {
@Override
public void onFailure(Throwable caught) {
@@ -156,13 +147,13 @@ public class StructureImportManagementPanel extends FlowPanel {
}
else {
sailingService.getRegattas(valueToValidate, new AsyncCallback<Iterable<AddSpecificRegatta>>() {
sailingService.getRegattas(valueToValidate, new AsyncCallback<Iterable<RegattaDTO>>() {
@Override
public void onFailure(Throwable caught) {
errorReporter.reportError("Error trying to load regattas");
}
@Override
public void onSuccess(Iterable<AddSpecificRegatta> regattas) {
public void onSuccess(Iterable<RegattaDTO> regattas) {
addSpecificRegattas = regattas;
fillRegattas(regattas);
importDetailsButton.setEnabled(true);
@@ -171,12 +162,8 @@ public class StructureImportManagementPanel extends FlowPanel {
}
}
private void fillRegattas(Iterable<AddSpecificRegatta> regattas) {
List<RegattaDTO> regattaDTOs = new ArrayList<RegattaDTO>();
for(AddSpecificRegatta regatta: regattas){
regattaDTOs.add(new RegattaDTO(((Regatta)regatta).getName(), null));
}
regattaListComposite.fillRegattas(regattaDTOs);
private void fillRegattas(Iterable<RegattaDTO> regattas) {
regattaListComposite.fillRegattas((List<RegattaDTO>)regattas);
}
private void createProgressBarAndLabel(int amountOfRegattas) {
@@ -216,7 +203,7 @@ public class StructureImportManagementPanel extends FlowPanel {
timer.scheduleRepeating(2000);
}
private void setDefaultRegatta(final Iterable<AddSpecificRegatta> selectedRegattas, final List<EventDTO> newEvent) {
private void setDefaultRegatta(final Iterable<RegattaDTO> selectedRegattas, final List<EventDTO> newEvent) {
sailingService.getEvents(new AsyncCallback<List<EventDTO>>() {
@Override
public void onFailure(Throwable caught) {
@@ -259,7 +246,7 @@ public class StructureImportManagementPanel extends FlowPanel {
}
private void createRegattas(final Iterable<AddSpecificRegatta> regattaNames, EventDTO newEvent, RegattaDTO defaultRegatta) {
private void createRegattas(final Iterable<RegattaDTO> regattaNames, EventDTO newEvent, RegattaDTO defaultRegatta) {
eventManagementPanel.fillEvents();
sailingService.createRegattaStructure(regattaNames, newEvent, defaultRegatta, new AsyncCallback<Void>() {
@Override
@@ -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<AddSpecificRegatta> getRegattas(String url);
Iterable<RegattaDTO> getRegattas(String url);
void updateLeaderboardScoreCorrectionMetadata(String leaderboardName, Date timePointOfLastCorrectionValidity,
String comment);
@@ -563,7 +564,7 @@ public interface SailingService extends RemoteService {
Set<RegattaStructureDTO> getRegattaStructure(List<String> regattaNames);
void createRegattaStructure(Iterable<AddSpecificRegatta> regattas,
void createRegattaStructure(Iterable<RegattaDTO> regattas,
EventDTO newEvent, RegattaDTO defaultRegatta);
}
@@ -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<RaceDTO> callback);
void getRegattas(String url, AsyncCallback<Iterable<AddSpecificRegatta>> asyncCallback);
void getRegattas(String url, AsyncCallback<Iterable<RegattaDTO>> asyncCallback);
void createRegattaStructure(Iterable<AddSpecificRegatta> regattaNames,
void createRegattaStructure(Iterable<RegattaDTO> regattaNames,
EventDTO newEvent, RegattaDTO defaultRegatta,
AsyncCallback<Void> asyncCallback);
@@ -3732,10 +3732,15 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
return defaultSeries;
}
public Iterable<AddSpecificRegatta> getRegattas(String url) {
public Iterable<RegattaDTO> getRegattas(String url) {
StructureImporter structureImporter = new StructureImporter(baseDomainFactory);
Iterable<RegattaJSON> parsedEvent = structureImporter.parseEvent(url);
return structureImporter.getRegattas(parsedEvent);
Set<RegattaDTO> regattaDTOs = new HashSet<RegattaDTO>();
Iterable<Regatta> regattas = structureImporter.getRegattas(parsedEvent);
for(Regatta regatta: regattas){
regattaDTOs.add(convertToRegattaDTO(regatta));
}
return regattaDTOs;
}
private List<String> createRegattasWithRaces(Iterable<AddSpecificRegatta> regattas, String eventName) {
@@ -3773,15 +3778,17 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
}
@Override
public void createRegattaStructure(final Iterable<AddSpecificRegatta> regattas, final EventDTO newEvent,
public void createRegattaStructure(final Iterable<RegattaDTO> regattas, final EventDTO newEvent,
final RegattaDTO defaultRegatta) {
final Set<AddSpecificRegatta> addSpecificRegattas = new HashSet<AddSpecificRegatta>();
for(Regatta regatta: regattas){
addSpecificRegattas.add((AddSpecificRegatta)regatta);
}
Runnable structureImportTask = new Runnable() {
@Override
public void run() {
final StructureImporter structureImporter = new StructureImporter();
final List<String> leaderboardNames = createRegattasWithRaces(regattas, newEvent.getName());
final List<String> leaderboardNames = createRegattasWithRaces(addSpecificRegattas, newEvent.getName());
createAndAddLeaderboardGroup(newEvent, leaderboardNames);
// structureImporter.setCompetitors(regattas, "");
structureImporter.setFinished(true);
@@ -83,9 +83,9 @@ public class StructureImporter {
return new EventImport().getRegattas(url);
}
public Iterable<AddSpecificRegatta> getRegattas(Iterable<RegattaJSON> regattas) {
public Iterable<Regatta> getRegattas(Iterable<RegattaJSON> regattas) {
Iterable<RegattaResults> parsedRegattas = parseRegattas(regattas);
Set<AddSpecificRegatta> addSpecificRegattas = new HashSet<AddSpecificRegatta>();
Set<Regatta> addSpecificRegattas = new HashSet<Regatta>();
for (RegattaResults result : parsedRegattas) {
Set<Race> races = new HashSet<Race>();
//assuming that the last element in getPersonOrBoatOrTeam is an event
@@ -98,7 +98,7 @@ public class StructureImporter {
// analyseStructure(structure);
LinkedHashMap<String, SeriesCreationParametersDTO> 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