show racecontainer legend, based on existing data

This commit is contained in:
Kai Boernert committed 2016-12-06 13:21:50 +01:00
1 parent bd88034550
commit e46e8e1a66
5 files changed
+62 -9

No files matched your search

@@ -86,5 +86,20 @@ public class LiveRacesList extends Composite {
columnSet.addColumn(courseColumn);
columnSet.addColumn(fleetNameColumn);
}
@Override
public boolean hasWind() {
return false;
}
@Override
public boolean hasVideos() {
return false;
}
@Override
public boolean hasAudios() {
return false;
}
}
}
@@ -133,5 +133,10 @@ public abstract class AbstractRaceList<T extends RaceMetadataDTO<? extends Abstr
}
return filterableValues;
}
public abstract boolean hasWind();
public abstract boolean hasVideos();
public abstract boolean hasAudios();
}
@@ -15,7 +15,8 @@ import com.sap.sailing.gwt.home.communication.race.RaceMetadataDTO;
import com.sap.sailing.gwt.home.shared.refresh.RefreshableWidget;
import com.sap.sse.gwt.dispatch.shared.commands.CollectionResult;
public class RaceListContainer<T extends RaceMetadataDTO<?>> extends Composite implements RefreshableWidget<CollectionResult<T>> {
public class RaceListContainer<T extends RaceMetadataDTO<?>> extends Composite
implements RefreshableWidget<CollectionResult<T>> {
private static RaceListContainerUiBinder uiBinder = GWT.create(RaceListContainerUiBinder.class);
@@ -26,6 +27,10 @@ public class RaceListContainer<T extends RaceMetadataDTO<?>> extends Composite i
@UiField DivElement infoUi;
@UiField DivElement noContentPlaceholderUi;
@UiField(provided = true) AbstractRaceList<T> raceListUi;
@UiField DivElement iconWind;
@UiField DivElement iconVideo;
@UiField DivElement iconAudio;
private String noContentPlaceholderText;
public RaceListContainer(String title, AbstractRaceList<T> raceList) {
@@ -55,11 +60,17 @@ public class RaceListContainer<T extends RaceMetadataDTO<?>> extends Composite i
noContentPlaceholderUi.getStyle().clearDisplay();
raceListUi.setVisible(false);
}
iconWind.getStyle().setDisplay(Display.NONE);
iconVideo.getStyle().setDisplay(Display.NONE);
iconAudio.getStyle().setDisplay(Display.NONE);
} else {
noContentPlaceholderUi.getStyle().setDisplay(Display.NONE);
getElement().getStyle().clearDisplay();
raceListUi.setVisible(true);
this.raceListUi.setTableData(data);
iconWind.getStyle().setDisplay(raceListUi.hasWind() ? Display.INLINE_BLOCK : Display.NONE);
iconVideo.getStyle().setDisplay(raceListUi.hasVideos() ? Display.INLINE_BLOCK : Display.NONE);
iconAudio.getStyle().setDisplay(raceListUi.hasAudios() ? Display.INLINE_BLOCK : Display.NONE);
}
}
@@ -8,7 +8,7 @@
<ui:style>
.iconGPS, .iconWind, .iconVideo, .iconAudio{
position: relative;
display: inline-block;
display: none;
margin-left: 0.666666666666667em;
padding-left: 2.333333333333333em;
background-size: 1.666666666666667rem 1.666666666666667rem;
@@ -40,9 +40,9 @@
<g:HTMLPanel addStyleNames="{local_res.css.raceslistlive}">
<h3 ui:field="titleUi" class="{res.mediaCss.column} {res.mediaCss.medium12} {res.mediaCss.large4}"/>
<div ui:field="legend" class="{res.mediaCss.column} {res.mediaCss.medium12} {res.mediaCss.large8} {style.legend}">
<div class="{style.iconWind}"><ui:text from='{i18n.eventRegattaRacesLegendWind}'/></div>
<div class="{style.iconVideo}"><ui:text from='{i18n.eventRegattaRacesLegendVideo}'/></div>
<div class="{style.iconAudio}"><ui:text from='{i18n.eventRegattaRacesLegendAudio}'/></div>
<div ui:field="iconWind" class="{style.iconWind}"><ui:text from='{i18n.eventRegattaRacesLegendWind}'/></div>
<div ui:field="iconVideo" class="{style.iconVideo}"><ui:text from='{i18n.eventRegattaRacesLegendVideo}'/></div>
<div ui:field="iconAudio" class="{style.iconAudio}"><ui:text from='{i18n.eventRegattaRacesLegendAudio}'/></div>
</div>
<div style="display: none;" ui:field="infoUi"></div>
<div style="display: none; font-weight: bold; font-style: italic;" ui:field="noContentPlaceholderUi"></div>
@@ -196,6 +196,10 @@ public class RegattaRacesTabView extends Composite implements RegattaTabView<Reg
private final SortableRaceListColumn<RaceListRaceDTO, ?> videoCountColumn = RaceListColumnFactory.getVideoCountColumn();
private final SortableRaceListColumn<RaceListRaceDTO, ?> audioCountColumn = RaceListColumnFactory.getAudioCountColumn();
private final SortableRaceListColumn<RaceListRaceDTO, ?> winnerColumn = RaceListColumnFactory.getWinnerColumn();
private boolean hasWind;
private boolean hasVideos;
private boolean hasAudios;
public RaceListFinishedRaces(EventView.Presenter presenter) {
super(presenter, new RaceListColumnSet(1, 1));
@@ -212,12 +216,15 @@ public class RegattaRacesTabView extends Composite implements RegattaTabView<Reg
// TODO: this.startTimeColumn.setShowTimeOnly(!RaceListDataUtil.hasDifferentStartDates(data));
this.startTimeColumn.setShowTimeOnly(false);
this.durationColumn.setShowDetails(RaceListDataUtil.hasDurations(data));
boolean hasWind = RaceListDataUtil.hasWind(data);
this.hasWind = RaceListDataUtil.hasWind(data);
this.hasVideos = RaceListDataUtil.hasVideos(data);
this.hasAudios = RaceListDataUtil.hasAudios(data);
this.windSpeedColumn.setShowDetails(hasWind);
this.windDirectionColumn.setShowDetails(hasWind);
this.windSourcesCountColumn.setShowDetails(RaceListDataUtil.hasWindSources(data));
this.videoCountColumn.setShowDetails(RaceListDataUtil.hasVideos(data));
this.audioCountColumn.setShowDetails(RaceListDataUtil.hasAudios(data));
this.videoCountColumn.setShowDetails(hasVideos);
this.audioCountColumn.setShowDetails(hasAudios);
this.winnerColumn.setShowDetails(RaceListDataUtil.hasWinner(data));
super.setTableData(data);
}
@@ -245,6 +252,21 @@ public class RegattaRacesTabView extends Composite implements RegattaTabView<Reg
columnSet.addColumn(audioCountColumn);
columnSet.addColumn(fleetNameColumn);
}
@Override
public boolean hasWind() {
return hasWind;
}
@Override
public boolean hasVideos() {
return hasVideos;
}
@Override
public boolean hasAudios() {
return hasAudios;
}
}