mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-27 14:27:15 +00:00
Races lists - Added winner column to races list
This commit is contained in:
1 parent
7cc9755764
commit
f01f49c690
3 files changed
+63
No files matched your search
+55
@@ -17,7 +17,10 @@ import com.google.gwt.safecss.shared.SafeStylesUtils;
|
||||
import com.google.gwt.safehtml.client.SafeHtmlTemplates;
|
||||
import com.google.gwt.safehtml.shared.SafeHtml;
|
||||
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
||||
import com.google.gwt.safehtml.shared.SafeUri;
|
||||
import com.google.gwt.safehtml.shared.UriUtils;
|
||||
import com.sap.sailing.domain.common.InvertibleComparator;
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTO;
|
||||
import com.sap.sailing.domain.common.impl.NaturalComparator;
|
||||
import com.sap.sailing.gwt.common.client.SharedResources;
|
||||
import com.sap.sailing.gwt.common.client.SharedResources.MainCss;
|
||||
@@ -28,8 +31,10 @@ import com.sap.sailing.gwt.home.client.place.event.partials.raceListLive.RacesLi
|
||||
import com.sap.sailing.gwt.home.client.place.event.partials.raceListLive.RacesListLiveResources.LocalCss;
|
||||
import com.sap.sailing.gwt.regattaoverview.client.FlagsMeaningExplanator;
|
||||
import com.sap.sailing.gwt.regattaoverview.client.SailingFlagsBuilder;
|
||||
import com.sap.sailing.gwt.ui.client.FlagImageResolver;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.event.LiveRaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.event.RaceListRaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.race.FlagStateDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.race.FleetMetadataDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.race.RaceMetadataDTO;
|
||||
@@ -65,6 +70,12 @@ public class RaceListColumnFactory {
|
||||
|
||||
@Template("<a href=\"{2}\" class=\"{0}\" target=\"_blank\">{1}</a>")
|
||||
SafeHtml raceViewerLinkButton(String styleNames, String text, String link);
|
||||
|
||||
@Template("<img src=\"{2}\" class=\"{0}\" /><span class=\"{1}\">{3}</span>")
|
||||
SafeHtml winner(String styleNamesFlag, String styleNamesText, String flagImageURL, String name);
|
||||
|
||||
@Template("<img src=\"{2}\" class=\"{0}\" /><span class=\"{1}\">{3}</span>")
|
||||
SafeHtml winner(String styleNamesFlag, String styleNamesText, SafeUri flagImageURL, String name);
|
||||
}
|
||||
|
||||
public static <T extends RaceMetadataDTO> SortableRaceListColumn<T, FleetMetadataDTO> getFleetCornerColumn() {
|
||||
@@ -382,6 +393,50 @@ public class RaceListColumnFactory {
|
||||
};
|
||||
}
|
||||
|
||||
public static <T extends RaceListRaceDTO> SortableRaceListColumn<T, CompetitorDTO> getWinnerColumn() {
|
||||
Cell<CompetitorDTO> cell = new AbstractCell<CompetitorDTO>() {
|
||||
@Override
|
||||
public void render(Context context, CompetitorDTO value, SafeHtmlBuilder sb) {
|
||||
if (value != null) {
|
||||
final SafeUri flagImageUri;
|
||||
if (value.getFlagImageURL() == null || value.getFlagImageURL().isEmpty()) {
|
||||
String twoLetterIsoCountryCode = value.getTwoLetterIsoCountryCode();
|
||||
if (twoLetterIsoCountryCode==null || twoLetterIsoCountryCode.isEmpty()) {
|
||||
flagImageUri = FlagImageResolver.getEmptyFlagImageResource().getSafeUri();
|
||||
} else {
|
||||
flagImageUri = FlagImageResolver.getFlagImageResource(twoLetterIsoCountryCode).getSafeUri();
|
||||
}
|
||||
} else {
|
||||
flagImageUri = UriUtils.fromTrustedString(value.getFlagImageURL());
|
||||
}
|
||||
sb.append(TEMPLATE.winner(CSS.race_item_flag(), CSS.race_item_winner(), flagImageUri, value.getName()));
|
||||
}
|
||||
}
|
||||
};
|
||||
InvertibleComparator<T> comparator = new InvertibleComparatorWrapper<T, String>(new NaturalComparator(false)) {
|
||||
@Override
|
||||
protected String getComparisonValue(T object) {
|
||||
return object.getWinner() != null ? object.getWinner().getName() : null;
|
||||
}
|
||||
};
|
||||
return new SortableRaceListColumn<T, CompetitorDTO>(I18N.winner(), cell, comparator) {
|
||||
@Override
|
||||
public String getHeaderStyle() {
|
||||
return CSS.raceslist_head_item();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getColumnStyle() {
|
||||
return getStyleNamesString(CSS.race_item(), CSS.race_itemwinner());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompetitorDTO getValue(T object) {
|
||||
return object.getWinner();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static <T extends RaceMetadataDTO> SortableRaceListColumn<T, T> getRaceViewerButtonColumn(final EventView.Presenter presenter) {
|
||||
Cell<T> cell = new AbstractCell<T>() {
|
||||
private final String watchNowStyle = getButtonStyleNames(MAIN_CSS.buttonred());
|
||||
|
||||
+5
@@ -20,7 +20,9 @@ import com.sap.sailing.gwt.home.client.place.event.partials.listNavigation.ListN
|
||||
import com.sap.sailing.gwt.home.client.place.event.partials.listNavigation.RaceStateLegend;
|
||||
import com.sap.sailing.gwt.home.client.place.event.partials.raceListLive.RacesListLive;
|
||||
import com.sap.sailing.gwt.home.client.place.event.partials.racelist.AbstractRaceList;
|
||||
import com.sap.sailing.gwt.home.client.place.event.partials.racelist.RaceListColumnFactory;
|
||||
import com.sap.sailing.gwt.home.client.place.event.partials.racelist.RaceListContainer;
|
||||
import com.sap.sailing.gwt.home.client.place.event.partials.racelist.SortableRaceListColumn;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView.Presenter;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaTabView;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.ResultWithTTL;
|
||||
@@ -139,6 +141,8 @@ public class RegattaRacesTabView extends Composite implements RegattaTabView<Reg
|
||||
}
|
||||
|
||||
private class RaceListFinishedRaces extends AbstractRaceList<RaceListRaceDTO> {
|
||||
private final SortableRaceListColumn<RaceListRaceDTO, ?> winnerColumn = RaceListColumnFactory.getWinnerColumn();
|
||||
|
||||
public RaceListFinishedRaces(EventView.Presenter presenter) {
|
||||
super(presenter);
|
||||
}
|
||||
@@ -161,6 +165,7 @@ public class RegattaRacesTabView extends Composite implements RegattaTabView<Reg
|
||||
add(startTimeColumn);
|
||||
add(windSpeedColumn);
|
||||
add(windDirectionColumn);
|
||||
add(winnerColumn);
|
||||
add(raceViewerButtonColumn);
|
||||
}
|
||||
}
|
||||
|
||||
+3
@@ -5,6 +5,7 @@ import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTOImpl;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.DTO;
|
||||
import com.sap.sailing.gwt.ui.shared.race.RaceMetadataDTO;
|
||||
|
||||
@@ -57,6 +58,8 @@ public class RaceListViewDTO implements DTO {
|
||||
raceListRace.setTrackingState(liveRace.getTrackingState());
|
||||
raceListRace.setViewState(liveRace.getViewState());
|
||||
raceListRace.setWind(liveRace.getWind());
|
||||
raceListRace.setWinner(new CompetitorDTOImpl("Ingmar Pedersen", null, null, "de",
|
||||
null, null, null, null, null, null, null, null, null));
|
||||
return raceListRace;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user