Races lists - Added columns for wind fixes, video and audio to races

list
This commit is contained in:
Benjamin Barth committed 2015-07-03 15:44:31 +02:00
1 parent f01f49c690
commit 746683f097
3 files changed
+76 -8

No files matched your search

@@ -19,6 +19,7 @@ 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.google.gwt.user.cellview.client.SafeHtmlHeader;
import com.sap.sailing.domain.common.InvertibleComparator;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.impl.NaturalComparator;
@@ -71,11 +72,11 @@ 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);
@Template("<img src=\"{1}\" class=\"{0}\" />")
SafeHtml imageHeader(String styleNames, SafeUri imageURL);
}
public static <T extends RaceMetadataDTO> SortableRaceListColumn<T, FleetMetadataDTO> getFleetCornerColumn() {
@@ -182,7 +183,7 @@ public class RaceListColumnFactory {
public static <T extends RaceMetadataDTO> SortableRaceListColumn<T, Date> getStartTimeColumn() {
Cell<Date> cell = new DateCell(DateTimeFormat.getFormat(PredefinedFormat.HOUR24_MINUTE));
InvertibleComparator<T> comparator = new InvertibleComparatorWrapper<T, Date>( new NullSafeComparableComparator<Date>()) {
InvertibleComparator<T> comparator = new InvertibleComparatorWrapper<T, Date>(new NullSafeComparableComparator<Date>()) {
@Override
protected Date getComparisonValue(T object) {
return object.getStart();
@@ -350,6 +351,33 @@ public class RaceListColumnFactory {
};
}
public static <T extends RaceListRaceDTO> SortableRaceListColumn<T, Long> getWindFixesCountColumn() {
return new DataCountColumn<T>(DataCountColumn.ICON_WIND) {
@Override
public Long getValue(T object) {
return null; // TODO
}
};
}
public static <T extends RaceListRaceDTO> SortableRaceListColumn<T, Long> getVideoCountColumn() {
return new DataCountColumn<T>(DataCountColumn.ICON_VIDEO) {
@Override
public Long getValue(T object) {
return null; // TODO
}
};
}
public static <T extends RaceListRaceDTO> SortableRaceListColumn<T, Long> getAudioCountColumn() {
return new DataCountColumn<T>(DataCountColumn.ICON_AUDIO) {
@Override
public Long getValue(T object) {
return null; // TODO
}
};
}
public static <T extends LiveRaceDTO> SortableRaceListColumn<T, T> getRaceViewStateColumn() {
Cell<T> cell = new AbstractCell<T>() {
@Override
@@ -479,4 +507,33 @@ public class RaceListColumnFactory {
}
};
}
private static abstract class DataCountColumn<T extends RaceListRaceDTO> extends SortableRaceListColumn<T, Long> {
private static final SafeUri ICON_WIND = UriUtils.fromTrustedString("images/home/icon-wind.png");
private static final SafeUri ICON_VIDEO = UriUtils.fromTrustedString("images/home/icon-video.png");
private static final SafeUri ICON_AUDIO = UriUtils.fromTrustedString("images/home/icon-audio.png");
private DataCountColumn(final SafeUri imageUri) {
super(new SafeHtmlHeader(TEMPLATE.imageHeader(CSS.raceslist_head_itemflag(), imageUri)), new AbstractCell<Long>() {
@Override
public void render(Context context, Long value, SafeHtmlBuilder sb) {
if (value != null && value > 0) {
sb.append(value);
} else {
sb.appendHtmlConstant("&mdash;");
}
}
}, null);
}
@Override
public String getHeaderStyle() {
return getStyleNamesString(CSS.raceslist_head_item(), CSS.raceslist_head_itemcenter(), MEDIA_CSS.showonlarge());
}
@Override
public String getColumnStyle() {
return getStyleNamesString(CSS.race_item(), CSS.race_itemcenter(), MEDIA_CSS.showonlarge());
}
}
}
@@ -9,14 +9,19 @@ import com.sap.sailing.gwt.ui.client.shared.controls.SortableColumn;
import com.sap.sse.common.Util;
public abstract class SortableRaceListColumn<T, C> extends SortableColumn<T, C> {
private final String headerText;
private final Header<?> header;
private final InvertibleComparator<T> comparator;
private boolean showDetails = true;
protected SortableRaceListColumn(String headerText, Cell<C> cell, InvertibleComparator<T> comparator) {
this(new TextHeader(headerText), cell, comparator);
}
protected SortableRaceListColumn(Header<?> header, Cell<C> cell, InvertibleComparator<T> comparator) {
super(cell, SortingOrder.ASCENDING);
this.headerText = headerText;
this.header = header;
this.comparator = comparator;
}
@@ -27,7 +32,7 @@ public abstract class SortableRaceListColumn<T, C> extends SortableColumn<T, C>
@Override
public final Header<?> getHeader() {
return new TextHeader(headerText);
return header;
}
public void setShowDetails(boolean showDetails) {
@@ -37,7 +42,7 @@ public abstract class SortableRaceListColumn<T, C> extends SortableColumn<T, C>
public boolean isShowDetails() {
return showDetails;
}
protected final String getStyleNamesString(String... styleNames) {
return Util.join(" ", styleNames);
}
@@ -142,6 +142,9 @@ public class RegattaRacesTabView extends Composite implements RegattaTabView<Reg
private class RaceListFinishedRaces extends AbstractRaceList<RaceListRaceDTO> {
private final SortableRaceListColumn<RaceListRaceDTO, ?> winnerColumn = RaceListColumnFactory.getWinnerColumn();
private final SortableRaceListColumn<RaceListRaceDTO, ?> windfixesCountColumn = RaceListColumnFactory.getWindFixesCountColumn();
private final SortableRaceListColumn<RaceListRaceDTO, ?> videoCountColumn = RaceListColumnFactory.getVideoCountColumn();
private final SortableRaceListColumn<RaceListRaceDTO, ?> audioCountColumn = RaceListColumnFactory.getAudioCountColumn();
public RaceListFinishedRaces(EventView.Presenter presenter) {
super(presenter);
@@ -165,6 +168,9 @@ public class RegattaRacesTabView extends Composite implements RegattaTabView<Reg
add(startTimeColumn);
add(windSpeedColumn);
add(windDirectionColumn);
add(windfixesCountColumn);
add(videoCountColumn);
add(audioCountColumn);
add(winnerColumn);
add(raceViewerButtonColumn);
}