diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/partials/multiRegattaList/MultiRegattaListStepsBody.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/partials/multiRegattaList/MultiRegattaListStepsBody.java index 0d09b4fd42a..35ea2c423d2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/partials/multiRegattaList/MultiRegattaListStepsBody.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/partials/multiRegattaList/MultiRegattaListStepsBody.java @@ -6,18 +6,15 @@ import java.util.Map.Entry; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.DivElement; import com.google.gwt.dom.client.Element; -import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.ui.UIObject; -import com.sap.sailing.gwt.home.client.place.event.partials.multiRegattaList.MultiRegattaListResources.LocalCss; +import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.dispatch.regatta.RegattaProgressSeriesDTO; import com.sap.sailing.gwt.ui.shared.race.FleetMetadataDTO; public class MultiRegattaListStepsBody extends UIObject { - private static final LocalCss CSS = MultiRegattaListResources.INSTANCE.css(); private static MultiRegattaListStepsBodyUiBinder uiBinder = GWT.create(MultiRegattaListStepsBodyUiBinder.class); interface MultiRegattaListStepsBodyUiBinder extends UiBinder { @@ -29,37 +26,26 @@ public class MultiRegattaListStepsBody extends UIObject { @UiField DivElement fleetsContainerUi; public MultiRegattaListStepsBody(RegattaProgressSeriesDTO seriesProgress) { - Element main = uiBinder.createAndBindUi(this); + setElement(uiBinder.createAndBindUi(this)); nameUi.setInnerText(seriesProgress.getName()); if (seriesProgress.isCompleted()) { progressUi.setInnerText(String.valueOf(seriesProgress.getTotalRaceCount())); } else { checkUi.removeFromParent(); - progressUi.setInnerText(seriesProgress.getProgressRaceCount() + " of " + seriesProgress.getTotalRaceCount()); + progressUi.setInnerText(StringMessages.INSTANCE.currentOfTotal( + seriesProgress.getProgressRaceCount(), seriesProgress.getTotalRaceCount())); } - Map fleetStates = seriesProgress.getFleetState(); - double fleetHeight = fleetStates.isEmpty() ? 100.0 : 100.0 / fleetStates.size(); - for (Entry fleetState : seriesProgress.getFleetState().entrySet()) { - double fleetWidth = (fleetState.getValue() * 100.0) / seriesProgress.getTotalRaceCount(); - fleetsContainerUi.appendChild(getFleetElement(fleetWidth, fleetHeight, fleetState.getKey().getFleetColor())); - } - setElement(main); + addFleetProgresses(seriesProgress.getFleetState(), seriesProgress.getTotalRaceCount()); } - private DivElement getFleetElement(double width, double height, String color) { - DivElement fleetProgressUi = createDiv(CSS.regattalistitem_steps_step_fleets_fleet()); - fleetProgressUi.getStyle().setHeight(height, Unit.PCT); - DivElement fleetProgressBarUi = createDiv(CSS.regattalistitem_steps_step_fleets_fleet_progress()); - fleetProgressBarUi.getStyle().setBackgroundColor(color); - fleetProgressBarUi.getStyle().setWidth(width, Unit.PCT); - fleetProgressUi.appendChild(fleetProgressBarUi); - return fleetProgressUi; - } - - private DivElement createDiv(String cssClassName) { - DivElement div = DOM.createDiv().cast(); - div.addClassName(cssClassName); - return div; + private void addFleetProgresses(Map fleetStates, int totalRaceCount) { + double height = fleetStates.isEmpty() ? 100.0 : 100.0 / fleetStates.size(); + for (Entry fleetState : fleetStates.entrySet()) { + double fleetWidth = (fleetState.getValue() * 100.0) / totalRaceCount; + String fleetColor = fleetState.getKey().getFleetColor(); + MultiRegattaListStepsBodyFleet fleet = new MultiRegattaListStepsBodyFleet(fleetWidth, height, fleetColor); + fleetsContainerUi.appendChild(fleet.getElement()); + } } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/partials/multiRegattaList/MultiRegattaListStepsBodyFleet.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/partials/multiRegattaList/MultiRegattaListStepsBodyFleet.java new file mode 100644 index 00000000000..9ed3a907e5c --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/partials/multiRegattaList/MultiRegattaListStepsBodyFleet.java @@ -0,0 +1,27 @@ +package com.sap.sailing.gwt.home.client.place.event.partials.multiRegattaList; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.DivElement; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.UIObject; + +public class MultiRegattaListStepsBodyFleet extends UIObject { + + private static MultiRegattaListStepsBodyFleetUiBinder uiBinder = GWT.create(MultiRegattaListStepsBodyFleetUiBinder.class); + + interface MultiRegattaListStepsBodyFleetUiBinder extends UiBinder { + } + + @UiField DivElement fleetProgressBarUi; + + public MultiRegattaListStepsBodyFleet(double width, double height, String color) { + setElement(uiBinder.createAndBindUi(this)); + getElement().getStyle().setHeight(height, Unit.PCT); + fleetProgressBarUi.getStyle().setWidth(width, Unit.PCT); + fleetProgressBarUi.getStyle().setBackgroundColor(color); + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/partials/multiRegattaList/MultiRegattaListStepsBodyFleet.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/partials/multiRegattaList/MultiRegattaListStepsBodyFleet.ui.xml new file mode 100644 index 00000000000..4bb1819a9f9 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/partials/multiRegattaList/MultiRegattaListStepsBodyFleet.ui.xml @@ -0,0 +1,10 @@ + + + + + +
+
+
+
\ No newline at end of file