MultiRegatta - Adjusted overview and regatta tab if no data is available

This commit is contained in:
Benjamin Barth committed 2015-07-29 14:40:52 +02:00
1 parent 8015d806d9
commit a91ec4629f
5 files changed
+27 -5

No files matched your search

@@ -8,6 +8,7 @@ import java.util.Map;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.AnchorElement;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -57,6 +58,7 @@ public class MultiregattaOverviewTabView extends Composite implements Multiregat
@UiField(provided = true) EventOverviewStage stage;
@UiField(provided = true) RacesListLive racesListLive;
@UiField DivElement newContentContainerUi;
@UiField DivElement legendAndFilterUi;
@UiField(provided = true) DropdownFilter<String> boatCategoryFilterUi;
@UiField MultiRegattaListStepsLegend regattaProgressLegendUi;
@UiField(provided = true) MultiRegattaList regattaListUi;
@@ -84,7 +86,7 @@ public class MultiregattaOverviewTabView extends Composite implements Multiregat
racesListLive = new RacesListLive(currentPresenter, true);
MultiregattaOverviewRegattasTabViewRegattaFilterList regattaFilterList = new MultiregattaOverviewRegattasTabViewRegattaFilterList();
boatCategoryFilterUi = new DropdownFilter<String>(StringMessages.INSTANCE.allBoatClasses(), regattaFilterList);
regattaListUi = new MultiRegattaList(currentPresenter);
regattaListUi = new MultiRegattaList(currentPresenter, false);
initWidget(ourUiBinder.createAndBindUi(this));
regattaOverviewLinkUi.setHref(currentPresenter.getRegattaOverviewLink());
@@ -158,6 +160,7 @@ public class MultiregattaOverviewTabView extends Composite implements Multiregat
DropdownFilterList<String>, RefreshableWidget<SortedSetResult<RegattaWithProgressDTO>> {
@Override
public void setData(SortedSetResult<RegattaWithProgressDTO> data) {
legendAndFilterUi.getStyle().setDisplay(data.isEmpty() ? Display.NONE : Display.BLOCK);
regattaListUi.setData(data);
boatCategoryFilterUi.updateFilterValues();
}
@@ -19,7 +19,7 @@
<div class="{res.mediaCss.grid}" ui:field="newContentContainerUi">
<div class="{res.mediaCss.small12} {res.mediaCss.columns} {res.mainCss.spacermarginbottommedium}">
<p:raceListLive.RacesListLive ui:field="racesListLive" addStyleNames="{res.mainCss.spacermargin} {res.mainCss.spacermargintopmedium}" />
<div class="{res.mainCss.spacermargintopmedium} {style.legend_and_filter}">
<div class="{res.mainCss.spacermargintopmedium} {style.legend_and_filter}" ui:field="legendAndFilterUi" style="display:none;">
<p:multiRegattaList.MultiRegattaListStepsLegend ui:field="regattaProgressLegendUi" />
<p:listNavigation.DropdownFilter ui:field="boatCategoryFilterUi" />
<a class="{res.mainCss.button} {res.mainCss.buttonstrong} {res.mainCss.buttonarrowrightwhite}"
@@ -8,6 +8,7 @@ import java.util.Map;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.AnchorElement;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -55,6 +56,7 @@ public class MultiregattaRegattasTabView extends Composite implements Multiregat
@UiField SimplePanel content;
@UiField DivElement newContentContainerUi;
@UiField(provided = true) RacesListLive racesListLiveUi;
@UiField DivElement legendAndFilterUi;
@UiField(provided = true) DropdownFilter<String> boatCategoryFilterUi;
@UiField MultiRegattaListStepsLegend regattaProgressLegendUi;
@UiField(provided = true) MultiRegattaList regattaListUi;
@@ -81,7 +83,7 @@ public class MultiregattaRegattasTabView extends Composite implements Multiregat
racesListLiveUi = new RacesListLive(currentPresenter, true);
MultiregattaRegattasTabViewRegattaFilterList regattaFilterList = new MultiregattaRegattasTabViewRegattaFilterList();
boatCategoryFilterUi = new DropdownFilter<String>(StringMessages.INSTANCE.allBoatClasses(), regattaFilterList);
regattaListUi = new MultiRegattaList(currentPresenter);
regattaListUi = new MultiRegattaList(currentPresenter, true);
initWidget(ourUiBinder.createAndBindUi(this));
regattaOverviewLinkUi.setHref(currentPresenter.getRegattaOverviewLink());
@@ -156,6 +158,7 @@ public class MultiregattaRegattasTabView extends Composite implements Multiregat
@Override
public void setData(SortedSetResult<RegattaWithProgressDTO> data) {
legendAndFilterUi.getStyle().setDisplay(data.isEmpty() ? Display.NONE : Display.BLOCK);
regattaListUi.setData(data);
boatCategoryFilterUi.updateFilterValues();
}
@@ -16,7 +16,7 @@
<div class="{res.mediaCss.grid}" ui:field="newContentContainerUi">
<div class="{res.mediaCss.small12} {res.mediaCss.columns} {res.mainCss.spacermarginbottommedium}">
<p:raceListLive.RacesListLive ui:field="racesListLiveUi" addStyleNames="{res.mainCss.spacermargintopmedium}" />
<div class="{res.mainCss.spacermargintopmedium} {style.legend_and_filter}">
<div class="{res.mainCss.spacermargintopmedium} {style.legend_and_filter}" ui:field="legendAndFilterUi" style="display:none;">
<p:multiRegattaList.MultiRegattaListStepsLegend ui:field="regattaProgressLegendUi" />
<p:listNavigation.DropdownFilter ui:field="boatCategoryFilterUi" />
<a class="{res.mainCss.button} {res.mainCss.buttonstrong} {res.mainCss.buttonarrowrightwhite}"
@@ -5,13 +5,17 @@ import java.util.Collections;
import java.util.TreeSet;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.FontWeight;
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.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.client.place.event.multiregatta.EventMultiregattaView.Presenter;
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.reload.RefreshableWidget;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.dispatch.SortedSetResult;
import com.sap.sailing.gwt.ui.shared.dispatch.regatta.RegattaWithProgressDTO;
@@ -25,9 +29,11 @@ public class MultiRegattaList extends Composite implements RefreshableWidget<Sor
@UiField FlowPanel regattasContainerUi;
private final Presenter currentPresenter;
private final Collection<String> selectableBoatCategories = new TreeSet<>();
private final boolean showMessageIfEmpty;
public MultiRegattaList(Presenter presenter) {
public MultiRegattaList(Presenter presenter, boolean showMessageIfEmpty) {
this.currentPresenter = presenter;
this.showMessageIfEmpty = showMessageIfEmpty;
initWidget(uiBinder.createAndBindUi(this));
}
@@ -39,6 +45,9 @@ public class MultiRegattaList extends Composite implements RefreshableWidget<Sor
public void setListData(Collection<RegattaWithProgressDTO> data) {
regattasContainerUi.clear();
selectableBoatCategories.clear();
if (data.isEmpty() && showMessageIfEmpty) {
regattasContainerUi.add(getNoDataInfoWidget());
}
for (RegattaWithProgressDTO regattaWithProgress : data) {
regattasContainerUi.add(new MultiRegattaListItem(regattaWithProgress, currentPresenter));
String boatCategory = regattaWithProgress.getBoatCategory();
@@ -48,6 +57,13 @@ public class MultiRegattaList extends Composite implements RefreshableWidget<Sor
}
}
private Widget getNoDataInfoWidget() {
Label label = new Label(StringMessages.INSTANCE.noDataForEvent());
label.getElement().getStyle().setMarginTop(1, Unit.EM);
label.getElement().getStyle().setFontWeight(FontWeight.BOLD);
return label;
}
public Collection<String> getSelectableBoatCategories() {
return selectableBoatCategories;
}