fix for bug 2622: update the series in strict order, synchronously, when editing regatta through UI

This commit is contained in:
Axel Uhl committed 2015-09-22 21:09:29 +02:00
1 parent be0ac550dd
commit 8313b793ce
1 file changed
+27 -17
@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import com.google.gwt.cell.client.AbstractCell;
@@ -317,23 +318,32 @@ public class RegattaListComposite extends Composite implements RegattasDisplayer
}
}));
for (SeriesDTO series : editedRegatta.series) {
sailingService.updateSeries(regattaName, series.getName(), series.getName(), series.isMedal(),
series.getDiscardThresholds(), series.isStartsWithZeroScore(),
series.isFirstColumnIsNonDiscardableCarryForward(), series.hasSplitFleetContiguousScoring(),
series.getFleets(), new MarkedAsyncCallback<Void>(new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
errorReporter.reportError("Error trying to update regatta " + editedRegatta.getName()
+ ": " + caught.getMessage());
}
@Override
public void onSuccess(Void result) {
regattaRefresher.fillRegattas();
}
}));
}
final Iterator<SeriesDTO> seriesIter = editedRegatta.series.iterator();
final Runnable r = new Runnable() {
@Override
public void run() {
if (seriesIter.hasNext()) {
final SeriesDTO series = seriesIter.next();
sailingService.updateSeries(regattaName, series.getName(), series.getName(), series.isMedal(),
series.getDiscardThresholds(), series.isStartsWithZeroScore(),
series.isFirstColumnIsNonDiscardableCarryForward(), series.hasSplitFleetContiguousScoring(),
series.getFleets(), new MarkedAsyncCallback<Void>(new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
errorReporter.reportError("Error trying to update regatta " + editedRegatta.getName()
+ ": " + caught.getMessage());
}
@Override
public void onSuccess(Void result) {
regattaRefresher.fillRegattas();
run(); // update next series if iterator has next element
}
}));
}
}
};
r.run();
}
protected List<RegattaDTO> getSelectedRegattas() {