mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-27 06:17:27 +00:00
Regatta list - Extracted fleet progresses to its own UiBinder
This commit is contained in:
1 parent
abc0575178
commit
dfd2f69535
3 files changed
+50
-27
No files matched your search
+13
-27
@@ -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<Element, MultiRegattaListStepsBody> {
|
||||
@@ -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<FleetMetadataDTO, Integer> fleetStates = seriesProgress.getFleetState();
|
||||
double fleetHeight = fleetStates.isEmpty() ? 100.0 : 100.0 / fleetStates.size();
|
||||
for (Entry<FleetMetadataDTO, Integer> 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<FleetMetadataDTO, Integer> fleetStates, int totalRaceCount) {
|
||||
double height = fleetStates.isEmpty() ? 100.0 : 100.0 / fleetStates.size();
|
||||
for (Entry<FleetMetadataDTO, Integer> 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());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+27
@@ -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<Element, MultiRegattaListStepsBodyFleet> {
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
|
||||
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui"
|
||||
xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared" xmlns:p="urn:import:com.sap.sailing.gwt.home.client.place.event.partials">
|
||||
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
|
||||
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
|
||||
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.place.event.partials.multiRegattaList.MultiRegattaListResources" />
|
||||
<div class="{local_res.css.regattalistitem_steps_step_fleets_fleet}">
|
||||
<div class="{local_res.css.regattalistitem_steps_step_fleets_fleet_progress}" ui:field="fleetProgressBarUi"></div>
|
||||
</div>
|
||||
</ui:UiBinder>
|
||||
Reference in new issue
Block a user