diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java index f9d42efd365..b7299e28175 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java @@ -14,10 +14,12 @@ import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.ScoringSchemeType; import com.sap.sailing.domain.common.dto.BoatClassDTO; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sailing.gwt.ui.client.shared.controls.listedit.ListEditorComposite; import com.sap.sailing.gwt.ui.leaderboard.ScoringSchemeTypeFormatter; import com.sap.sailing.gwt.ui.shared.CourseAreaDTO; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; +import com.sap.sailing.gwt.ui.shared.SeriesDTO; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEntryDialog { @@ -29,6 +31,7 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn protected ListBox courseAreaListBox; protected ListBox sailingEventsListBox; protected CheckBox useStartTimeInferenceCheckBox; + protected ListEditorComposite seriesEditor; protected List existingEvents; @@ -110,6 +113,8 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn } return false; } + + protected abstract void setSeriesEditor(); private void setupEventAndCourseAreaListBoxes(StringMessages stringMessages) { sailingEventsListBox.addItem(stringMessages.selectSailingEvent()); @@ -189,6 +194,7 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn regatta.scoringScheme = getSelectedScoringSchemeType(); regatta.useStartTimeInference = useStartTimeInferenceCheckBox.getValue(); setCourseAreaInRegatta(regatta); + regatta.series = seriesEditor.getValue(); return regatta; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DefaultRegattaCreateDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DefaultRegattaCreateDialog.java index 764e3714647..fafa6e5352c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DefaultRegattaCreateDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DefaultRegattaCreateDialog.java @@ -2,13 +2,16 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.List; +import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Grid; +import com.google.gwt.user.client.ui.TabPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; @@ -17,9 +20,12 @@ import com.sap.sailing.gwt.ui.shared.CourseAreaDTO; 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.gwt.ui.shared.SeriesDTO; public class DefaultRegattaCreateDialog extends AbstractRegattaWithSeriesAndFleetsDialog { + + private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); private SailingServiceAsync sailingService; private ErrorReporter errorReporter; @@ -31,21 +37,21 @@ public class DefaultRegattaCreateDialog extends ErrorReporter errorReporter, StringMessages stringConstants, com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback callback) { - super(new RegattaDTO(), existingEvents, stringConstants.addRegatta(), - stringConstants.ok(), stringConstants, + super(new RegattaDTO(), existingEvents, + "Create default settings for all regattas...", stringConstants + .ok(), stringConstants, null /* RegattaParameterValidator */, callback); this.sailingService = sailingService; this.errorReporter = errorReporter; setCourseAreaSelection(); - + setSeriesEditor(); } - // protected void setSeriesEditor() { - // this.seriesEditor = new - // SeriesWithFleetsDefaultListEditor(Collections. emptyList(), - // stringMessages, - // resources.removeIcon(), /* enableFleetRemoval */true); - // } + protected void setSeriesEditor() { + seriesEditor = new SeriesWithFleetsDefaultListEditor( + Collections. emptyList(), stringMessages, + resources.removeIcon(), /* enableFleetRemoval */true); + } protected void setupAdditionalWidgetsOnPanel(final VerticalPanel panel) { Button newEventBtn = new Button("Create New Event"); @@ -68,6 +74,12 @@ public class DefaultRegattaCreateDialog extends newGrid.setWidget(3, 2, newEventBtn); panel.remove(0); panel.add(newGrid); + + TabPanel tabPanel = new TabPanel(); + tabPanel.setWidth("100%"); + tabPanel.add(seriesEditor, stringMessages.series()); + tabPanel.selectTab(0); + panel.add(tabPanel); } private void openEventCreateDialog() { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaStructureManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaStructureManagementPanel.java index 57fb4a0c8c2..d316e7cd616 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaStructureManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaStructureManagementPanel.java @@ -111,29 +111,6 @@ public class RegattaStructureManagementPanel extends SimplePanel implements Rega regattaDetailsComposite.setVisible(false); grid.setWidget(0, 1, regattaDetailsComposite); } - -// private void showRegattaStructure(RegattaStructure regattaStructure){ -// Grid grid = new Grid(); -// -// Button editBtn = new Button("Edit Series"); -// editBtn.addClickHandler(new ClickHandler() { -// -// @Override -// public void onClick(ClickEvent event) { -// //TODO: open Dialog to edit default series -// } -// }); -// -// Iterable structure = regattaStructure.getStructure(); -// int i = 0; -// for (String string : structure) { -// grid.setWidget(i, 0, new Label(string)); -// grid.setWidget(i, 0, editBtn); -// i++; -// } -// -// -// } protected void removeRegattas(Collection regattas) { if (!regattas.isEmpty()) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsCreateDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsCreateDialog.java index c3e5eea5833..05964c79290 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsCreateDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsCreateDialog.java @@ -10,7 +10,6 @@ import com.google.gwt.core.shared.GWT; import com.google.gwt.user.client.ui.TabPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.client.shared.controls.listedit.ListEditorComposite; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.SeriesDTO; @@ -19,8 +18,6 @@ public class RegattaWithSeriesAndFleetsCreateDialog extends RegattaWithSeriesAnd protected static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); - protected ListEditorComposite seriesEditor; - protected static class RegattaParameterValidator implements Validator { private StringMessages stringMessages; @@ -101,6 +98,7 @@ public class RegattaWithSeriesAndFleetsCreateDialog extends RegattaWithSeriesAnd setSeriesEditor(); } + @Override protected void setSeriesEditor() { this.seriesEditor = new SeriesWithFleetsListEditor(Collections. emptyList(), stringMessages, resources.removeIcon(), /* enableFleetRemoval */true); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java index 8be95b37430..4080e139b6a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java @@ -14,12 +14,10 @@ import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.TabPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.client.shared.controls.listedit.ListEditorComposite; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO.RegattaConfigurationDTO; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; -import com.sap.sailing.gwt.ui.shared.SeriesDTO; public class RegattaWithSeriesAndFleetsEditDialog extends RegattaWithSeriesAndFleetsDialog { @@ -28,7 +26,6 @@ public class RegattaWithSeriesAndFleetsEditDialog extends RegattaWithSeriesAndFl protected Button regattaConfigurationButton; private RegattaConfigurationDTO currentRegattaConfiguration; - private ListEditorComposite seriesEditor; public RegattaWithSeriesAndFleetsEditDialog(RegattaDTO regatta, Collection existingRegattas, List existingEvents, final StringMessages stringMessages, DialogCallback callback) { @@ -72,10 +69,14 @@ public class RegattaWithSeriesAndFleetsEditDialog extends RegattaWithSeriesAndFl }); regattaConfigurationCheckbox.setValue(regatta.configuration != null); regattaConfigurationButton.setEnabled(regatta.configuration != null); - - this.seriesEditor = new SeriesWithFleetsListEditor(regatta.series, stringMessages, resources.removeIcon(), /* enableFleetRemoval */ - false); } + + + @Override + protected void setSeriesEditor() { + seriesEditor = new SeriesWithFleetsListEditor(regatta.series, stringMessages, resources.removeIcon(), /* enableFleetRemoval */ + false); + } @Override public void show() { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesWithFleetsCreateDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesWithFleetsCreateDialog.java index 959c5b7ff52..07fbfc1974f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesWithFleetsCreateDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesWithFleetsCreateDialog.java @@ -31,7 +31,7 @@ public class SeriesWithFleetsCreateDialog extends DataEntryDialog { private SeriesDTO series; protected TextBox nameEntryField; - private CheckBox isMedalSeriesCheckbox; + protected CheckBox isMedalSeriesCheckbox; private CheckBox startsWithZeroScoreCheckbox; private CheckBox hasSplitFleetContiguousScoringCheckbox; private CheckBox firstColumnIsNonDiscardableCarryForwardCheckbox; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesWithFleetsDefaultCreateDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesWithFleetsDefaultCreateDialog.java index b219844ece5..a36f104f249 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesWithFleetsDefaultCreateDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesWithFleetsDefaultCreateDialog.java @@ -2,8 +2,10 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.Collection; +import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.TabPanel; import com.google.gwt.user.client.ui.VerticalPanel; +import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.SeriesDTO; @@ -15,19 +17,22 @@ public class SeriesWithFleetsDefaultCreateDialog extends StringMessages stringMessages, com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback callback) { super(existingSeries, stringMessages, callback); - // TODO Auto-generated constructor stub - } - - protected void setNameEntryField() { - super.setNameEntryField(); - nameEntryField.setReadOnly(true); - nameEntryField.setText("Default"); + nameEntryField.setText("default");//Otherwise an errorMessage will pop up } protected void addFleetListComposite(final VerticalPanel panel, TabPanel tabPanel) { //don't add the tabPanel with the FleetListComposite to the panel } + + @Override + protected Widget getAdditionalWidget() { + VerticalPanel panel = (VerticalPanel) super.getAdditionalWidget(); + Grid formGrid = (Grid) panel.getWidget(0); + formGrid.removeRow(0); + formGrid.removeRow(0); + return panel; + } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesWithFleetsDefaultListEditor.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesWithFleetsDefaultListEditor.java index 3b846cbf836..21c533b112b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesWithFleetsDefaultListEditor.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesWithFleetsDefaultListEditor.java @@ -14,54 +14,55 @@ import com.sap.sailing.gwt.ui.shared.SeriesDTO; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; public class SeriesWithFleetsDefaultListEditor extends - SeriesWithFleetsListEditor { + SeriesWithFleetsListEditor { - public SeriesWithFleetsDefaultListEditor(List initialValues, - StringMessages stringMessages, ImageResource removeImage, - boolean enableFleetRemoval) { - super(initialValues, stringMessages, removeImage, enableFleetRemoval); - // TODO Auto-generated constructor stub - } - - protected ListEditorUiStrategy createExpandedUi(StringMessages stringMessages, ImageResource removeImage, boolean enableFleetRemoval){ - return new ExpandedUiDefault(stringMessages, removeImage, enableFleetRemoval); - } - - private static class ExpandedUiDefault extends ExpandedUi{ + public SeriesWithFleetsDefaultListEditor(List initialValues, + StringMessages stringMessages, ImageResource removeImage, + boolean enableFleetRemoval) { + super(initialValues, stringMessages, removeImage, enableFleetRemoval); + } - public ExpandedUiDefault(StringMessages stringMessages, - ImageResource removeImage, boolean canRemoveItems) { - super(stringMessages, removeImage, canRemoveItems); - // TODO Auto-generated constructor stub - } - - protected Widget createAddWidget() { - Button addSeriesButton = new Button(stringMessages.setDefaultSeries()); - addSeriesButton.ensureDebugId("SetDefaultSeriesButton"); - addSeriesButton.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - SeriesWithFleetsDefaultCreateDialog dialog = new SeriesWithFleetsDefaultCreateDialog(Collections - .unmodifiableCollection(context.getValue()), stringMessages, new DialogCallback() { - @Override - public void cancel() { - } + protected ListEditorUiStrategy createExpandedUi( + StringMessages stringMessages, ImageResource removeImage, + boolean enableFleetRemoval) { + return new ExpandedUiDefault(stringMessages, removeImage, + enableFleetRemoval); + } - @Override - public void ok(SeriesDTO newSeries) { - addValue(newSeries); - } - }); - dialog.ensureDebugId("DefaultSeriesCreateDialog"); - dialog.show(); - } - }); - return addSeriesButton; - } - - } - - + private static class ExpandedUiDefault extends ExpandedUi { + + public ExpandedUiDefault(StringMessages stringMessages, + ImageResource removeImage, boolean canRemoveItems) { + super(stringMessages, removeImage, canRemoveItems); + } + + protected Widget createAddWidget() { + Button addSeriesButton = new Button( + stringMessages.setDefaultSeries()); + addSeriesButton.ensureDebugId("SetDefaultSeriesButton"); + addSeriesButton.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + SeriesWithFleetsDefaultCreateDialog dialog = new SeriesWithFleetsDefaultCreateDialog( + Collections.unmodifiableCollection(context + .getValue()), stringMessages, + new DialogCallback() { + @Override + public void cancel() { + } + + @Override + public void ok(SeriesDTO newSeries) { + addValue(newSeries); + } + }); + dialog.ensureDebugId("DefaultSeriesCreateDialog"); + dialog.show(); + } + }); + return addSeriesButton; + } + + } } - 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 cc9fe5d50e3..ebfcb9e47ff 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 @@ -2,13 +2,14 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Set; -import com.github.gwtbootstrap.client.ui.base.ProgressBarBase.Style; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; -import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.FlowPanel; @@ -22,239 +23,315 @@ import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.RegattaSelectionModel; -import com.sap.sailing.gwt.ui.client.RegattaSelectionProvider; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; 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.gwt.ui.shared.SeriesDTO; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; public class StructureImportManagementPanel extends FlowPanel { - private final SailingServiceAsync sailingService; - private final ErrorReporter errorReporter; - private final StringMessages stringMessages; - private final RegattaRefresher regattaRefresher; - private final EventManagementPanel eventManagementPanel; - private final StructureImportListComposite regattaListComposite; - private RegattaSelectionProvider regattaSelectionProvider; - private Panel progressPanel; - private TextBox jsonURLTextBox; - private TextBox eventIDTextBox; - private Iterable addSpecificRegattas; + private final SailingServiceAsync sailingService; + private final ErrorReporter errorReporter; + private final StringMessages stringMessages; + private final RegattaRefresher regattaRefresher; + private final EventManagementPanel eventManagementPanel; + private final StructureImportListComposite regattaListComposite; + private Panel progressPanel; + private TextBox jsonURLTextBox; + private TextBox eventIDTextBox; - private Button listRegattasButton; - private Button importDetailsButton; + private Button listRegattasButton; + private Button importDetailsButton; + private VerticalPanel editSeriesPanel; - private StructureImportProgressBar progressBar; - private Label overallName; - private int parsed; + public StructureImportManagementPanel(SailingServiceAsync sailingService, + ErrorReporter errorReporter, StringMessages stringMessages, + RegattaRefresher regattaRefresher, + EventManagementPanel eventManagementPanel) { + this.eventManagementPanel = eventManagementPanel; + this.sailingService = sailingService; + this.errorReporter = errorReporter; + this.stringMessages = stringMessages; + this.regattaRefresher = regattaRefresher; + this.regattaListComposite = new StructureImportListComposite( + this.sailingService, new RegattaSelectionModel(true), + this.regattaRefresher, this.errorReporter, this.stringMessages); + regattaListComposite.ensureDebugId("RegattaListComposite"); + createUI(); + } - public StructureImportManagementPanel(SailingServiceAsync sailingService, ErrorReporter errorReporter, - StringMessages stringMessages, RegattaRefresher regattaRefresher, EventManagementPanel eventManagementPanel) { - this.eventManagementPanel = eventManagementPanel; - this.sailingService = sailingService; - this.errorReporter = errorReporter; - this.stringMessages = stringMessages; - this.regattaRefresher = regattaRefresher; - this.regattaListComposite = new StructureImportListComposite(this.sailingService, - new RegattaSelectionModel(true), this.regattaRefresher, this.errorReporter, this.stringMessages); - regattaListComposite.ensureDebugId("RegattaListComposite"); - createUI(); + private void createUI() { + progressPanel = new FlowPanel(); + Grid URLgrid = new Grid(2, 2); + Label eventIDLabel = new Label(stringMessages.event() + ":"); + Label jsonURLLabel = new Label(stringMessages.jsonUrl() + ":"); + eventIDTextBox = new TextBox(); + eventIDTextBox.ensureDebugId("eventIDTextBox"); + eventIDTextBox.setVisibleLength(50); + jsonURLTextBox = new TextBox(); + jsonURLTextBox.ensureDebugId("JsonURLTextBox"); + jsonURLTextBox.setVisibleLength(100); + listRegattasButton = new Button(this.stringMessages.listRegattas()); + importDetailsButton = new Button(this.stringMessages.importRegatta()); + importDetailsButton.setEnabled(false); + importDetailsButton.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + List selectedRegattas = regattaListComposite + .getSelectedRegattas(); + createEventDetails(selectedRegattas); + } + }); + listRegattasButton.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + addUrl(); + } + }); + VerticalPanel vp = new VerticalPanel(); - } + HorizontalPanel buttonPanel = new HorizontalPanel(); + URLgrid.setWidget(0, 0, eventIDLabel); + URLgrid.setWidget(0, 1, eventIDTextBox); + URLgrid.setWidget(1, 0, jsonURLLabel); + URLgrid.setWidget(1, 1, jsonURLTextBox); + vp.add(URLgrid); + vp.add(buttonPanel); + buttonPanel.add(listRegattasButton); + buttonPanel.add(importDetailsButton); + Grid grid = new Grid(1, 1); + vp.add(grid); - private void createUI() { - progressPanel = new FlowPanel(); - Grid URLgrid = new Grid(2, 2); - Label eventIDLabel = new Label(stringMessages.event() + ":"); - Label jsonURLLabel = new Label(stringMessages.jsonUrl() + ":"); - eventIDTextBox = new TextBox(); - eventIDTextBox.ensureDebugId("eventIDTextBox"); - eventIDTextBox.setVisibleLength(50); - jsonURLTextBox = new TextBox(); - jsonURLTextBox.ensureDebugId("JsonURLTextBox"); - jsonURLTextBox.setVisibleLength(100); - listRegattasButton = new Button(this.stringMessages.listRegattas()); - importDetailsButton = new Button(this.stringMessages.importRegatta()); - importDetailsButton.setEnabled(false); - importDetailsButton.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - List selectedRegattas = regattaListComposite.getSelectedRegattas(); - createEventDetails(selectedRegattas); - } - }); - listRegattasButton.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - addUrl(); - } - }); - VerticalPanel vp = new VerticalPanel(); + grid.setWidget(0, 0, regattaListComposite); + grid.getRowFormatter().setVerticalAlign(0, + HasVerticalAlignment.ALIGN_TOP); + grid.getColumnFormatter().getElement(0/** 1 */ + ).getStyle().setPaddingTop(2.0, Unit.EM); - HorizontalPanel buttonPanel = new HorizontalPanel(); - URLgrid.setWidget(0, 0, eventIDLabel); - URLgrid.setWidget(0, 1, eventIDTextBox); - URLgrid.setWidget(1, 0, jsonURLLabel); - URLgrid.setWidget(1, 1, jsonURLTextBox); - vp.add(URLgrid); - vp.add(buttonPanel); - buttonPanel.add(listRegattasButton); - buttonPanel.add(importDetailsButton); - Grid grid = new Grid(1, 1); - vp.add(grid); + editSeriesPanel = new VerticalPanel(); - regattaSelectionProvider = new RegattaSelectionModel(true); + add(progressPanel); + add(vp); + add(editSeriesPanel); + } - grid.setWidget(0, 0, regattaListComposite); - grid.getRowFormatter().setVerticalAlign(0, HasVerticalAlignment.ALIGN_TOP); - grid.getColumnFormatter().getElement(0/** 1 */ - ).getStyle().setPaddingTop(2.0, Unit.EM); + private void createEventDetails(final Iterable regattas) { + sailingService.getEvents(new AsyncCallback>() { + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError("Error trying to get events"); + } - add(progressPanel); - add(vp); - } + @Override + public void onSuccess(List events) { + setDefaultRegatta(regattas, events); + } + }); + } - private void createEventDetails(final Iterable regattas) { - sailingService.getEvents(new AsyncCallback>() { - @Override - public void onFailure(Throwable caught) { - errorReporter.reportError("Error trying to get events"); - } - @Override - public void onSuccess(List events) { - setDefaultRegatta(regattas, events); - } - }); - } + private void addUrl() { + String valueToValidate = ""; + if (eventIDTextBox.getValue() == null + || eventIDTextBox.getValue().length() == 0) { + valueToValidate = jsonURLTextBox.getValue(); + } else { + valueToValidate = "http://manage2sail.com/api/public/links/event/" + + eventIDTextBox.getValue() + + "?accesstoken=bDAv8CwsTM94ujZ&mediaType=json"; + } - private void addUrl() { - String valueToValidate = ""; - if (eventIDTextBox.getValue() == null || eventIDTextBox.getValue().length() == 0) { - valueToValidate = jsonURLTextBox.getValue(); - } else { - valueToValidate = "http://manage2sail.com/api/public/links/event/" + eventIDTextBox.getValue() - + "?accesstoken=bDAv8CwsTM94ujZ&mediaType=json"; - } + if (valueToValidate == null || valueToValidate.length() == 0) { + errorReporter.reportError(stringMessages.pleaseEnterNonEmptyUrl()); + } - if (valueToValidate == null || valueToValidate.length() == 0) { - errorReporter.reportError(stringMessages.pleaseEnterNonEmptyUrl()); - } + else { + sailingService.getRegattas(valueToValidate, + new AsyncCallback>() { + @Override + public void onFailure(Throwable caught) { + errorReporter + .reportError("Error trying to load regattas"); + } - else { - sailingService.getRegattas(valueToValidate, new AsyncCallback>() { - @Override - public void onFailure(Throwable caught) { - errorReporter.reportError("Error trying to load regattas"); - } - @Override - public void onSuccess(Iterable regattas) { - addSpecificRegattas = regattas; - fillRegattas(regattas); - importDetailsButton.setEnabled(true); - } - }); - } - } + @Override + public void onSuccess(Iterable regattas) { + fillRegattas(regattas); + importDetailsButton.setEnabled(true); + LinkedHashMap, Set> structure = getRegattaStructure(regattas); + showRegattaStructure(structure); + } + }); + } + } - private void fillRegattas(Iterable regattas) { - regattaListComposite.fillRegattas((List)regattas); - } + private LinkedHashMap, Set> getRegattaStructure( + Iterable regattas) { + final LinkedHashMap, Set> structure = new LinkedHashMap, Set>(); - private void createProgressBarAndLabel(int amountOfRegattas) { - overallName = new Label(stringMessages.overallProgress() + ":"); - progressPanel.add(overallName); - progressBar = new StructureImportProgressBar(amountOfRegattas + 1, Style.ANIMATED); - progressPanel.add(progressBar); - } + // TODO change to enum + Set> staticStructures = new HashSet>(); + Set OPENINGMEDAL = new HashSet(); + OPENINGMEDAL.add("Opening Series"); + OPENINGMEDAL.add("Medal"); + staticStructures.add(OPENINGMEDAL); + Set QUALIFICATIONFINALSMEDAL = new HashSet(); + QUALIFICATIONFINALSMEDAL.add("Qualification"); + QUALIFICATIONFINALSMEDAL.add("Finals"); + QUALIFICATIONFINALSMEDAL.add("Medal"); + staticStructures.add(QUALIFICATIONFINALSMEDAL); + Set QUALIFICATIONFINALS = new HashSet(); + QUALIFICATIONFINALS.add("Qualification"); + QUALIFICATIONFINALS.add("Finals"); + staticStructures.add(QUALIFICATIONFINALS); + Set ONESERIES = new HashSet(); + ONESERIES.add("Default"); + staticStructures.add(ONESERIES); + Set UNDEFINED = new HashSet(); + UNDEFINED.add("Undefined"); + staticStructures.add(UNDEFINED); - private void setProgressBar(final int amountOfRegattas) { - createProgressBarAndLabel(amountOfRegattas); + for (Set struct : staticStructures) { + structure.put(struct, new HashSet()); + } - final Timer timer = new Timer() { - @Override - public void run() { - sailingService.getStructureImportOperationProgress(new AsyncCallback() { - @Override - public void onFailure(Throwable caught) { - errorReporter.reportError(stringMessages.errorAddingResultImportUrl(caught.getMessage())); - } + for (RegattaDTO regatta : regattas) { + Set temp = new HashSet(); + for (SeriesDTO series : regatta.series) { + temp.add(series.getName()); + } + if (temp.isEmpty()) { + structure.get(UNDEFINED).add(regatta); + } else { + for (Set struct : staticStructures) { + if (struct.equals(temp)) { + structure.get(struct).add(regatta); + break; + } + } + } + } + return structure; + } - @Override - public void onSuccess(Integer result) { - parsed = result; - progressBar.setPercent(result); - } + private void fillRegattas(Iterable regattas) { + regattaListComposite.fillRegattas((List) regattas); + } - }); - if (parsed >= amountOfRegattas) { /* finished */ - regattaRefresher.fillRegattas(); - progressBar.removeFromParent(); - overallName.removeFromParent(); - this.cancel(); - } - } - }; - timer.scheduleRepeating(2000); - } + private void showRegattaStructure( + final LinkedHashMap, Set> structure) { + Grid grid = new Grid(structure.size(), 2); - private void setDefaultRegatta(final Iterable selectedRegattas, final List newEvent) { - sailingService.getEvents(new AsyncCallback>() { - @Override - public void onFailure(Throwable caught) { - errorReporter.reportError(stringMessages.errorAddingResultImportUrl(caught.getMessage())); - } + int i = 0; + for (final Set struct : structure.keySet()) { + Button editBtn = new Button("Edit Series"); + editBtn.addClickHandler(new ClickHandler() { - @Override - public void onSuccess(List result) { - Collection existingRegattas = Collections.emptyList(); - DefaultRegattaCreateDialog dialog = new DefaultRegattaCreateDialog(existingRegattas, result, - sailingService, errorReporter, stringMessages, new DialogCallback() { - @Override - public void cancel() { - } - @Override - public void ok(final EventAndRegattaDTO newRegatta) { -// sailingService.getRegattaStructure(selectedRegattas, -// new AsyncCallback>() { -// @Override -// public void onFailure(Throwable caught) { -// // errorReporter.reportError(stringMessages.errorAddingResultImportUrl(caught -// // .getMessage())); -// } -// -// @Override -// public void onSuccess(Set result) { -// // TODO UI aufbauen - createRegattas(selectedRegattas, newRegatta.getEvent(), - newRegatta.getRegatta()); -// } -// }); + @Override + public void onClick(ClickEvent event) { + // TODO open dialog to edit series parameters for each + // series with a dropdown and return + // those. I suggest using a LinkedHashMap - } - }); - dialog.ensureDebugId("DefaultRegattaCreateDialog"); - dialog.show(); + /* + * only for testing. parameters will be received from the + * dialog + */ + LinkedHashMap parameters = new LinkedHashMap(); + Set regattasTest = structure.get(struct); + for (RegattaDTO regatta : regattasTest) { + for (SeriesDTO series : regatta.series) { + parameters.put(series.getName(), new SeriesDTO("", + null, null, false, null, false, false, + false)); + } + } + /* only for testing */ - } - }); + Set regattas = structure.get(struct); + for (RegattaDTO regatta : regattas) { + for (SeriesDTO series : regatta.series) { + SeriesDTO seriesParameters = parameters.get(series + .getName()); + series.setDiscardThresholds(seriesParameters + .getDiscardThresholds()); + series.setSplitFleetContiguousScoring(seriesParameters + .hasSplitFleetContiguousScoring()); + series.setStartsWithZeroScore(seriesParameters + .isStartsWithZeroScore()); + series.setFirstColumnIsNonDiscardableCarryForward(seriesParameters + .isFirstColumnIsNonDiscardableCarryForward()); + } + } + } + }); - } + String text = ""; + for (String string : struct) { + text += string + ", "; + } + text += "(" + structure.get(struct).size() + ")"; + grid.setWidget(i, 0, new Label(text)); + grid.setWidget(i, 1, editBtn); + i++; + } + editSeriesPanel.clear(); + editSeriesPanel.add(grid); + } - private void createRegattas(final Iterable regattaNames, EventDTO newEvent, RegattaDTO defaultRegatta) { - eventManagementPanel.fillEvents(); - sailingService.createRegattaStructure(regattaNames, newEvent, defaultRegatta, new AsyncCallback() { - @Override - public void onFailure(Throwable caught) { - errorReporter.reportError(stringMessages.errorAddingResultImportUrl(caught.getMessage())); - } + private void setDefaultRegatta(final Iterable selectedRegattas, + final List newEvent) { + sailingService.getEvents(new AsyncCallback>() { + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError(stringMessages + .errorAddingResultImportUrl(caught.getMessage())); + } - @Override - public void onSuccess(Void result) { -// setProgressBar(regattaNames.size()); - } - }); - } + @Override + public void onSuccess(List result) { + Collection existingRegattas = Collections + .emptyList(); + DefaultRegattaCreateDialog dialog = new DefaultRegattaCreateDialog( + existingRegattas, result, sailingService, + errorReporter, stringMessages, + new DialogCallback() { + @Override + public void cancel() { + } + + @Override + public void ok(final EventAndRegattaDTO newRegatta) { + createRegattas(selectedRegattas, + newRegatta.getEvent(), + newRegatta.getRegatta()); + } + }); + dialog.ensureDebugId("DefaultRegattaCreateDialog"); + dialog.show(); + + } + }); + + } + + private void createRegattas(final Iterable regattaNames, + EventDTO newEvent, RegattaDTO defaultRegatta) { + eventManagementPanel.fillEvents(); + sailingService.createRegattaStructure(regattaNames, newEvent, + defaultRegatta, new AsyncCallback() { + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError(stringMessages + .errorAddingResultImportUrl(caught.getMessage())); + } + + @Override + public void onSuccess(Void result) { + regattaRefresher.fillRegattas(); + } + }); + } } 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 255e7f4d805..4750b527623 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,7 +10,6 @@ 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; @@ -70,7 +69,6 @@ import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.RegattaOverviewEntryDTO; import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO; -import com.sap.sailing.gwt.ui.shared.RegattaStructureDTO; import com.sap.sailing.gwt.ui.shared.RemoteSailingServerReferenceDTO; import com.sap.sailing.gwt.ui.shared.ReplicationStateDTO; import com.sap.sailing.gwt.ui.shared.ScoreCorrectionProviderDTO; @@ -86,7 +84,6 @@ import com.sap.sailing.gwt.ui.shared.TrackFileImportDeviceIdentifierDTO; import com.sap.sailing.gwt.ui.shared.VenueDTO; import com.sap.sailing.gwt.ui.shared.WindDTO; import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO; -import com.sap.sailing.server.operationaltransformation.AddSpecificRegatta; import com.sap.sse.common.Util; import com.sap.sse.common.Util.Pair; import com.sap.sse.common.search.KeywordQuery; @@ -562,8 +559,6 @@ public interface SailingService extends RemoteService { */ RaceDTO setStartTimeReceivedForRace(RaceIdentifier raceIdentifier, Date newStartTimeReceived); - Set getRegattaStructure(List regattaNames); - 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 db24785c047..6d3fa03fc85 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,7 +9,6 @@ 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; @@ -60,7 +59,6 @@ import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.RegattaOverviewEntryDTO; import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO; -import com.sap.sailing.gwt.ui.shared.RegattaStructureDTO; import com.sap.sailing.gwt.ui.shared.RemoteSailingServerReferenceDTO; import com.sap.sailing.gwt.ui.shared.ReplicationStateDTO; import com.sap.sailing.gwt.ui.shared.ScoreCorrectionProviderDTO; @@ -76,7 +74,6 @@ import com.sap.sailing.gwt.ui.shared.TrackFileImportDeviceIdentifierDTO; import com.sap.sailing.gwt.ui.shared.VenueDTO; import com.sap.sailing.gwt.ui.shared.WindDTO; import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO; -import com.sap.sailing.server.operationaltransformation.AddSpecificRegatta; import com.sap.sse.common.Util; import com.sap.sse.common.search.KeywordQuery; @@ -647,8 +644,6 @@ public interface SailingServiceAsync { void createRegattaStructure(Iterable regattaNames, EventDTO newEvent, RegattaDTO defaultRegatta, - AsyncCallback asyncCallback); - - void getRegattaStructure(List regattaNames, AsyncCallback> asyncCallback); + 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 dc99b1ac77a..441a5b46614 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 @@ -303,7 +303,6 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.RegattaOverviewEntryDTO; import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO; import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO.ScoreCorrectionEntryDTO; -import com.sap.sailing.gwt.ui.shared.RegattaStructureDTO; import com.sap.sailing.gwt.ui.shared.RemoteSailingServerReferenceDTO; import com.sap.sailing.gwt.ui.shared.ReplicaDTO; import com.sap.sailing.gwt.ui.shared.ReplicationMasterDTO; @@ -3723,22 +3722,33 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } private void createRegattaFromRegattaDTO(RegattaDTO regatta){ - this.createRegatta(regatta.getName(), regatta.boatClass.getName(),null, false, regatta.scoringScheme, regatta.defaultCourseAreaUuid, regatta.useStartTimeInference); + this.createRegatta(regatta.getName(), regatta.boatClass.getName(), + new RegattaCreationParametersDTO(getSeriesCreationParameters(regatta)), + true, regatta.scoringScheme, regatta.defaultCourseAreaUuid, regatta.useStartTimeInference); } - - private SeriesParameters getDefaultSeries(RegattaDTO defaultRegatta) { - SeriesParameters defaultSeries = new SeriesParameters(false, false, false, null); - if (defaultRegatta.series != null && !defaultRegatta.series.isEmpty()) { - SeriesDTO series = defaultRegatta.series.get(0); - defaultSeries - .setFirstColumnIsNonDiscardableCarryForward(series.isFirstColumnIsNonDiscardableCarryForward()); - defaultSeries.setHasSplitFleetContiguousScoring(series.hasSplitFleetContiguousScoring()); - defaultSeries.setStartswithZeroScore(series.isStartsWithZeroScore()); - defaultSeries.setDiscardingThresholds(series.getDiscardThresholds()); - } - return defaultSeries; + + private SeriesParameters getSeriesParameters(SeriesDTO seriesDTO) { + SeriesParameters series = new SeriesParameters(false, false, false, null); + series + .setFirstColumnIsNonDiscardableCarryForward(seriesDTO.isFirstColumnIsNonDiscardableCarryForward()); + series.setHasSplitFleetContiguousScoring(seriesDTO.hasSplitFleetContiguousScoring()); + series.setStartswithZeroScore(seriesDTO.isStartsWithZeroScore()); + series.setDiscardingThresholds(seriesDTO.getDiscardThresholds()); + return series; + } + + private LinkedHashMap getSeriesCreationParameters(RegattaDTO regattaDTO) { + LinkedHashMap seriesCreationParams = new LinkedHashMap(); + for (SeriesDTO series : regattaDTO.series){ + SeriesParameters seriesParameters = getSeriesParameters(series); + seriesCreationParams.put(series.getName(), new SeriesCreationParametersDTO(series.getFleets(), + false, seriesParameters.isStartswithZeroScore(), seriesParameters.isFirstColumnIsNonDiscardableCarryForward(), + seriesParameters.getDiscardingThresholds(), seriesParameters.isHasSplitFleetContiguousScoring())); + } + return seriesCreationParams; } + @Override public Iterable getRegattas(String url) { StructureImporter structureImporter = new StructureImporter(new SetRacenumberFromSeries(), baseDomainFactory); Iterable parsedEvent = structureImporter.parseEvent(url); @@ -3750,15 +3760,11 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S return regattaDTOs; } - private List createRegattasWithRaces(Iterable regattas, String eventName) { + private List createRegattasWithRaces(RegattaDTO regatta, String eventName) { List leaderboardNames = new ArrayList(); - for (AddSpecificRegatta addSpecificRegatta : regattas) { - Regatta regatta = getService().apply(addSpecificRegatta); - - // create RaceColumns - for (Series series : regatta.getSeries()) { + for (SeriesDTO series : regatta.series) { List raceNames = new ArrayList(); - for (RaceColumnInSeries raceColumnInSeries : series.getRaceColumns()) { + for (RaceColumnDTO raceColumnInSeries : series.getRaceColumns()) { raceNames.add(raceColumnInSeries.getName()); } addRaceColumnsToSeries(regatta.getRegattaIdentifier(), series.getName(), raceNames); @@ -3766,43 +3772,41 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S if (getLeaderboard(regatta.getName()) == null) { leaderboardNames.add(regatta.getName()); - createRegattaLeaderboard(regatta.getRegattaIdentifier(), regatta.getBoatClass().toString(), new int[0]); + createRegattaLeaderboard(regatta.getRegattaIdentifier(), regatta.boatClass.toString(), new int[0]); } - } return leaderboardNames; } - @Override - public Set getRegattaStructure(final List regattaNames) { - // Set regattaStructureKeys = regattaStructures.keySet(); - Set regattaStructureDTOs = new HashSet(); - // for(RegattaStructureKey regattaStructureKey: regattaStructureKeys){ - // RegattaStructureDTO regattaStructureDTO = new RegattaStructureDTO(regattaStructureKey, - // regattaStructures.get(regattaStructureKey)); - // regattaStructureDTOs.add(regattaStructureDTO); - // } - return regattaStructureDTOs; - } - @Override public void createRegattaStructure(final Iterable regattas, final EventDTO newEvent, final RegattaDTO defaultRegatta) { - final Set addSpecificRegattas = new HashSet(); + final List leaderboardNames = new ArrayList(); for(RegattaDTO regatta: regattas){ + regatta.defaultCourseAreaUuid = defaultRegatta.defaultCourseAreaUuid; + regatta.defaultCourseAreaName = defaultRegatta.defaultCourseAreaName; + regatta.scoringScheme = defaultRegatta.scoringScheme; + regatta.useStartTimeInference = defaultRegatta.useStartTimeInference; + for (SeriesDTO series : regatta.series) { + if(!defaultRegatta.series.isEmpty()){ + SeriesDTO defaultSeries = defaultRegatta.series.get(0); + series.setDiscardThresholds(defaultSeries.getDiscardThresholds()); + series.setSplitFleetContiguousScoring(defaultSeries.hasSplitFleetContiguousScoring()); + series.setStartsWithZeroScore(defaultSeries.isStartsWithZeroScore()); + series.setFirstColumnIsNonDiscardableCarryForward(defaultSeries.isFirstColumnIsNonDiscardableCarryForward()); + }else{ + series.setDiscardThresholds(null); + series.setSplitFleetContiguousScoring(false); + series.setStartsWithZeroScore(false); + series.setFirstColumnIsNonDiscardableCarryForward(false); + } + } createRegattaFromRegattaDTO(regatta); + leaderboardNames.addAll(createRegattasWithRaces(regatta, newEvent.getName())); } - Runnable structureImportTask = new Runnable() { - @Override - public void run() { - final StructureImporter structureImporter = new StructureImporter(); - final List leaderboardNames = createRegattasWithRaces(addSpecificRegattas, newEvent.getName()); - createAndAddLeaderboardGroup(newEvent, leaderboardNames); -// structureImporter.setCompetitors(regattas, ""); - structureImporter.setFinished(true); - - } - }; - executor.execute(structureImportTask); + createAndAddLeaderboardGroup(newEvent, leaderboardNames); + + //TODO find a way to import the competitors for the selected regattas. You'll need the regattas as Iterable +// structureImporter.setCompetitors(regattas, ""); } private void createAndAddLeaderboardGroup(final EventDTO newEvent, List leaderboardNames) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaStructureDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaStructureDTO.java index 62d24258d8b..0925628ea26 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaStructureDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaStructureDTO.java @@ -1,5 +1,7 @@ package com.sap.sailing.gwt.ui.shared; +import com.sap.sailing.xrr.structureimport.SeriesParameters; + public class RegattaStructureDTO { // private final RegattaStructureKey regattaStructure; @@ -20,10 +22,10 @@ public class RegattaStructureDTO { // } // return regattaStructureString.substring(1); // } - +// // public void setDefaultSeries(RegattaDTO defaultRegatta) { // SeriesParameters defaultSeries = new SeriesParameters(false, false, false, null); -// if (defaultRegatta.series.size() > 0) { // null abfangen +// if (!defaultRegatta.series.isEmpty()) { // SeriesDTO series = defaultRegatta.series.get(0); // defaultSeries // .setFirstColumnIsNonDiscardableCarryForward(series.isFirstColumnIsNonDiscardableCarryForward()); diff --git a/java/com.sap.sailing.xrr.schema/src/com/sap/sailing/xrr/schema/Race.java b/java/com.sap.sailing.xrr.schema/src/com/sap/sailing/xrr/schema/Race.java index 6f91952c503..dda409e3ae2 100755 --- a/java/com.sap.sailing.xrr.schema/src/com/sap/sailing/xrr/schema/Race.java +++ b/java/com.sap.sailing.xrr.schema/src/com/sap/sailing/xrr/schema/Race.java @@ -5,10 +5,10 @@ // Generated on: 2013.03.15 at 04:56:46 PM CET // - package com.sap.sailing.xrr.schema; import java.math.BigInteger; + import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; @@ -16,15 +16,17 @@ import javax.xml.bind.annotation.XmlSchemaType; import javax.xml.bind.annotation.XmlType; import javax.xml.datatype.XMLGregorianCalendar; - /** * - * very preliminary, info about a single race within a regatta - * + * very preliminary, info about a single race within a regatta * - *

Java class for Race complex type. * - *

The following schema fragment specifies the expected content contained within this class. + *

+ * Java class for Race complex type. + * + *

+ * The following schema fragment specifies the expected content contained within + * this class. * *

  * <complexType name="Race">
@@ -48,247 +50,234 @@ import javax.xml.datatype.XMLGregorianCalendar;
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "Race")
-public class Race {
+public class Race implements Comparable {
 
-    @XmlAttribute(name = "RaceID", required = true)
-    protected String raceID;
-    @XmlAttribute(name = "RaceNumber", required = true)
-    protected BigInteger raceNumber;
-    @XmlAttribute(name = "RaceName")
-    protected String raceName;
-    @XmlAttribute(name = "RaceStartDate")
-    @XmlSchemaType(name = "date")
-    protected XMLGregorianCalendar raceStartDate;
-    @XmlAttribute(name = "RaceStartTime")
-    @XmlSchemaType(name = "time")
-    protected XMLGregorianCalendar raceStartTime;
-    @XmlAttribute(name = "RaceStatus")
-    protected IFRaceStatus raceStatus;
-    @XmlAttribute(name = "Stage")
-    protected String stage;
-    @XmlAttribute(name = "Flight")
-    protected String flight;
-    @XmlAttribute(name = "Match")
-    protected String match;
+	@XmlAttribute(name = "RaceID", required = true)
+	protected String raceID;
+	@XmlAttribute(name = "RaceNumber", required = true)
+	protected BigInteger raceNumber;
+	@XmlAttribute(name = "RaceName")
+	protected String raceName;
+	@XmlAttribute(name = "RaceStartDate")
+	@XmlSchemaType(name = "date")
+	protected XMLGregorianCalendar raceStartDate;
+	@XmlAttribute(name = "RaceStartTime")
+	@XmlSchemaType(name = "time")
+	protected XMLGregorianCalendar raceStartTime;
+	@XmlAttribute(name = "RaceStatus")
+	protected IFRaceStatus raceStatus;
+	@XmlAttribute(name = "Stage")
+	protected String stage;
+	@XmlAttribute(name = "Flight")
+	protected String flight;
+	@XmlAttribute(name = "Match")
+	protected String match;
 
-    /**
-     * Gets the value of the raceID property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getRaceID() {
-        return raceID;
-    }
+	/**
+	 * Gets the value of the raceID property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getRaceID() {
+		return raceID;
+	}
 
-    /**
-     * Sets the value of the raceID property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setRaceID(String value) {
-        this.raceID = value;
-    }
+	/**
+	 * Sets the value of the raceID property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setRaceID(String value) {
+		this.raceID = value;
+	}
 
-    /**
-     * Gets the value of the raceNumber property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link BigInteger }
-     *     
-     */
-    public BigInteger getRaceNumber() {
-        return raceNumber;
-    }
+	/**
+	 * Gets the value of the raceNumber property.
+	 * 
+	 * @return possible object is {@link BigInteger }
+	 * 
+	 */
+	public BigInteger getRaceNumber() {
+		return raceNumber;
+	}
 
-    /**
-     * Sets the value of the raceNumber property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link BigInteger }
-     *     
-     */
-    public void setRaceNumber(BigInteger value) {
-        this.raceNumber = value;
-    }
+	/**
+	 * Sets the value of the raceNumber property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link BigInteger }
+	 * 
+	 */
+	public void setRaceNumber(BigInteger value) {
+		this.raceNumber = value;
+	}
 
-    /**
-     * Gets the value of the raceName property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getRaceName() {
-        return raceName;
-    }
+	/**
+	 * Gets the value of the raceName property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getRaceName() {
+		return raceName;
+	}
 
-    /**
-     * Sets the value of the raceName property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setRaceName(String value) {
-        this.raceName = value;
-    }
+	/**
+	 * Sets the value of the raceName property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setRaceName(String value) {
+		this.raceName = value;
+	}
 
-    /**
-     * Gets the value of the raceStartDate property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link XMLGregorianCalendar }
-     *     
-     */
-    public XMLGregorianCalendar getRaceStartDate() {
-        return raceStartDate;
-    }
+	/**
+	 * Gets the value of the raceStartDate property.
+	 * 
+	 * @return possible object is {@link XMLGregorianCalendar }
+	 * 
+	 */
+	public XMLGregorianCalendar getRaceStartDate() {
+		return raceStartDate;
+	}
 
-    /**
-     * Sets the value of the raceStartDate property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link XMLGregorianCalendar }
-     *     
-     */
-    public void setRaceStartDate(XMLGregorianCalendar value) {
-        this.raceStartDate = value;
-    }
+	/**
+	 * Sets the value of the raceStartDate property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link XMLGregorianCalendar }
+	 * 
+	 */
+	public void setRaceStartDate(XMLGregorianCalendar value) {
+		this.raceStartDate = value;
+	}
 
-    /**
-     * Gets the value of the raceStartTime property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link XMLGregorianCalendar }
-     *     
-     */
-    public XMLGregorianCalendar getRaceStartTime() {
-        return raceStartTime;
-    }
+	/**
+	 * Gets the value of the raceStartTime property.
+	 * 
+	 * @return possible object is {@link XMLGregorianCalendar }
+	 * 
+	 */
+	public XMLGregorianCalendar getRaceStartTime() {
+		return raceStartTime;
+	}
 
-    /**
-     * Sets the value of the raceStartTime property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link XMLGregorianCalendar }
-     *     
-     */
-    public void setRaceStartTime(XMLGregorianCalendar value) {
-        this.raceStartTime = value;
-    }
+	/**
+	 * Sets the value of the raceStartTime property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link XMLGregorianCalendar }
+	 * 
+	 */
+	public void setRaceStartTime(XMLGregorianCalendar value) {
+		this.raceStartTime = value;
+	}
 
-    /**
-     * Gets the value of the raceStatus property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link IFRaceStatus }
-     *     
-     */
-    public IFRaceStatus getRaceStatus() {
-        return raceStatus;
-    }
+	/**
+	 * Gets the value of the raceStatus property.
+	 * 
+	 * @return possible object is {@link IFRaceStatus }
+	 * 
+	 */
+	public IFRaceStatus getRaceStatus() {
+		return raceStatus;
+	}
 
-    /**
-     * Sets the value of the raceStatus property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link IFRaceStatus }
-     *     
-     */
-    public void setRaceStatus(IFRaceStatus value) {
-        this.raceStatus = value;
-    }
+	/**
+	 * Sets the value of the raceStatus property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link IFRaceStatus }
+	 * 
+	 */
+	public void setRaceStatus(IFRaceStatus value) {
+		this.raceStatus = value;
+	}
 
-    /**
-     * Gets the value of the stage property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getStage() {
-        return stage;
-    }
+	/**
+	 * Gets the value of the stage property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getStage() {
+		return stage;
+	}
 
-    /**
-     * Sets the value of the stage property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setStage(String value) {
-        this.stage = value;
-    }
+	/**
+	 * Sets the value of the stage property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setStage(String value) {
+		this.stage = value;
+	}
 
-    /**
-     * Gets the value of the flight property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getFlight() {
-        return flight;
-    }
+	/**
+	 * Gets the value of the flight property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getFlight() {
+		return flight;
+	}
 
-    /**
-     * Sets the value of the flight property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setFlight(String value) {
-        this.flight = value;
-    }
+	/**
+	 * Sets the value of the flight property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setFlight(String value) {
+		this.flight = value;
+	}
 
-    /**
-     * Gets the value of the match property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getMatch() {
-        return match;
-    }
+	/**
+	 * Gets the value of the match property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getMatch() {
+		return match;
+	}
 
-    /**
-     * Sets the value of the match property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setMatch(String value) {
-        this.match = value;
-    }
+	/**
+	 * Sets the value of the match property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setMatch(String value) {
+		this.match = value;
+	}
 
 	public char getFirstChar() {
 		return raceName.charAt(0);
 	}
 
+	@Override
+	public int compareTo(Race arg0) {
+		int a = Integer.parseInt(this.getRaceNumber() + "");
+		int b = Integer.parseInt(arg0.getRaceNumber() + "");
+
+		int result = 0;
+		if (a < b) {
+			result = -1;
+		} else if (a > b) {
+			result = 1;
+		}
+		return result;
+	}
+
 }
diff --git a/java/com.sap.sailing.xrr.structureimport/src/buildstructure/Fleet.java b/java/com.sap.sailing.xrr.structureimport/src/buildstructure/Fleet.java
index d4fdaa21e3f..64862c9274d 100755
--- a/java/com.sap.sailing.xrr.structureimport/src/buildstructure/Fleet.java
+++ b/java/com.sap.sailing.xrr.structureimport/src/buildstructure/Fleet.java
@@ -1,6 +1,8 @@
 package buildstructure;
 
 import java.awt.Color;
+import java.util.Set;
+import java.util.TreeSet;
 
 import com.sap.sailing.xrr.schema.Race;
 
@@ -8,7 +10,8 @@ public class Fleet implements Comparable {
     private final int NUMBEROFRACES = 10;
 
     private String color = "";
-    private Race[] races = new Race[NUMBEROFRACES];
+    private Race[] racesOld = new Race[NUMBEROFRACES];
+    private Set races = new TreeSet();
     private int numRaces = 0;
 
     public Fleet(String color) {
@@ -26,22 +29,23 @@ public class Fleet implements Comparable {
         race.setRaceName(raceName);
 
         int raceNumber = Integer.parseInt(race.getRaceNumber() + "");
-        if (races.length > raceNumber) {
-            races[raceNumber - 1] = race;
+        if (racesOld.length > raceNumber) {
+            racesOld[raceNumber - 1] = race;
             numRaces++;
         } else {
-            Race[] temp = races;
-            races = new Race[temp.length + NUMBEROFRACES];
+            Race[] temp = racesOld;
+            racesOld = new Race[temp.length + NUMBEROFRACES];
             for (int i = 0; i < temp.length; i++) {
-                races[i] = temp[i];
+                racesOld[i] = temp[i];
             }
-            races[raceNumber - 1] = race;
+            racesOld[raceNumber - 1] = race;
             numRaces++;
         }
+        races.add(race);
 
     }
 
-    public Race[] getRaces() {
+    public Iterable getRaces() {
         return races;
     }
 
diff --git a/java/com.sap.sailing.xrr.structureimport/src/buildstructure/SetRacenumberFromSeries.java b/java/com.sap.sailing.xrr.structureimport/src/buildstructure/SetRacenumberFromSeries.java
index 686b316d8bc..73dbf4213c5 100755
--- a/java/com.sap.sailing.xrr.structureimport/src/buildstructure/SetRacenumberFromSeries.java
+++ b/java/com.sap.sailing.xrr.structureimport/src/buildstructure/SetRacenumberFromSeries.java
@@ -9,7 +9,11 @@ public class SetRacenumberFromSeries implements SetRacenumberStrategy {
 
     @Override
     public void setRacenumber(Race race, Series series, int i) {
-    	List raceNames = new ArrayList();
+    	List raceNames = series.getRaceNames();
+    	if(raceNames == null){
+    		raceNames = new ArrayList();
+    		series.setRaceNames(raceNames);
+    	}
         if (race != null) {
             char beginOfSeries = series.getFirstChar();
             if (beginOfSeries == 'D' && race.getFirstChar() != 'R') {
@@ -19,6 +23,5 @@ public class SetRacenumberFromSeries implements SetRacenumberStrategy {
                 raceNames.add(race.getRaceName());
             }
         }
-        series.setRaceNames(raceNames);
     }
 }
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 60cc6bcc926..f530a11ccbc 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
@@ -41,6 +41,8 @@ import com.sap.sailing.domain.base.impl.TeamImpl;
 import com.sap.sailing.domain.common.Color;
 import com.sap.sailing.domain.common.FleetColors;
 import com.sap.sailing.domain.common.ScoringSchemeType;
+import com.sap.sailing.domain.common.dto.FleetDTO;
+import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO;
 import com.sap.sailing.xrr.resultimport.ParserFactory;
 import com.sap.sailing.xrr.schema.Boat;
 import com.sap.sailing.xrr.schema.Crew;
@@ -57,13 +59,9 @@ import eventimport.RegattaJSON;
 public class StructureImporter {
 
     private static final Logger logger = Logger.getLogger(StructureImporter.class.getName());
-    private Map> seriesStructuresWithFrequency = new HashMap>(); // TODO
-                                                                                                                                                   // rename
     private LinkedHashMap boatForPerson;
     private final DomainFactory baseDomainFactory;
     private final SetRacenumberStrategy setRacenumberStrategy;
-    private int parsedDocuments = 0;
-    private boolean finished = false;
 
     public StructureImporter(SetRacenumberStrategy setRacenumber, DomainFactory baseDomainFactory) {
         this.setRacenumberStrategy = setRacenumber;
@@ -96,11 +94,11 @@ public class StructureImporter {
                 }
             }
             BuildStructure buildStructure = new BuildStructure(races);
-            // analyseStructure(structure);
-            addSpecificRegattas.add(new RegattaImpl(RegattaImpl.getDefaultName(event.getTitle(),
+            RegattaImpl regatta = new RegattaImpl(RegattaImpl.getDefaultName(event.getTitle(),
                     ((Division) event.getRaceOrDivisionOrRegattaSeriesResult().get(0)).getTitle()), new BoatClassImpl(((Division) event
                     .getRaceOrDivisionOrRegattaSeriesResult().get(0)).getTitle(),true), setSeries(buildStructure), false, this.baseDomainFactory
-                            .createScoringScheme(ScoringSchemeType.LOW_POINT), event.getEventID(), null));
+                            .createScoringScheme(ScoringSchemeType.LOW_POINT), event.getEventID(), null);
+            addSpecificRegattas.add(regatta);
         }
         return addSpecificRegattas;
     }
@@ -117,7 +115,6 @@ public class StructureImporter {
                     } catch (JAXBException | IOException e) {
                         logger.info("Parse error during XRR import. Ignoring document " + selectedRegatta.getName());
                     }
-                    parsedDocuments++;
                 }
             };
             thread.start();
@@ -130,56 +127,11 @@ public class StructureImporter {
                 }
                 break;
             } catch (InterruptedException e) {
-                // not all Regattas have been parsed
+                // waiting for the other threads
             }
         }
         return result;
     }
-
-    public Map> getRegattaStructures(List regattaNames) {
-        return seriesStructuresWithFrequency;
-    }
-
-    // public void analyseStructure(BuildStructure structure) {
-    // Map seriesAndFleets = new HashMap();
-    // for (Series series : structure.getRegattaStructure().getSeries()) {
-    // seriesAndFleets.add(series.getSeries());
-    // for (Fleet fleet : series.getFleets()) {
-    // seriesAndFleets.add(fleet.getColor());
-    // }
-    // }
-    // RegattaStructureKey regattaStructureKey = new RegattaStructureKey(seriesAndFleets);
-    //
-    // if (!seriesAndFleets.isEmpty()) {
-    // if (seriesStructuresWithFrequency.containsKey(regattaStructureKey)) {
-    // seriesStructuresWithFrequency.get(regattaStructureKey).add(structure);
-    // } else {
-    // Set buildStructures = new HashSet();
-    // buildStructures.add(structure);
-    // seriesStructuresWithFrequency.put(regattaStructureKey, buildStructures);
-    // }
-    // }
-    //
-    // }
-
-//    private LinkedHashMap setSeriesCreationParameters(BuildStructure structure,
-//            boolean firstColumnIsNonDiscardableCarryForward, boolean hasSplitFleetContiguousScoring,
-//            boolean startswithZeroScore, int[] discardingThresholds) {
-//        LinkedHashMap seriesCreationParams = new LinkedHashMap();
-//        RegattaStructure regattaStructure = structure.getRegattaStructure();
-//        if (regattaStructure != null) {
-//            int index = 0;
-//            for (Series raceType : regattaStructure.getSeries()) {
-//                List fleets = getFleets(raceType.getFleets());
-//                setRaceNames(index, raceType, raceType.getFleets());
-//                seriesCreationParams.put(raceType.getSeries(), new SeriesCreationParametersDTO(fleets,
-//                /* medal */raceType.isMedal(), startswithZeroScore, firstColumnIsNonDiscardableCarryForward,
-//                        discardingThresholds, hasSplitFleetContiguousScoring));
-//                index++;
-//            }
-//        }
-//        return seriesCreationParams;
-//    }
     
     private Iterable setSeries(BuildStructure structure) {
         Set series = new HashSet(); 
@@ -187,7 +139,7 @@ public class StructureImporter {
         if (regattaStructure != null) {
             int index = 0;
             for (Series raceType : regattaStructure.getSeries()) {
-                List fleets = getFleets(raceType.getFleets());
+                List fleets = getFleets(raceType.getFleets());
                 setRaceNames(index, raceType, raceType.getFleets());
                 series.add(new SeriesImpl(raceType.getSeries(), raceType.isMedal(), fleets, raceType.getRaceNames(), null));
             }
@@ -196,32 +148,14 @@ public class StructureImporter {
     }
 
     private void setRaceNames(int i, Series raceType, List fleets) {
-        // set Racenumbers for each series
-        Race[] races = fleets.get(raceType.getMaxIndex()).getRaces();
+        Iterable races = fleets.get(raceType.getMaxIndex()).getRaces();
         for (Race race : races) {
             setRacenumberStrategy.setRacenumber(race, raceType, i);
         }
     }
-
-//    private List getFleets(List fleets) {
-//        List fleetsDTO = new ArrayList();
-//        String fleetColor = "";
-//        if (fleets.size() <= 1) {
-//            fleetColor = "Default";
-//        } else {
-//            int index = 0;
-//            for (Fleet fleet : fleets) {
-//                fleetColor = fleet.getColor();
-//                FleetDTO fleetDTO = new FleetDTO(fleetColor, index, getColorFromString(fleetColor));
-//                fleetsDTO.add(fleetDTO);
-//                index++;
-//            }
-//        }
-//        return fleetsDTO;
-//    }
     
-    private List getFleets(List fleets) {
-        List fleetsImpl = new ArrayList();
+    private List getFleets(List fleets) {
+        List fleetsImpl = new ArrayList();
         String fleetColor = "";
         if (fleets.size() <= 1) {
             fleetColor = "Default";
@@ -349,16 +283,4 @@ public class StructureImporter {
         URLConnection connection = new URL(url).openConnection();
         return connection.getInputStream();
     }
-
-    public int getProgress() {
-        return parsedDocuments;
-    }
-
-    public boolean isFinished() {
-        return finished;
-    }
-
-    public void setFinished(boolean finished) {
-        this.finished = finished;
-    }
 }